Hi Team,
We have a JavaScript-based web application where Tableau dashboards are embedded and launched based on user interaction.
Current behavior:
- User clicks on the “ABC” tab
- A specific Tableau dashboard is launched
New requirement:
We need to dynamically determine which dashboard is launched based on the logged-in user’s role:
- If the user has Role A → launch “ABC” dashboard
- If the user has Role B → launch “XYZ” dashboard
Important constraint:
This logic must be handled entirely within Tableau (Tableau Server/Cloud or embedding capabilities).
We cannot implement or modify this logic in the web application layer (JavaScript).
Expected behavior:
- Only one click on the “ABC” tab
- No intermediate/landing dashboard
- No additional navigation inside Tableau
- Dashboard should open directly based on user role
Question:
Is there any way in Tableau to dynamically switch the target dashboard/URL at runtime based on the logged-in user’s role, without relying on application-side logic?
Are there any Tableau-native approaches (e.g., user functions, permissions, site roles, row-level security, or embedding configurations) that can support this behavior?
Note:
POC already implemented:
We have attempted a proof of concept using Dynamic Zone Visibility (DZV):
- Both dashboards are placed within the same workbook
- Each dashboard is embedded in separate containers
- Visibility is controlled using user-based logic
#Tableau Desktop & Web Authoring #Tableau Server #Tableau Cloud #Tableau
It is possible through dynamic zone visibility. you need to set up a calculation which assigns a value (number) to the group your user A or B belong to. Like Manager or Employee group.
Say Manager group is assigned value 1 and employee group Value 2. manger sees Dashboard A and Employee see Dashboard B. Put Both Dashboards in separate containers inside another dashboard and then use this Boolean calculation to operate in DZV mode.
Value=1 and set it up in dashboard under Layout to control visibility.
what will happen, Manager logs in value is set to 1 he sees Dashboard A.
When employee logs in the calculation turns false as Value=2 and it not equal to 1 so Employee will see Dashboard 2. Try. :-)