Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
Hello,
I've been trying to display images saved in a Teams Dataverse (and not just Dataverse) in my PowerBI report without success.
The instance url I have is something like this : https://orgXdbfabXX.crmXX.dynamics.com/ with X some numbers.
I tried to complete this url with the image url from the dataverse table which is like "https://orgXdbfabXX.crmXX.dynamics.com/Image/download.aspx?Entity=cr463_photos&Attribute=cr463_photo... , I also tried with &full=true at the end, or via the API "https://orgXdbfabXX.crmXX.dynamics.com/api/data/v9.1/cr463_photos/cr463_photo/xxxxxx".
I also tried to import the dataverse table in a locally imported table to be able to change the column type as Image URL.
However none of this works when I publish the report in our working space or in Teams. I'm testing in a simple table and in Image Carousel from AppSource.
I must say that when I go to the url https://orgXdbfabXX.crmXX.dynamics.com/Image/ , I'm redirected at least 10 times, and finally when it asks for my loggin, it fails to connect.
Is the dataverse in teams is supported to display images ? Do I miss something to be able to display the images ?
Thanks for your help,
Regards
Solved! Go to Solution.
Solution found. Here is a summary :
In PowerBI, obtain data from Web. In the URL, use : https://orgXdbfabXX.crmXX.dynamics.com/api/data/v9.0/cr463_photoses. The first part of the url comes from PowerApps in team (about >session details). For the second part, use "Open in PowerApps" in Teams, it will open in your browser. Navigate to your image table, display the image, and use the developer tools to find the correct name (or maybe it's just the standard name with -es).
Enter your credentials and validate.
In the imported table, create a new column with "https://orgXdbfabXX.crmXX.dynamics.com" & [photoURL] & "&full=true". (fitler null value to prevent errors if you have)
Create another column with the formula : Web.Contents([previousColumn]).
From there, you have the complete binary content of your image.
I suggest you follow this tutorial to display the image in full quality :
How to embedding Base64 images in Power BI – Power BI Point
When you publish your report in your teams channel, all the images are displayed in full quality.
Hope it helps,
Regards.
Edit : there is an easier solution
Just import the data using the dataverse. Add a column concatening "https://orgXdbfabXX.crmXX.dynamics.com" & [photoURL] with or without "&full=true".
Add the column Web.Contents([previousColumn].
Only thing is that it's not a Direct Query anymore, so automating the refresh is a issue now.
Solution found. Here is a summary :
In PowerBI, obtain data from Web. In the URL, use : https://orgXdbfabXX.crmXX.dynamics.com/api/data/v9.0/cr463_photoses. The first part of the url comes from PowerApps in team (about >session details). For the second part, use "Open in PowerApps" in Teams, it will open in your browser. Navigate to your image table, display the image, and use the developer tools to find the correct name (or maybe it's just the standard name with -es).
Enter your credentials and validate.
In the imported table, create a new column with "https://orgXdbfabXX.crmXX.dynamics.com" & [photoURL] & "&full=true". (fitler null value to prevent errors if you have)
Create another column with the formula : Web.Contents([previousColumn]).
From there, you have the complete binary content of your image.
I suggest you follow this tutorial to display the image in full quality :
How to embedding Base64 images in Power BI – Power BI Point
When you publish your report in your teams channel, all the images are displayed in full quality.
Hope it helps,
Regards.
Edit : there is an easier solution
Just import the data using the dataverse. Add a column concatening "https://orgXdbfabXX.crmXX.dynamics.com" & [photoURL] with or without "&full=true".
Add the column Web.Contents([previousColumn].
Only thing is that it's not a Direct Query anymore, so automating the refresh is a issue now.
I finally managed to get the photos.
By looking in the dataverse table with the developer tools, I found an interesting url :
https://orgXdbfabXX.crmXX.dynamics.com/api/data/v9.0/cr463_photoses, within postman I could get all the photos from here.
So I connected my power BI to this url, and entered my credentials, it worked. Fortunely, a column called "value.cr463_photo" was here, and it's content is the image in Base64 (/9j/4AAQSkZJRgABAQEAYABgAAD... for jpeg for example).
I just add to create a local table, which is just a copy of the imported table, put the data as Image URL, and put it into a table, and that's it.
The quality is poor however, I think it's just the thumbnails, next step is to get the full image.
Hi @cedMarchd - Basically , Power BI treats image URLs as text, so if you want the images to render in the report, you need to make sure that Power BI has access to the file and that the URLs are valid image paths.
If the URLs to your images in Dataverse require authentication, Power BI will not be able to retrieve them unless it can authenticate. To fix this, make sure that the image URLs are accessible without requiring a login (i.e., they are public or at least accessible by Power BI).You could either:
One workaround would be to use Power Automate to automatically copy or move the images from Dataverse to a location like SharePoint or Azure Blob Storage. SharePoint is particularly useful because you can generate public image URLs from SharePoint and use those in your Power BI report.You can then update your Power BI dataset to use these new URLs, which will allow the images to display in the report since Power BI can retrieve them directly without authentication issues.
Check the above approaches and let know
Proud to be a Super User! | |
Thank you for your reply.
I was thinking of copying the image into our Sharepoint as a last resort to get these URLs, as I find this contradictory to saving the image in the Dataverse.
I am not sure to understand "Configure the authentication mechanism in Power BI". Could you develop please ?
With Postman, I managed to get the image with the URL :
and passing a Bearer token in the Header Authorization. So basically, with the good photo ID I'm able to retrieve all the images. However, PowerBI does not allow to do GET request with headers, and I had to get the token outside of power BI.
Anyway, as you said, it seems it's an authentication issue between PowerBi and the Team Dataverse.