Home Products Services About Contact

Simple Yet Effective: Practical Tableau Tips

Style guide, dashboard template, and ten tricks I use every week

This is the companion text for my live talk at the Serbian Tableau User Group. I walked through the small set of conventions and custom features that make our internal BI product feel consistent — a style guide, a single dashboard template, a few interaction tricks, and a feedback loop. None of it is rocket science. The point is that disciplined, repeatable patterns compound: every dashboard becomes faster to build and easier to trust.

Originally published on Medium.

The plan

  • Style Guide — what it is and why it pays off
  • Dashboard Template — the file we start every workbook from
  • Tabs — default vs custom
  • Question Mark — quick reference and guided navigation
  • Dynamic Zone Visibility
  • Filter icon — left-side filter container
  • Feedback form — Google Forms for CSAT
  • Tricks — custom formatting, dealing with unwanted selections, alignment crutch

Style Guide

A Style Guide is our main regulatory document. It defines the appearance and standardization of all BI reporting — a collection of strict rules, flexible recommendations, and general thoughts on how a good dashboard should look.

Cover of our internal Tableau Style Guide document

Ours is quite extensive; I don’t claim it’s the only way to implement one, and certainly not the best of its kind. It started as an educational resource for new BI developers and grew over time. The sections we settled on:

  • Colors and palettes
  • Logos and icons
  • Typography and formatting
  • Layout and dashboard architecture
  • Visualizations
  • Filters and parameters
  • Tooltips and actions

Style Guide table of contents — colors, typography, layout, visualizations, filters, tooltips

Why we keep one

  • Consistency. Helps users focus on the information presented and saves them time understanding any new dashboard.
  • Trust. Standardization increases confidence in the reports and in our department as a service team — there’s a baseline of quality every BI product clears.
  • Time saving. Most basic decisions (palette, paddings, header height, footer block) are already made — developers spend their effort on the analysis instead.

The most important point: the bulk of those rules is already consolidated in a single file — the template in a Tableau workbook. The style guide is the manual; the template is the enforced default.

From style guide to enforced template

Dashboard Template

We have only two versions of the template:

  • Single Dashboard Template — for one-page workbooks.
  • Multi-Dashboard Template with custom Tabs — for workbooks with several dashboards.

Single Dashboard Template

Four zones, fixed positions:

  1. Title and extra info — the headline and any contextual badges (filters applied, period, owner).
  2. Control Panel — buttons, hints, the question-mark icon, the feedback button.
  3. Footer — last refresh time and our department logo.
  4. Main content area — the actual visualizations.

Single dashboard template — title, control panel, footer, main content

Tabs

The multi-dashboard template adds a strip for custom Tabs.

Multi-dashboard template with custom Tabs strip

Why custom and not default?

Default Tabs synchronize all dashboards in the same workbook to one size — and that means redundant white space around any dashboard whose layout doesn’t match the largest one.

With default tabs on — empty white space frames every dashboard:

Default tabs on: white empty space around the initially designed dashboard

With default tabs off and our own tab strip:

Default tabs off: clean layout, custom tabs at the top

You can configure the show/hide tabs option in two places: at publish time, or directly on Tableau Server.

Toggling default tabs at publish time / on the Server

Question Mark

The question-mark icon lives in the Control Panel and serves two functions.

On hover — quick access to general information, the “What” function:

  • Business purpose
  • Logic (formulas)
  • Tech information / ownership

Question mark on hover — business purpose, formulas, ownership

On click — the “How” function, helping users figure out how to use the dashboard:

  • Guided navigation
  • Enhanced understanding (annotations, walkthroughs)

Question mark on click — guided navigation overlay

Dynamic Zone Visibility

Both the question mark and several filter behaviors below are powered by the same Tableau feature: Dynamic Zone Visibility, which lets you control the visibility of dashboard elements based on a condition.

Short instructions:

  1. Create a worksheet that you want to display dynamically on the dashboard.
  2. Create a parameter or a calculated field that returns TRUE or FALSE.
  3. Add the worksheet to the dashboard and configure its layout by setting ‘Control visibility using value’ to the parameter or calculated field you created.
  4. If necessary, add a parameter action that modifies the parameter controlling visibility.

Dynamic Zone Visibility — control visibility using value

Filter icon

We place the filter container on the left side of the dashboard, hidden by default and accessible by clicking the filter icon.

Besides the usual filters, there’s a small but highly appreciated feature: a small table configured as a filter that lets users switch the active measure. While it’s perceived as a filter, it already provides a quick insight at a glance.

Here’s a live example — User Engagement and License Usage, part of my Tableau Adoption set of dashboards used to manage our BI product.

User Engagement and License Usage dashboard with the filter container

We also use Dynamic Zone Visibility here, to enhance interactivity and let users customize periods based on their specific business needs. The extra section appears or disappears depending on the option selected in the parameter above — we hide elements until they are needed and keep the UX clean while still offering a wide variety of actions.

Dynamic filter sections appearing based on parameter selection

Customer Satisfaction — Feedback form

When users click the Feedback button, it opens a Google Form with a few questions tied to the specific dashboard they’re on.

Feedback button opens a Google Form embedded in the dashboard

Why this matters

