Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
rajkumard44
New Member

Requirement to show additional filters for a specific client in single Embedded Power BI Report.

Hi Team,

Here is the  requirement:

We have a Power BI report that is embedded and shared across all clients. The report structure and visuals are the same for everyone. However, there is a specific business use case where one particular client requires 4 to 5 additional filters (slicers) for further analysis or Business use case. Those filters will provide in One another Dimensional table. And here we have already existing BI Layer Table. So we need to common key as resource id to map with Our existing table.

We want to make these additional filters visible only to that specific client, while hiding them from all other clients. At the same time, we need to maintain a single version of the report (not create multiple versions for different clients).

Please provide a solution on how this can be achieved using Power BI (possibly with DAX, RLS, or conditional formatting).

Please provide valuable inputs and any Documentation available on this.
Thnaks !!

1 ACCEPTED SOLUTION
v-pnaroju-msft
Community Support
Community Support

Thankyou, @burakkaragoz@rohit1991, for your response.

Hi rajkumard44,

We appreciate your question in the Microsoft Fabric Community Forum.

From what I understand, Power BI does not support showing or hiding slicers directly based on conditions using DAX or RLS. While you can filter visuals using RLS or DAX measures, slicers themselves cannot be made visible or invisible conditionally. So, having slicers only for specific clients cannot be done using DAX or RLS alone.

To show slicers conditionally for a particular client (for example: clientB@xyz.com) in Power BI Desktop or Embedded without making multiple copies of the report, you can use a combination of Row-Level Security (RLS), Bookmarks, Selection Pane, and DAX-based visibility toggle.

Please see the attached sample PBIX file for the solution. Follow these steps:

  1. Create a ClientSecurity table that links each user to a flag called ShowExtraFilters (with value 1 or 0).
  2. Connect this table to your main BI data using a common key, like ResourceID.
  3. Define a role using USERPRINCIPALNAME() for RLS like this: [UserEmail] = USERPRINCIPALNAME()
  4. Create a DAX measure:
    ShowExtraFiltersMeasure = SELECTEDVALUE(ClientSecurity[ShowExtraFilters], 0)
  5. Use Bookmarks to create two views: one with basic slicers (for all clients) and one with extra slicers (only for the chosen client).
  6. Use a toggle button with text that changes based on the DAX measure to switch between views for users allowed to see extra filters.
  7. Test using View as Role in Power BI Desktop or EffectiveIdentity in Embedded.

    ClientA sees only Basic View with button not enabled.

    vpnarojumsft_0-1751874995390.pngvpnarojumsft_1-1751875026851.pngvpnarojumsft_2-1751875086037.png
    ClientB sees Button enabled and upon clicking it can see the Extended view.

  8. vpnarojumsft_3-1751875172939.pngvpnarojumsft_4-1751875197899.png

     

Also, please check these helpful links:
Row-level security (RLS) with Power BI - Microsoft Fabric | Microsoft Learn
Create report bookmarks in Power BI - Power BI | Microsoft Learn
Security in Power BI embedded analytics - Power BI | Microsoft Learn

We hope this information helps you fix the issue. If you have any more questions, please feel free to ask in the Microsoft Fabric community.

Thank you.

View solution in original post

6 REPLIES 6
v-pnaroju-msft
Community Support
Community Support

Hi rajkumard44,

We are following up to see if your query has been resolved. Should you have identified a solution, we kindly request you to share it with the community to assist others facing similar issues.

If any response was helpful, please mark it as the accepted solution, as this helps the broader community.
Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.

Thank you.

v-pnaroju-msft
Community Support
Community Support

Hi rajkumard44,

We would like to know if the details we shared have helped solve your problem. If you require any additional assistance, feel free to connect with the Microsoft Fabric community.

Thank you.

v-pnaroju-msft
Community Support
Community Support

Hi rajkumard44,

We would like to follow up and see whether the details we shared have resolved your problem.
If you need any more assistance, please feel free to connect with the Microsoft Fabric community.

Thank you.

v-pnaroju-msft
Community Support
Community Support

Thankyou, @burakkaragoz@rohit1991, for your response.

Hi rajkumard44,

We appreciate your question in the Microsoft Fabric Community Forum.

From what I understand, Power BI does not support showing or hiding slicers directly based on conditions using DAX or RLS. While you can filter visuals using RLS or DAX measures, slicers themselves cannot be made visible or invisible conditionally. So, having slicers only for specific clients cannot be done using DAX or RLS alone.

