Parameterized Power BI Navigation – Practical examples for using URL parameters and deep linking Power BI reports

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.

Also check out these other blogs:

Bulk Write-Back w. Translytical Task Flows in Microsoft Fabric / Power BI: Writing a single value back to multiple records at the same time

Introduction On this blog we’ve previously covered quite a few areas of Translytical Task Flows: Having presented a few sessions on Translytical Task Flows at conferences in the past moths, there is one major recurring question: How do you write-back multiple records at once? If you ask me, the questions of bulk write-back/writing back multiple…

Fabric Quick Tips – Pushing transformation upstream with Self Service Views and Tables in Visual Queries for Lakehouses/Warehouses/SQL DB

Introduction Recently, I’ve experienced a huge influx in requests from Microsoft Fabric customers wanting a good way for user’s to push data transformation upstream, following Roche’s Maxim: Data should be transformed as far upstream as possible, and as far downstream as necessary. To elaborate slightly, there are tons of Power BI Semantic Models out there…

Organizing your Microsoft Fabric Data Platform: Tags and Task Flows

Introduction We’ve arrived at the final level of detail in our series on Organizing your Microsoft Fabric Data Platform. So far we’ve covered, from broadest to narrowest scope: This time we go all the way down to the Item level on our platform, and describe strategies for labeling and categorising individual items by using Tags…

Something went wrong. Please refresh the page and/or try again.

Leave a comment