Referring back to my previous TUG presentation on developing BI as a product:

  • We can measure product metrics like Engagement, MAU/WAU/DAU, and view counts in different segments — these are the quantitative data points we collect via the REST API or the Tableau repository on on-prem Server.
  • For an objective picture, we also need direct customer feedback — the qualitative signal. The form fills that gap and lets us track CSAT.

How to set up the pre-filled form

  1. Create a Google Form.
  2. Add questions with free-text format (mark them obligatory).
  3. Three-dot menu → Get pre-filled link.
  4. Inspect the input element you want to pre-fill.
  5. Find its ID by looking for entry. in the HTML.
  6. Take the original form link, append ?usp=pp_url, then add &entry.{id}=<value> for each field.
  7. Add a Web Page element on the dashboard and paste the resulting URL, equating the parameters to the corresponding entry fields.

Find Get pre-filled link in the Google Forms three-dot menu

Live example URL (formatted for readability):

https://docs.google.com/forms/d/e/<FORM_ID>/viewform
  ?usp=pp_url
  &entry.1006899384=<Full Name>
  &entry.2130746963=<Workbook Name>, <Sheet Name>

Locating the entry.{id} for each form field via DevTools

Once feedback lands, connect the dashboard to the responses Google Sheet and you can compute and track the CSAT score over time:

CSAT tracking dashboard built on top of the responses sheet

Bonus — pass dashboard context into the form

You can also pass any required data through Tableau parameters and capture comments from users tied to the exact element they were looking at. For example, pass the selected State and store the user’s comment against that exact row — try it on Tableau Public.

Feedback Comment Tool — comments stored per dashboard element

Tricks in our dashboards

Trick 1 — Custom formatting for period-over-period

We often need to compare the current period with the previous period, and stakeholders prefer to see the percentage difference. We display them in a few ways but always with red/green indicators:

Period-over-period delta with red/green indicators in a card

A few examples of how we use such indicators across dashboards

How it works

Tableau’s custom formatting for continuous fields is divided into two sections by default — positive and negative — separated by a semicolon. There’s also a third section for nulls.

Format pattern:

positive_format ; negative_format ; null_format

A few patterns we use:

#,##0.0;-#,##0.0          // plain signed number
▲ +0.0%;                  // positive only — green field
; ▼ -0.0%                 // negative only — red field

To color positives green and negatives red, we keep them in two separate fields (% diff — green shows only positives, % diff — red shows only negatives) and stack them. Each field gets only one of the two format halves filled in, so the other half is invisible:

green field   →   ▲ +0.0%;
red field     →   ; ▼ -0.0%

Trick 2 — Dealing with unwanted selections

You’ve likely run into this: a user accidentally clicks an element on a chart and can’t reset that selection. Click anywhere — nothing helps. Click the same element again — still selected.

The fix is a one-line action filter that toggles the selection from TRUE to FALSE on every click, so clicking anything effectively means deselect.

Stuck selection problem before the fix

Setup

  1. Create two calculated fields: one returning TRUE, one returning FALSE.
  2. Add both to the Detail shelf of the worksheet.
  3. Create a new Action Filter:
    • Source sheet — your worksheet from the dashboard.
    • Target sheet — the worksheet directly (not a dashboard zone — the raw worksheet).
    • Run onSelect.
    • Filter onSelected fields.
    • Source fieldTrue. Target fieldFalse.

Action filter dialog wired source TRUE → target FALSE

Trick 3 — Alignment crutch

You’re likely familiar with this situation: a header lives in a separate worksheet and you align it with the underlying worksheet on the dashboard. The careful layout instantly breaks when the number of rows in the lower worksheet changes due to filtering — the scrollbar appears, columns shift, and the header no longer matches.

Working example on Tableau Public.

Alignment crutch — header stays aligned with the data table regardless of row count

Setup

  1. Duplicate the lower worksheet.

  2. Remove all fields except your dimension in Rows.

  3. Create a calculated field Row counter:

    WINDOW_COUNT(COUNTD([Granularity])) + 1
    

    It counts rows depending on any filtration. Granularity is your dimension.

  4. Create another calculated field Counter Crutch TF:

    IF [Row counter] > 14
    THEN TRUE
    ELSE FALSE
    END
    

    Update the number 14 to match how many rows you can see without a scrollbar in your layout.

  5. Put Counter Crutch TF in the Filters section of the duplicated worksheet and keep True.

  6. Move the duplicated worksheet onto your dashboard.

  7. Set it to Fit Height on the dashboard.

  8. While Marks is Text and column width is Standard, hide the dimension header.

  9. Turn off all paddings.

  10. Adjust the cell width so it lines up with the table on the dashboard.

  11. Change Marks: TextPolygons.

Wrapping up

Used features:

  • Style Guide — what and why
  • Template with built-in elements
  • Custom tabs
  • Question-mark quick-reference button
  • Guided navigation via Dynamic Zone Visibility
  • Filter container on the left
  • Customized crosstab as a filter
  • Dynamic Zone Visibility for additional filters
  • Google Form feedback for CSAT metrics
  • Custom formatting for positive/negative indicators
  • Action-filter trick for unwanted selections
  • Alignment crutch for headers

If you want to dig into the BI-as-a-product mindset behind all this, the metadata series covers the analytical foundation — why metadata matters, the REST API, the PostgreSQL repository, and the GraphQL Metadata API on which the quantitative side of CSAT measurement depends.

Find me on LinkedIn.

Ready to Elevate Your Tableau Experience?

Let's build something extraordinary together.