BI and Data Visualization

Interactivity That Survives Stakeholders

By Sean Miller
Interactivity That Survives Stakeholders

Build a Tableau parameter action with a Reset sentinel value. Click to filter, click again to go back, stakeholders never get stuck. The interactivity rep that survives every stakeholder review.

A while back, I shipped a healthcare dashboard with a slick filter-action map. Click any state to drill into facility-level KPIs. Beautiful, I thought. Discoverable. Self-service. I sent the URL over and went to bed feeling pretty good about myself.

Six hours later, a panicked Slack DM from the executive sponsor: “The dashboard is broken.”

I logged in. The dashboard wasn’t broken. They had clicked a state, the dashboard had filtered, they had clicked somewhere outside the map by accident, and the dashboard had gone empty. Cleared selection—no data showing, no obvious way back. To them, that looked exactly like a broken dashboard.

That weekend, I rebuilt the interaction model. The pattern below—soft-reset parameter actions with a sentinel value—is what came out of it. I have shipped this exact pattern in every interactive dashboard I’ve built since. (Zero panicked Slack messages since the switch. I don’t have data to back this up, but I’m pretty sure that’s not a coincidence.)

This is the rep that makes interactivity safe for stakeholders. Let me show you.

What you're building

A US state map with KPIs around it. The interaction works like this:

  • Click California → entire dashboard filters to California.
  • Click California again → dashboard goes back to all states.
  • Click an empty area → dashboard goes back to all states.
  • Click the Reset button → dashboard goes back to all states.

That last point is the whole game. “Show me everything” is a real, first-class state of the dashboard—not just “no selection.” The user can never click their way into a stuck state because “all states” is a deliberate value the dashboard knows about.

The trick is a string parameter with a sentinel value of “Reset,” plus a calc that says “pass through if the parameter matches the row’s state or if the parameter equals ‘Reset.’”

Why your stakeholders care

Filter actions are great until somebody clicks somewhere unexpected and the dashboard goes empty.

Parameter actions, with a sentinel reset value, make “all” a deliberate state instead of an accident. That has saved me more “the dashboard is broken” support tickets than I can count—every one of them was actually a stakeholder who had clicked through and didn’t know how to get back.

The other reason this pattern is an elite move: parameter actions scale across sheets and objects thanks to Dynamic Zone Visibility. A filter action only filters the sheets you wire up. A parameter action writes a value to a parameter that every sheet in your workbook can read. Want to add a sixth sheet that responds to the click? You don’t add or edit another action—you just have the new sheet read from the same parameter. It’s a single source of truth for what the user is currently looking at.

I’ve shipped this pattern in healthcare (facility filter map), retail (territory dashboards), sales (account drill-down), and logistics (site monitoring). Same three calcs. Same checkbox.

Under the hood

Three calcs and one critical checkbox. Let’s go.

Step 1 — The map (skip if you already have one)

Build a US state map: drop State/Province on Detail with the polygon mark type. Tableau handles the geography automatically. Color it however you want—I usually go with a single muted fill to keep the focus on the click interaction rather than the visualization itself. We’re skipping the map build because it’s not the rep—the rep is the interaction model on top.

Step 2 — The parameter

Create a parameter:

  • Name: State
  • Data type: String
  • Allowable values: All
  • Default value: "Reset" (literally the string Reset)

The default matters. When the dashboard first loads, the parameter equals "Reset", and our filter calc (next step) will pass everything through. “Show me everything” is the natural starting state.

Step 3 — Calc: Reset (the sentinel)

//Reset        
"Reset"    

That’s the whole calc—a literal string. Why does it exist? Because we need that exact string to live as a value somewhere in the workbook so a parameter action can write it into the parameter. We’ll wire that up later.

Step 4 — Calc: Map Filter (the soft-reset logic)

