Introduction
An overlooked feature of Power BI, is the ability to create deep links for specific Report Pages, to aid users in navigating to a specific place in your report, decided by you, the report developer.
Combined with the ability to add filters to these deep links, and you have a super powerful way to direct your users attention towards specific insights. Especially for those users who might be navigating to the report from an external application like Sharepoint or Power Apps.
This article will outline how to create Deep Links, how to parameterize them with URL filters, and some examples of practical use cases.
Creating Deep Links to Power BI Reports
The Power BI Service has the great benefit that it is possible to not only link to specific Reports, but even to a specific page within the report.
The general syntax for linking to a Power BI Report is as follows:
https://app.powerbi.com/groups/{workspace-id}/reports/{report-id}/ReportSection{page-id}
The {page-id} parameter is optional, and leaving it out creates a link to the front page of the report. As an example, my Contoso Report front page has the link:
https://app.powerbi.com/groups/3a7ca72b-5ac2-44a1-90b3-381b5146e30a/reports/4b6a719d-3938-41bc-8a1c-c93655861536/ReportSection

While the link to my Details Page includes a page id:
https://app.powerbi.com/groups/3a7ca72b-5ac2-44a1-90b3-381b5146e30a/reports/4b6a719d-3938-41bc-8a1c-c93655861536/ReportSectionb30cfa30e6005c5e7da1

URL Parameter syntax
In addition to the base URL with links to a specific Report or even Report Page, we can further enhance the links with URL Parameters to preset a filter that applies to the entire page.
I’ll mention a few key take aways here, but the documentation page from Microsoft on this topic is also excellent: Filter a report using query string parameters in the URL – Power BI | Microsoft Learn
Most notable, note that the syntax for adding URL parameters to a Power BI Link is as follows:
...{ReportURL}?filter=TableName/ColumnName eq 'Value'
And as an example, I can filter my Details page to only display values where my RegionCountryName column in the table DimCustomer is equal to ‘Canada’ with the following link:
https://app.powerbi.com/groups/3a7ca72b-5ac2-44a1-90b3-381b5146e30a/reports/4b6a719d-3938-41bc-8a1c-c93655861536/ReportSectionb30cfa30e6005c5e7da1?filter=DimCustomer/RegionCountryName eq 'Canada'
Multiple operators and advanced filtering techniques are available and explained in the Docs linked above. This includes adding multiple filters using ‘in’ instead of ‘eq’, adding filters for numeric values and date values, as well as adding values to multiple columns at once.
Here I am filtering for entries from either Canada or Germany, after the date June 1st 2020:
https://app.powerbi.com/groups/3a7ca72b-5ac2-44a1-90b3-381b5146e30a/reports/4b6a719d-3938-41bc-8a1c-c93655861536/ReportSectionb30cfa30e6005c5e7da1?filter=DimCustomer/RegionCountryName in ('Canada', 'Germany') and DimDate/DateKey gt 2020-06-01

Note that any filters applied will show up as Filters in the Filter pane, and the user will by default be able to manipulate those filters upon opening the link you have provided.
If you wish to stop users from changing the filters, you can hide the Filter panel altogether, but don’t use this as a general security functionality. For proper security, make sure to apply RLS or other security measures to your report:

Use Cases – Hardcoded Links
Now for the fun part. How do we actually leverage this functionality in practice? The easiest and most straight forward solution is hardcoded links, either from inside Power BI, or from External sources.
Hardcoded links simply mean that you will create links as explained above, with completely fixed syntax and values, and use these links to send users to your reports.
You may use this on external pages, like Sharepoint or any other organizational application, to send users to a specific insight in a Report, in context of the external application.
You may also use this in your Power BI reports, to provide users with a point of entry to other Power BI Reports:

Dynamic Links for advanced Drill Through
However the star of the show, is the ability to actually make these links fully dynamic.
In Power BI, you can do this by leveraging DAX to create Links which are dynamic, based on the selections of the user:



In this case, the user selects a Country, and is navigated to a report page with Country applied as a filter.
“Now, isn’t this just a drill-through, but with more steps?”
Yes, yes it is. But this takes the drill-through action and places it on a button!
“But we can also simply configure a button to have a drill-through action?”
Also correct, but this button we create here is way more flexible! We can add multiple filters at once, we can add filters to multiple dimensions and columns. The sky is the limit.
And also, the button would could be used for cross-report drill-throughs, which the normal drill-through action does not support (Create a drillthrough button in Power BI – Power BI | Microsoft Learn).
Dynamic Links from outside Power BI, into Power BI
Another case is leveraging external tools, like Power Apps, where the user might be inputting information that is related to an item being reported on in Power BI. A dynamic link can allow the user to jump straight from Power Apps into the insights relevant for their current work.
Here I have a simple example, of a Link being constructed as the combination of User Selected Items:

Clicking the button deep links the user to the corresponding report page in my Power BI report:

Don’t forget to add all the necessary single quotes and double quotes when constructing the URL.
Summary
This was a brief introduction to parameterized Power BI navigation and deep linking with URL parameters. Something that I found especially useful when working with Power BI in combination with Sharepoint and Power Apps.
Do you have any other suggestions for use cases? Drop me a comment. I would love to hear from you.

Leave a comment