Tableau Refresh Failure Agent
Turns a failed extract refresh into one Slack note that quotes the error, counts the sibling datasources that broke with it, and names the teams whose dashboards just went stale.
A stale Tableau dashboard is usually discovered in a meeting, by the person least able to fix it, several hours after the refresh actually failed. This agent picks the failure up instead, quotes the error as Tableau wrote it, checks which sibling datasources went down in the same window, and posts one Slack note naming the project, the owner and the teams whose numbers are now old. It suggests where to start and touches nothing, so your data team decides what gets rerun.
## What people use it for
- **One password, nine dashboards** - Credentials expire per connection and not per datasource, so a single failure is often the visible edge of ten. The note carries the count and a couple of names, which turns a fix for one extract into a fix for all of them.
- **Written for the people affected** - The project and the teams behind it are named before any technical detail, so a finance lead reading the channel knows this morning's numbers are old without having to work out what a datasource is.
- **Errors quoted, not translated** - Driver codes and database messages go in exactly as returned. That string is what a search finds, what a vendor ticket needs, and what stops a guess hardening into the accepted explanation.
- **Nothing rerun behind your back** - The agent never triggers a refresh or edits a schedule, which matters on sites where one extract holds a warehouse open for two hours. It reports, and your team chooses what to run again and when.
## Before you fork
**How is this different from the failure email Tableau already sends?**
The built in alert goes to the datasource owner and says that one thing failed. This checks the rest of the site first, so you learn that eight extracts on the same connection failed together, and it posts where the affected teams already are instead of into one person's inbox. The error text is carried through unchanged either way.
**Does it need a Tableau site administrator account?**
It needs enough access to read jobs and query datasources across the projects you care about, which on most sites is a site role that can see those projects rather than a full administrator. No publishing or scheduling permission is needed, and withholding it removes any chance of an accidental refresh.
**Can it rerun the refresh once someone fixes the credential?**
No. Reruns cost warehouse time and can collide with the schedule, so that decision stays with your data team. What it does instead is hand them the failing connection, the datasources sitting behind it and the first step from your rules, which is usually the slow part of the decision anyway.