How Do You Stop Tableau Subscriptions Sending Empty Reports?
Your manager receives the overdue-order email every morning, even when there is nothing to chase. After enough empty attachments, the useful report starts to be ignored.
Advanced Tableau Report Scheduler (ATRS) can keep genuine no-work results quiet while giving failed reports their own alerts, actions and recovery rules.
Keep the overdue-order email useful
The overdue-order report was meant to draw attention to work that needs following up. Instead, quiet days produce another empty attachment, and the manager has learned to leave it unopened.
The aim is to make an arriving worklist worth reading again. A day with no overdue orders should have the response the team wants, while a failed report should still reach the person who can repair it.
For one Tableau snapshot, Don’t send if view is empty may be enough. Save the relevant view and try it on a genuine no-work day; a dashboard showing a zero card can still contain displayed content.
When the Tableau Cloud job includes Excel worklists, regional versions or further delivery steps, ATRS can keep the blank check and exception response with that reporting routine.
Choose the no-data behavior for the actual exception view the manager receives.
What counts as an empty native subscription
The Tableau subscription guide documents the empty-view option and saved Custom Views. Temporary browser selections do not become the subscription’s saved filters. Recipients still need View and Download Image/PDF permissions.
Check what the authored view shows on a no-work day. A large zero card, labels or other dashboard content may remain when there are no overdue-order rows. Test the actual view rather than assuming a business meaning of empty.
Use one populated sample and one genuine no-work sample. Check the operational result as well as the inbox; a missing message alone does not distinguish successful suppression from rendering or delivery failure.
Protect the email people need to notice
The worklist should earn the manager’s attention. Agree what they want to receive on a day when there are no orders to chase.
Give no data and a failed report different responses
Agree with the manager what a quiet day should mean. They may want no message at all, while the reporting owner wants a separate confirmation that the check completed without finding work.
ATRS can identify blank reports using a file-size threshold or a SQL query returning no qualifying results. A query can be useful when the workbook still contains headings or template formatting on a no-work day.
The other outcomes deserve their own response. A failed export, unavailable source or unusually long run is a reporting problem, not reassurance that there are no overdue orders.
ATRS’s exception controls include run-duration error rules, retry timing and limits, custom actions and alert routing. Package reports can have their own blank/export-failure responses alongside the package’s overall exception settings.
ATRS exception-handling controls
The Exception Handling guide and Single Schedule guide document these controls. Configure them for the reporting job and test their combined behavior.
| Control | What you can decide |
|---|---|
| Run-duration error | Set a minutes threshold or use Auto-calculate to classify an overdue run as an error. |
| Retries | Set the retry interval and maximum attempts. A zero retry interval marks the first error failed, leaving the next scheduled run. |
| Blank detection | Use a file-size threshold in bytes, or a SQL query whose empty result means blank. |
| Suppress blank output | Ignore the report and subsequent tasks to prevent blank delivery and ordinary follow-on custom tasks. |
| Exception actions | Run one or several configured tasks for the selected exception; the guide includes a no-data email notification example. |
| Schedule alert override | Override the default error-email address for this schedule’s failure notification. |
| Package reports | At individual-report level, respond to Report is blank and Report export fails. |
| Whole package | Configure exception handling for the package as well as its constituent reports. |
Exception actions use the available Custom Tasks, so the response can do more than display an error: notify someone, execute another schedule or perform an appropriate file/database task. Choose the action needed for this incident and verify its result.
The package guide separates per-report and overall settings. Decide whether a missing required worklist makes the pack incomplete, then test that behavior. Do not assume every blank member automatically cancels the whole package.
Give the owner a different message
A no-data confirmation and a failed-export alert serve different conversations. Keep their purpose clear when setting the responses.
Set up the blank check and the recovery behavior
Start with the manager’s overdue-order report and two familiar days: one with work to chase and one without. Select the report, region and business date in ATRS and use a test destination.
Choose the blank-check method that fits that report. Compare real empty and populated files for a size rule, or use a SQL condition that follows the same overdue-order and period rules.
Set the blank response and any separate notification. Talk through what the job’s later tasks should do when the report is skipped, especially if an archive or database update normally follows it.
Then try the broken morning as well as the quiet one: a failed export, failed check or overdue run. Confirm the owner’s notification and the retry response. The team should be able to tell that reporting needs attention without filling the manager’s inbox with empty worklists.
ATRS can classify an output as blank below a chosen size. Calibrate the threshold with your report; the screenshot value is an example.
System alerts, recovery views and delivery safeguards
In Options → General, Error Handling can email a specified address or the schedule owner and send an SMS when execution fails. The interface can close error messages after a set number of seconds. Blank-report error-message suppression avoids on-screen interruption; it does not by itself define the job’s delivery rule.
The system error log records failures, and verbose logging adds detail for investigation. Process Watcher can monitor manually executed schedules. These controls help operators understand an exception alongside the per-schedule rules.
Use System Monitor → Retry View to see failed schedules awaiting another attempt until success or their retry limit. In History View, expand partial successes to find the failed report or destination; the Error Log provides system-error details.
Messaging also offers re-sending failed emails, while added SMTP accounts can be configured as backups when a primary is unavailable. These are related delivery safeguards, separate from deciding whether a report is blank. Review existing successful deliveries before repeating a job.
Test failure alerts through their actual sending route. An email warning is only useful if it reaches the owner, and suppressing an on-screen message is not a substitute for monitoring.
Try a broken morning before it matters
A controlled failure lets the owner see the alert and recovery behavior while someone is available to discuss it.
Run the job with its saved exception rules
An operations application can request the saved job with its tested blank and error behavior. The reporting owner keeps those choices in ATRS instead of recreating them in every request.
If the application checks for reportable work itself, keep a failed check separate from a successful no-work result. That preserves the same distinction the manager relies on.
API example: run the stored job and inspect its result
Follow the ATRS execution guide. This example runs an ordinary single-report schedule. Replace 101 with its actual UniqueId, use your ATRS HTTPS address and keep the token on a backend authorized to request this report.
POST /api/Schedule/ExecuteScheduleAsync
Authorization: Bearer <ATRS-access-token>
Content-Type: application/json
{
"ScheduleType": "report",
"UniqueId": 101,
"RunBy": "Operations application"
}
GET /api/Schedule/GetExecutionStatus?ExecutionId=<returned-id>
Authorization: Bearer <ATRS-access-token>Keep the returned ExecutionId with the request. Monitor within a defined limit and parse the JSON-encoded ResultJson; Completed can contain Result=false. The contract does not provide a general output row count or a universal suppressed-because-empty flag.
Blank checks, retry settings and exception actions belong to the saved configuration, rather than extra fields invented for this execution payload. Use the actual stored schedule family for packages or data-driven jobs.
Check the configured suppression and notification outcomes during setup and after relevant report changes. If submission or delivery is uncertain, reconcile the earlier execution and destinations before retrying so the application does not duplicate a successful worklist.
Make a quiet result explainable
Keep the requested date and execution reference together so a colleague can tell what happened when no attachment arrives.
Keep quiet days quiet and failures visible
The next overdue-order email can once again mean there is something useful to open. Quiet days stay quiet, and reporting problems have a route to the person responsible.
Bring one populated day, one empty day and the failure response your team needs. Use them to explore the ATRS worklist and exception-handling routine.
Contributors:
Christian Ofori-Boateng
CEO, ChristianSteven Software