//Map Filter      
[Parameters].[State] = [State/Province]          
OR [Parameters].[State] = [Reset"]  

Boolean. Read it as: “Pass through this row if the parameter matches the state or if the parameter equals Reset.”

When the user has clicked a specific state, only that state passes the filter. When the parameter equals "Reset", every state passes—meaning every sheet on the dashboard shows full data.

Drop Map Filter on Filters → True on every sheet that should respond to the click. The map itself, the KPI sheets, the trend charts—everything. One calc, dropped everywhere it matters.

Step 5 — Calc: State Check (optional helper)

//State Check      
[Parameters].[State] != [Reset]  

Optional but worth building. Returns TRUE when a state is currently selected, FALSE when in Reset state. I use it in three places:

  • Dashboard/sheet title: IF [State Check] THEN "Showing " + [Parameters].[State] ELSE "All States" END — gives the user a clear text indicator of what they’re looking at.
  • Show/hide logic for “back to all states” buttons or hint text.
  • Conditional formatting for KPIs that should look different when filtered to a single state vs. showing all.

Step 6 — The Reset button (a separate sheet)

Create a fresh worksheet. Drop the Reset calc you built in Step 3 onto Text. You’ll get a tiny worksheet showing the word "Reset". Format it—maybe a button-shaped colored background, white text, hover state, whatever fits your dashboard’s design. Add it to the dashboard somewhere visible—the top-right corner is the convention.

This sheet becomes the click target for our second parameter action.

Step 7 — The parameter action (the whole pattern)

This is the one. Pay attention to the last setting—it's the most important checkbox in the entire technique.

Dashboard → Actions → Change Parameter.

  • Source sheets: the map (and the Reset button sheet too, but we’ll add a second action for that in Step 8)
  • Target parameter: State
  • Source field: State/Province (from the map)
  • Run on: Select
  • Aggregation: None
  • 🔑 Clearing the selection will: Set value to Reset ← THE WHOLE PATTERN

That last setting is the keystone. It says: “When the user clicks the same state twice, clicks empty space, or otherwise clears the selection, push ‘Reset’ into the parameter.”

Without it, the parameter stays stuck on the last clicked state. With it, the dashboard naturally returns to all-states.

Step 8 — The Reset button action (belt and suspenders)

Add a second parameter action. Source: the Reset button sheet. Target parameter: State. Source field: Reset. Run on: Select. Aggregation: None.

Now clicking the Reset button writes "Reset" into the parameter directly, in addition to the map behavior. Belt and suspenders. Some users discover the double-click trick. Some want a button. Give them both.

Step 9 — Fix the Reset funkiness

Now that you’ve set everything up, you’re ready to start playing around and clicking on the reset filter. Everything works except for this silly little double highlight thing that happens on your reset sheet.

We’re going to fix that by adding a self-sheet filtering dashboard action. Yes, a dashboard action tied to a single sheet targets the sheet object itself…with a twist. Here’s how to set it up. You need to create two additional calculated fields, where one is the TRUE value and the other is the FALSE value. It is important that they are Boolean values and not strings.

Put TRUE on the Detail shelf of the marks card. Then go to the dashboard and add a new action:

  • Name: No Reset Highlight
  • Source Sheet: Reset (on the dashboard)
  • Target Sheet: Reset (worksheet object)
  • Clearing the selection will: Show all values
  • Filter: We’ll want to change this from all fields to selected fields. The source field is True because that's on our detail shelf, and the target field is False.

Now you can create another dashboard element you’d like. In this example, we added the ability to see Product-level metrics and the ability to filter by Customer. Now to do this right, we need to add a vertical container to put all our “hide-able” elements and take advantage of one of the best new features in 5 years: Dynamic Zone Visibility.

Create your sheets as you normally would. However, you will need to add the following calculated field to your filter shelf:

//State Filter      
[Parameters].[State] != [State/Province]

This allows sheet values through when our State parameter value equals one of the states on the map. When that is not the case, the value is null.

You will set this filter to TRUE. Again, rinse and repeat for each sheet except for the map and our Reset sheet. You can also test the parameter actions that you set up earlier. See how the value(s) change? Pretty cool, right?

Now everything is working beautifully and you're ready to put the final touches on and make this dashboard feel more app-like. With dynamic zone visibility, you can control the visibility of ANY OBJECT by evaluating a parameter value. It’s amazing. When you drop an object on a dashboard, by navigating to the Layout menu of the Dashboard panel, you’ll see a check-box indicating Control visibility with value. Check that box and a dropdown menu appears with available calculated fields you can use. We need to create one last calculated field to finish this off.

//Product_dzv      
[Parameters].[State] != “Reset”

A couple of things: I denote my dzv calc with that suffix to help me identify the correct one to use.

This calculation evaluates our State parameter value for when State parameter does not equal Reset. The literal string. This feature cannot work with dynamic column values. The resulting field must be a Boolean where TRUE shows objects and FALSE hides it.

What makes DZV so powerful is that you can now hide multiple objects by controlling the visibility of a parent container. “Back in my day” the only way to do this was to deploy the sheet hiding protocol of adding the above calculation to EVERY. SINGLE. SHEET. And this would only work on sheets; all other objects had to employ serious hackery and tomfoolery (ever tried to make a dynamic show/hide color legend? I have and it’s awful).

Dynamic Zone Visibility is the way for everything.

Form check

Three things to watch.

The "On clear" setting is the whole game. I said it above, and I'll say it again: if you skip the "Clearing the selection will: Set value to Reset" checkbox, the dashboard gets stuck on the last state clicked, and your stakeholders will Slack you saying it's broken. This single setting is the difference between a working soft reset and a non-working one. Verify it before shipping every time.

Don't use a Set Action for this. Set actions are great for highlights — "color the selected items differently while leaving everything else visible." But sets don't give you a string value you can read in titles, conditional formats, or downstream calcs. Parameters do. That string readability is why this pattern scales — one parameter, dozens of sheets, one source of truth for "what is the user currently looking at?"

Same pattern, different field. This is the one rep where the calcs are almost trivial — Reset is a literal string, Map Filter is a single boolean, State Check is a single comparison. The trick isn't the calcs; it's the parameter-action checkbox. Once you've built it once, you can port the pattern to any dimension — facility ID, region, account, store, SKU. Replace State/Province with whatever your filter dimension is. The rest of the pattern is identical.

Same rep, different jersey

Healthcare. Facility filter map. "Click a hospital to drill in. Click again to step back out." The parameter is the facility ID. Every KPI sheet reads from it. Stakeholders never get stuck.

Retail. Territory dashboard. "Pick a region, and the KPIs follow. No more 'how do I reset this?'" Region is the parameter, KPIs filter accordingly, and the Reset sentinel makes "all regions" a deliberate state.

Sales. Account drill-down. "Tap an account to filter the dashboard. Tap again — full book of business." Account ID is the parameter. I used this in a CRM dashboard last year that the SVP of Sales clicks through every Monday morning.

Logistics. Site monitoring. "Click any DC to see its lane volumes. Reset always works, every time." DC ID is the parameter. The operations director loves the pattern because it survives accidental clicks during a 7 a.m. standup when nobody is awake yet.

Same three calcs. Same checkbox. Different domain, different stakeholder, same "the dashboard never breaks" payoff.

Want this run live with your team?

If your team is shipping interactive dashboards and fielding "the dashboard is broken" support tickets that turn out to be users who got stuck mid-click, this is the rep that solves that problem at the source.

WOW Live is a custom Workout Wednesday session I run virtually with your team, using your data, your stack, and your team's questions. The soft-reset pattern is one of the most directly applicable reps for any team shipping interactive dashboards to non-technical stakeholders. We'll wire it into one of your existing dashboards in real time, and you'll feel the difference immediately.

Sign up for WOW Live

Until next time

That's the series: five reps. Nine years of #WorkoutWednesday, distilled into the patterns that pay for themselves most often in real client work.

Catch up on any you missed:

The whole series lives at the Workout to Workday hub.

What's coming next on the Concord blog: I'll be writing about how these five reps assemble into a client-ready dashboard pattern library — taking the individual techniques and showing how they compose. If that sounds useful, watch this space.

And, of course, if you want this whole series run live with your team on your data, that's exactly what WOW Live is for.

Sign up for WOW Live

A real ask before you go: Which of the five reps did you actually build? If you ran any of them with your own data, I'd love to see what you made. Tag me on Tableau Public, drop a link in the comments, or just send me a screenshot. The community is the whole reason this series exists.

Thanks for reading. Until next time, happy vizzing — and GO FORTH AND VIZ.

— Sean


Sean Miller is Principal Consultant for Analytics & BI at Concord, based out of his awesome hometown of Kansas City. He blogs at
hipstervizninja.com and somehow ended up doing #WorkoutWednesday for nine years running. (Don't judge.) Find him on Tableau Public as @hipstervizninja.

Sign up to receive our bimonthly newsletter!
White envelope icon symbolizing email on a purple and pink gradient background.

Not sure on your next step? We'd love to hear about your business challenges. No pitch. No strings attached.

Concord logo
©2026 Concord. All Rights Reserved  |
Privacy Policy