Scheduled reports in BI tools: how automated report delivery works
Max Musing
Max MusingFounder and CEO of Basedash · June 20, 2026

Max Musing
Max MusingFounder and CEO of Basedash · June 20, 2026

A scheduled report is a saved report or dashboard that a BI tool runs on a recurring schedule and delivers to people automatically, usually by email or Slack, without anyone opening the tool. The point is reach: most people who need a number will never log into a dashboard, but they will read an email at 8am or glance at a Slack message. Scheduling turns a dashboard that a few analysts visit into a report that a whole team receives.
This guide is for analysts, operators, and founders who want recurring reports to land reliably in the right inboxes with the right data. It explains what a scheduled report is (and how it differs from a live dashboard and an alert), how automated delivery actually works step by step, the parts that quietly break, and how the major BI tools handle scheduling. It is a capability deep dive, not a tool ranking. If you want a ranked list, see our comparison of automated reporting tools.
The three recurring-data patterns get blurred together, but they answer different questions.
| Pattern | Question it answers | Trigger | Best for |
|---|---|---|---|
| Scheduled report | ”What do the numbers look like right now, on a routine?” | A clock (cron) | Recurring reach: morning metrics, weekly summaries, monthly board packs |
| Alert | ”Did something cross a line I care about?” | A data condition | Exceptions: revenue drop, error spike, churn threshold |
| Live dashboard | ”Let me dig into this myself” | A person opening it | Investigation and ad hoc follow-up questions |
A scheduled report is time-triggered: it fires whether or not anything changed. An alert is condition-triggered: it fires only when a metric crosses a threshold or an anomaly model flags it. A live dashboard is person-triggered: nothing happens until someone opens it.
The practical rule: schedule the things people should see on a cadence regardless of whether they are interesting, alert on the things people should never miss, and keep a live dashboard for the follow-up questions both of those will provoke. Sending a daily email for every metric is how you train people to ignore email. For the exception side of this, see our overview of anomaly detection and smart alerting.
Under the hood, every scheduled report runs the same four-stage pipeline. The names differ across tools, but the stages do not.
A scheduler decides when the report runs. Most tools expose this as a friendly picker (“every weekday at 8:00am”) backed by cron under the hood. Two details matter more than people expect:
When the schedule fires, the report needs current data. This is where scheduled reports collide with refresh strategy. There are two models:
If your dashboard reads a cached extract that refreshes at 7:00am and your report sends at 7:00am, you have a race. The report can grab yesterday’s numbers because the refresh has not finished. Stagger the two: refresh first, send with a buffer.
The query results get turned into something deliverable. Common formats and when each fits:
A frequent mistake is sending a static PDF to someone who needed the rows, or a 50,000-row CSV to someone who just wanted the headline number.
Finally the rendered report is pushed somewhere. The usual channels:
Push beats pull for routine reporting. The whole reason to schedule is that you stop relying on people remembering to look.
Report bursting (sometimes called “data-driven delivery”) is the capability that separates a basic scheduler from a real reporting system. Instead of building one report per recipient, you build a single report and the tool sends each recipient a version filtered to only their data.
A regional sales lead gets only their region. A customer gets only their own account. An account manager gets only their book of business. One definition, many tailored sends.
Bursting only works if the filtering is enforced at the data layer, not bolted on at send time. It is the same machinery as row-level security in a permission model: the report inherits each recipient’s row-level filter, runs once per recipient (or once with a per-recipient parameter), and delivers the filtered slice. If a tool offers scheduling but no row-level filtering, “personalized” reports really mean building and maintaining one report per person, which does not scale past a handful of recipients.
Scheduled reports fail in ways that are hard to notice, because by definition nobody is watching when they run. These are the recurring problems.
Capabilities vary widely. This compares the concrete features that determine whether a tool can do what you need.
| Tool | Native channels | Report bursting / per-recipient filtering | Formats | Notes |
|---|---|---|---|---|
| Basedash | Email, Slack | Via row-level access controls | Link, image, table | AI-assisted; schedules tied to workspace permissions |
| Power BI | Email (subscriptions), Teams | Yes, via data-driven subscriptions (Premium) | PDF, image, link | Paginated reports add SFTP and file delivery |
| Tableau | Email (subscriptions) | Limited; Data-Driven Alerts are separate | Image, PDF, link | Subscriptions push the view; bursting needs workarounds |
| Looker | Email, Slack, webhook, S3/GCS, SFTP | Yes, via “send as” with user attributes | CSV, Excel, PDF, PNG, JSON | Strong delivery options including cloud storage |
| Metabase | Email, Slack | Filtered by saved parameters, not true bursting | CSV, Excel, PDF (dashboard) | “Dashboard subscriptions” cover most needs |
| Sigma | Email, Slack, webhook | Yes, via row-level security on the schedule | PDF, CSV, Excel | Filters can be passed per recipient |
Channels and formats change; confirm against each vendor’s current documentation before you rely on a specific capability, especially when bursting or cloud-storage delivery is a hard requirement.
Before you turn a schedule on, run through these. Most broken reports skipped one of them.
Use a scheduled report when the cadence is the point: a recurring summary that people should see whether or not it changed, like a Monday pipeline review, a daily ops snapshot, or a monthly board pack.
Use an alert when only the exception matters: you do not want a daily “revenue is fine” email, you want a message the moment revenue drops below plan.
Use neither, and just keep a live dashboard, when the data is consulted irregularly and only by people who will open the tool anyway. Scheduling a report nobody asked for is the most common way to manufacture noise.
They are usually the same thing. “Dashboard subscription” is the term Power BI, Tableau, and Metabase use for subscribing a person or group to a recurring delivery of a dashboard. “Scheduled report” is the more generic term. Both run on a schedule and push output to a channel.
Match the cadence to the decision, not to the data. A report that drives a daily standup should arrive daily before the standup. A board metric can be monthly. Sending more often than the underlying decision is made just adds noise and, with live queries, warehouse cost.
Yes, if the tool supports report bursting or data-driven delivery backed by row-level filtering. One report definition is filtered per recipient so each person sees only their slice. Without row-level filtering, you are stuck building a separate report per recipient.
The two usual causes are a timing race (the report fired before the data refresh finished) and a broken upstream query that returns no rows but does not error. Sequence the refresh before the send with a buffer, and add a non-empty guard so a broken report fails loudly instead of sending blanks.
Send a PDF or image when layout matters and the recipient will read, not re-analyze. Send a CSV or Excel file when they will pivot or model the rows themselves. Send a link when they may want to drill into the live dashboard and you want the data always current.
Basedash is a modern BI tool where teams query databases, build dashboards with AI assistance, and schedule those dashboards to email and Slack on a recurring basis, with delivery scoped by the same workspace permissions and access controls that govern who can see what. For a lean team that wants recurring reports in front of people without standing up a separate reporting stack, scheduling sits next to the dashboard rather than in a separate admin console. As with any tool, weigh it against the capabilities above, especially the format and bursting needs specific to your audience.
Written by
Founder and CEO of Basedash
Max Musing is the founder and CEO of Basedash, an AI-native business intelligence platform designed to help teams explore analytics and build dashboards without writing SQL. His work focuses on applying large language models to structured data systems, improving query reliability, and building governed analytics workflows for production environments.
Basedash lets you build charts, dashboards, and reports in seconds using all your data.