To show slicers conditionally for a particular client (for example: clientB@xyz.com) in Power BI Desktop or Embedded without making multiple copies of the report, you can use a combination of Row-Level Security (RLS), Bookmarks, Selection Pane, and DAX-based visibility toggle.

Please see the attached sample PBIX file for the solution. Follow these steps:

  1. Create a ClientSecurity table that links each user to a flag called ShowExtraFilters (with value 1 or 0).
  2. Connect this table to your main BI data using a common key, like ResourceID.
  3. Define a role using USERPRINCIPALNAME() for RLS like this: [UserEmail] = USERPRINCIPALNAME()
  4. Create a DAX measure:
    ShowExtraFiltersMeasure = SELECTEDVALUE(ClientSecurity[ShowExtraFilters], 0)
  5. Use Bookmarks to create two views: one with basic slicers (for all clients) and one with extra slicers (only for the chosen client).
  6. Use a toggle button with text that changes based on the DAX measure to switch between views for users allowed to see extra filters.
  7. Test using View as Role in Power BI Desktop or EffectiveIdentity in Embedded.

    ClientA sees only Basic View with button not enabled.

    vpnarojumsft_0-1751874995390.pngvpnarojumsft_1-1751875026851.pngvpnarojumsft_2-1751875086037.png
    ClientB sees Button enabled and upon clicking it can see the Extended view.

  8. vpnarojumsft_3-1751875172939.pngvpnarojumsft_4-1751875197899.png

     

Also, please check these helpful links:
Row-level security (RLS) with Power BI - Microsoft Fabric | Microsoft Learn
Create report bookmarks in Power BI - Power BI | Microsoft Learn
Security in Power BI embedded analytics - Power BI | Microsoft Learn

We hope this information helps you fix the issue. If you have any more questions, please feel free to ask in the Microsoft Fabric community.

Thank you.

rohit1991
Super User
Super User

Hi @rajkumard44 - Here's how you can achieve it without duplicating the report:

 

  • Use RLS for user detection: Create a mapping table where each client (e.g., UserEmail or ClientID) is assigned a role or flag like ShowAdvancedFilters = TRUE/FALSE. Apply RLS using UserPrincipalName() or embedding token.

 

  • Control slicer visibility using bookmarks: Power BI doesn't support hiding slicers dynamically via DAX. Instead:

    • Create two bookmarks- one with advanced slicers, one without.

    • Use buttons tied to the user flag (e.g., ShowAdvancedFilters) to toggle between them.

    • You can use a disconnected helper table and DAX measure to enable/disable the toggle button visibility for the right client.

 

  • Ensure RLS works in embedded scenario: When embedding, pass the client identity via Azure AD or embed token with EffectiveIdentity. This ensures the correct view (and buttons/bookmarks) are shown.


Did it work? ✔ Give a Kudo • Mark as Solution – help others too!
burakkaragoz
Community Champion
Community Champion

Hi @rajkumard44 ,

 

This is a great use case, and yes — it’s possible to achieve this without duplicating the report. Here’s a way to handle it using Row-Level Security (RLS) and conditional visibility:

Approach:

  1. Use RLS to Identify the Client\ Create a security table that maps users (or client IDs) to their access level. For example:

    UserEmail ClientType
    clientA@domain.comStandard
    clientB@domain.comExtended

    Then apply RLS on this table and relate it to your main model using resource id or another key.

  2. Create a DAX Measure to Control Visibility\ Define a measure like this:

    ShowExtraFilters =
    IF(
        SELECTEDVALUE(SecurityTable[ClientType]) = "Extended",
        1,
        0
    )
  3. Use the Measure in Visual-Level Filters\ For each of the extra slicers, go to the Visual-level filters pane and add ShowExtraFilters = 1. This will make those slicers visible only when the logged-in user belongs to the "Extended" client group.

  4. Embed with Effective Identity\ When embedding the report, make sure to pass the correct user identity so RLS can apply properly. This is supported in Power BI Embedded via the effectiveIdentity parameter.


This way, you maintain a single report, but dynamically control what each client sees based on their identity.

Let me know if you want help setting up the RLS table or the embedding config.

If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.

Translation and text formatting supported by AI assistance

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors