Data alerts are available wherever scheduled refreshes
are: on Premium and Enterprise plans, for users with
at least the Explorer role and Edit or Manage permission on the
workbook.
Creating a data alert
- Open the scheduled refreshes sidebar of a published dashboard and click New scheduled refresh, or edit an existing schedule.
- Click Add alert condition. An Alert condition card opens above the notification.
- In Chart, pick the chart or KPI to watch. The list holds every chart and KPI widget on the published dashboard, including those inside grid, stack, and tabs containers. A chart that can’t carry an alert is listed but disabled; hover it to see why (see Which charts support which rule).
- In Measure, pick the value to read. The chart’s first measure is selected for you. Measure and Condition stay disabled until you pick a chart.
- Under Condition, choose the rule type and fill in its fields.
- Click Add notification and choose email recipients or a Slack channel. An alert needs somewhere to send its notification, so Save stays disabled until it has one.
- Click Save.
Rule types
Threshold
The condition is met when the measure is above, is below, or is equal to the number you enter in Value. Is equal to compares exactly, so it suits whole-number measures such as counts.% change
The condition is met when the measure increases by ≥, decreases by ≥, or changes by ≥ (in either direction) the percentage you enter, comparing the chart’s last complete period with the period before it. When the previous period’s value is 0 there is no percentage to compute, so the check can’t run and nothing is sent.Anomaly
The condition is met when the last complete period falls outside the normal range of the periods before it. The normal range is their median ± 3 × the median absolute deviation. If every earlier period has the same value, the range is that value alone, and any other value is outside it. The rule needs at least 8 complete periods before the latest one. Until the chart has them, the check can’t run and nothing is sent.Which charts support which rule
The dialog offers a chart and a rule type only where the chart has the value it reads, and says why when it doesn’t:- A chart or KPI without a time dimension supports Threshold only. % change and Anomaly compare periods, so they are disabled, and the reason shows under the rule types.
- A chart split by a dimension besides its time dimension — a bar chart by category, or a line chart with one line per status — has no single value to check, so it is disabled in the Chart list. Its tooltip says why, for example ““Orders by month and status” is split by Status, so it has no single value to check. Pick a KPI or a chart without a breakdown.” A chart with several measures and no breakdown is fine: you pick one measure.
- A chart whose query Cube can’t read, such as a Python analysis or a chart built from SQL, is disabled in the Chart list too.
What an alert checks
The data the notification shows. The alert reads the chart with the schedule’s control values, and with the dashboard’s published default for every control the schedule leaves on Use default — the same data the notification’s screenshot shows. For example, if the dashboard’s Status filter defaults to completed orders and the schedule sets it to Clear, the alert reads the orders of every status. The dialog, every alert email, and every Slack message say so: “Checked with the dashboard’s default filters and this schedule’s saved filters.” If you republish the dashboard or change a default, the next check uses the new version. The last complete period. On a chart with a time dimension, every rule reads the last complete period: the period still in progress, and any later periods the data holds, are skipped. A monthly chart checked on September 15 reads August. Periods follow the granularity the chart is drawn with, so a time granularity switcher that changes it changes the period the alert reads. On a chart without a time dimension, the alert reads its single value. The schedule creator’s access. The check runs once per run, with the data access of the person who created the schedule.When an alert notifies
An alert notifies when its condition starts to hold, and again only after it has stopped holding and then starts again. While the condition keeps holding, later runs send nothing, so a value that stays above its threshold for a week sends one notification, not seven. There is no notification when the condition stops holding. A notification that reaches no one — for example, when the only recipient is a group with no members — doesn’t count as sent: the next run that finds the condition met tries again. Run now checks against the same history as a scheduled run: pressing it twice while the condition holds notifies once. The alert starts fresh — as if its condition had never held, with its card back to “Last check: not run yet” — when you turn the schedule off, edit the alert’s condition, or change the schedule’s control values: the next check notifies if the condition holds on what it now reads. Changing only the schedule’s time keeps the history. A check that can’t run leaves the history as it was. A run whose alert does not fire is a plain refresh: no screenshot is generated, no AI summary is written, and nothing is sent.The notification
A fired alert sends the schedule’s usual notification — the dashboard link and screenshot, and the AI summary if it is turned on — led by what the alert found:- Email — the subject is
Alert: <chart> on <dashboard>. The message names the condition, the chart, and the value read: the period it read, plus the previous period and the change for % change, or the normal range for Anomaly. - Slack — the message opens with the same
Alert: <chart> on <dashboard>line, followed by what the alert read, for example “Count increased by 2.5% from 157 in 2026-08 to 161 in 2026-09 (alert at 1% or more).”
Because the check runs with the schedule creator’s access, the values it read
appear only in the creator’s email and in the Slack message. Every other email
recipient gets the condition and the chart, a note that the values are not shown
because the check ran with the schedule creator’s access, and a screenshot of
the dashboard with their own access.
Following an alert in the sidebar
In the scheduled refreshes sidebar, a schedule with an alert carries an Alert badge and a summary of its rule, for example “Alert: Count is above 1,000 · Orders count”. The same summary appears in the Schedule column of the Scheduled refreshes tab. Below it, the card shows the last check. Before the first one it reads “Last check: not run yet”; afterwards it starts with “Last check” and the time of the check, followed by one of these:
For % change, the line also names the previous period and the change, for
example “Count 161 (2026-09). Previous: 157 (2026-08), +2.5%.” For Anomaly,
it names the normal range, for example “Normal range: 8 – 14.”
The values are shown only to the schedule’s creator. Anyone else who opens the
sidebar sees whether the condition was met and whether a notification was sent,
with “values not shown, as it ran with the access of the schedule’s creator.”
When a check can’t run
A check that can’t run sends nothing and doesn’t change whether the alert counts as holding. The last-check line says why, for example:- The chart is no longer on the dashboard, or the measure is no longer in its query.
- The chart is now split by a dimension.
- The chart returned no rows, or there is no complete period yet.
- An Anomaly rule has too few complete periods, or a % change rule’s previous period was 0.