Freshness Badge is one slim strip for any Tableau dashboard: fresh, late or failing, learned from your own refresh log. Viewers see it before they act on stale data, not after.
You publish the .twbx to a project on your Tableau Cloud site, like any workbook. The app's code rides inside the workbook (Tableau calls this a data app), so Tableau hosts it: it opens under your site's own URL, sign-in and project permissions. There is no extension URL to allowlist, viewers get no permission prompt, and there is no TableauOps server to trust. A new version is a new .twbx you republish. Your site admin does need data apps turned on (the site's Packages setting).
Freshness Badge.twbx.The badge reads the data source behind its own sheet, inside Tableau. Point that at Admin Insights, the project Tableau Cloud keeps for site admins: Job Performance supplies each refresh, its result and its error, and TS Events adds who opened which workbook. The badge maps their columns by name, so no renaming in the usual case.
Job Performance alone is enough: the badge learns each source's refresh rhythm from it and badges every source on its own. One thing Admin Insights doesn't record is which data sources each workbook uses, so for a badge per dashboard you add that as a short list, one row per workbook and source, in the same table. The badges move when Admin Insights refreshes, so they are as current as that data.
Honest note: we tested it on a field-for-field replica of Job Performance and TS Events built from a real site's activity log, not yet on Tableau's own Admin Insights. If a column doesn't line up, the badge names what's missing, and a reply to the delivery email gets it fixed.
You get the workbook (.twbx), a setup guide and a log template. Built for Tableau Cloud. Curious what we store? Your data, plainly.