If you've ever shared a Tableau dashboard, you know the drill: every stakeholder wants their slice of the data. The head of sales wants to see only her region. The exec team wants the big picture. IT wants...well, everything, but only for compliance. One dashboard does not fit all.
If you’re tired of duplicating work or sending the same report with a different filter each week, this guide is for you. We'll go step by step through creating custom user filters in Tableau, so each person sees exactly what they need—and nothing they don’t.
Why bother with custom user filters?
Let’s cut through the noise. Here’s what custom user filters actually solve:
- Privacy: Finance shouldn’t see HR’s data.
- Clarity: People get overwhelmed by too much info. Show them only what matters.
- Efficiency: No more making 5 versions of the same dashboard.
Yes, there’s a learning curve. But once you set it up, you’ll save yourself headaches (and repetitive tasks) forever.
Step 1: Get your data—and your user list—ready
Before you even open Tableau, get organized. The trickiest part of custom filtering is matching users to the data they’re allowed to see.
You need:
- A clean data source. Ideally, this is a database or spreadsheet with columns you’d want to filter by (region, department, etc.).
- A list of users (their Tableau usernames or emails) and what data they should see.
Pro tip: If you’re using Tableau Server or Tableau Online, user management is easier, since you can reference real usernames. If you’re publishing just to Tableau Public, user filtering won’t work. (Yes, it’s a pain.)
Step 2: Connect your data in Tableau
Open Tableau Desktop and connect to your data like you usually would. If you’re new, just pick your Excel file, database, or whatever source you’re using.
Don’t overthink this part. You just need to get to the point where you can build a basic dashboard. If your data’s a mess, spend time cleaning it up now—filters won’t fix junk data.
Step 3: Decide on your filtering method
This is where most people get tripped up. Tableau offers several ways to filter data by user, but only a couple are flexible and maintainable. Here are the main approaches:
1. User Filters (built-in, easy for small teams)
- Best if you have Tableau Server/Online and not too many users.
- Lets you assign who sees what directly in Tableau.
2. Row-Level Security with a Mapping Table (scalable, more work upfront)
- Best for bigger orgs or complicated rules.
- You make a table that matches users (or groups) to what they can see.
- More setup, but way easier to maintain as things change.
3. Manually duplicate dashboards (just...don’t)
- This is a maintenance nightmare. Only do this for a one-off.
Verdict: If you’re just starting out and have 10 users or fewer, try Tableau’s built-in user filters. If you expect to scale, go with row-level security and a mapping table. That’s what the pros do.
Step 4: Set up User Filters (the easy way)
Let’s do the basic version first.
- Build your dashboard. Make it look the way you want, with all the data visible.
- Click on a worksheet, then go to the Data pane.
- Right-click the field you want to filter by (e.g., “Region” or “Department”).
- Select “Create User Filter.”
- In the dialog, check which users (or groups) can see each value.
- Click OK. Tableau creates a new filter for you: “Region (user filter)” or similar.
- Drag this filter onto Filters for every worksheet where you want row-level security.
- Publish the dashboard to Tableau Server/Online.
That’s it. When users log in, Tableau checks who they are and only shows them what you allowed.
Gotchas:
- This method doesn’t scale well. If you add new users or regions, you have to update the filter manually.
- If you’re using Tableau Public, this won’t work at all.
- If your organization uses groups, you can filter by group instead of by user.
Step 5: Set up Row-Level Security with a Mapping Table (the pro way)
If you want to automate who sees what, you’ll need a mapping table. Here’s how.
1. Create a mapping table
This is just a spreadsheet or database table with two columns:
| Username | Region | |--------------------|------------| | jane@company.com | East | | bob@company.com | West | | chris@company.com | All |
- The Username column should match how users log into Tableau.
- The second column is what you’ll filter by (could be Region, Department, etc.).
Pro tip: Use groups if you can. Managing by group is way easier than by individual user.
2. Join the mapping table to your data
- Connect both your main data and the mapping table in Tableau’s Data Source tab.
- Join them on the appropriate field (e.g., Region).
- For more complex setups (like users seeing multiple regions), you might need a many-to-many join.
3. Set up a calculated field for the current user
- In Tableau, create a new calculated field called something like “User Check.”
-
Use this formula:
USERNAME() = [Username]
Or, if using groups:
ISMEMBEROF('GroupName')
-
Drag this calculated field to Filters and set it to “True.”
Now, when someone logs in, Tableau matches their username to the allowed regions and only shows them relevant data.
Gotchas:
- USERNAME() only works if people are logging in to Tableau Server or Online.
- If you’re testing, Tableau Desktop will use your own login—so test with “View As” on Server or ask a coworker.
Step 6: Test like a real user
Don’t skip this. Lots of dashboards “work” for the creator, but break for everyone else.
- Use Tableau Server’s “View As” feature to impersonate users or groups.
- Check that each user only sees what they’re supposed to.
- If you use mapping tables, try a few edge cases (multiple regions, no access, etc.).
Pro tip: Keep a checklist of test cases and run through them before you publish.
Step 7: Publish and communicate
Once you’re sure it works:
- Publish your dashboard to Tableau Server or Tableau Online.
- Let users know what to expect. (“You’ll only see your data. If something’s missing, let me know.”)
- Document how the filters work, especially if someone else might take over later.
What works, what doesn’t, and what to avoid
Works well: - Row-level security with mapping tables for anything but the smallest setups. - Using groups instead of individual users. - Testing thoroughly before rolling out.
Doesn’t work: - Tableau Public (no user-level filtering). - Duplicating dashboards for every user (just creates chaos). - Relying on manual updates for large, shifting teams.
Skip the hype: - Tableau’s user filters are fine for small orgs, but don’t expect them to scale. - “Dynamic dashboards” sound cool, but without good filters, you’re just hiding data, not protecting it.
Wrapping up: Keep it simple, iterate often
Custom user filters in Tableau aren’t magic, but they save you time and make sure people only see what they should. Start with the basics, test like crazy, and don’t be afraid to refactor as your organization changes.
Remember: start small, get it working, then add complexity only if you need it. Fancy features won’t make up for a dashboard nobody trusts. Keep it simple and user-focused, and you’ll save yourself a ton of headaches down the road.