Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 39 additions & 20 deletions docs-mintlify/docs/explore-analyze/data-alerts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -196,34 +196,53 @@ 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][ref-all-schedules] tab.
**Alert** badge beside its schedule and a summary of its rule, for example
"Condition: Count is above 1,000 · Orders count". On the
[Scheduled refreshes][ref-all-schedules] tab, the same summary, without
"Condition:", fills the **Condition** column.

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:
The card's last line shows the last check. Before the first one it reads "Last
check: not run yet"; afterwards it says how long ago the check ran, what it
read, and what came of it, for example "Last check: 3 minutes ago, Count
increased by 2.7%, notified". What it read depends on the rule:

| Last check | Meaning |
| --- | --- |
| Count 20,003. Condition met, notified. | The condition started to hold and the notification was sent. |
| Count 20,003. Condition still met, not notified again. | The condition was already holding at the previous check. |
| Count 20,003. Condition met, but no notification was sent. | The condition started to hold, but the notification reached no one. |
| Count 20,003. Condition not met. | Nothing was sent. |
| could not check. … Nothing sent. | The check couldn't run; the line says why. |
- **Threshold** — the value, for example "Count was 20,003".
- **% change** — the change, for example "Count increased by 2.7%" or "Count
decreased by 4%".
- **Anomaly** — "Count outside its normal range" or "Count within its normal
range".

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."
What came of it is one of these:

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."
| Outcome | Meaning |
| --- | --- |
| notified | The condition started to hold and the notification was sent. |
| still met, not notified again | The condition was already holding at the previous check. |
| met, nothing sent | The condition started to hold, but the notification reached no one. |
| not met | Nothing was sent. |
| could not check | The check couldn't run. Nothing was sent. |

How long ago is given in its largest unit, as for the next run: "less than a
minute ago", "3 minutes ago", "1 hour ago", or "2 days ago".

Hovering the line shows it whole and, under it, the whole check: when it ran,
in your timezone and naming it, the value it read, and, for **% change**, the
previous period and the change, for example "Last check Oct 17, 2026, 3:08 AM
GMT+1: Count 339 (2026-09). Previous: 330 (2026-08), +2.7%. Condition not
met." For **Anomaly**, it names the normal range, for example "Normal range: 8
– 14." For a check that couldn't run, it says why. The **Last check** column
of the [Scheduled refreshes][ref-all-schedules] tab shows the same line,
without "Last check:", and the same text on hover.

The values are shown only to the schedule's creator. Anyone else sees how long
ago the check ran and what came of it, for example "Last check: 1 minute ago,
still met, not notified again", and on hover "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:
counts as holding. Hovering the last-check line shows why, for example:

- The chart is no longer on the dashboard, or the measure is no longer in its
query.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ The timezone defaults to your browser's. Runs of one cron expression must be at
`#`, `?`, and `H` cron tokens aren't supported.

To run on several unrelated schedules (up to 24 cron expressions), set them through
the [API](#platform-api). The dialog shows such a schedule but can only replace it as a
whole.
the [API](#platform-api). The dialog shows such a schedule, each cron expression with the
delivery's timezone, but can only replace it as a whole.

### Notifications

Expand Down Expand Up @@ -183,7 +183,10 @@ to another spreadsheet leaves the old block untouched.

Open **Scheduled → Sheets deliveries**. Admins see every delivery in the deployment;
everyone else sees only their own. Each row shows the report, spreadsheet, tab and start
cell, schedule, next run, last run, and status.
cell, schedule, next run, last run, and status. The schedule names each cron expression
with the delivery's timezone, for example "Daily at 9:00 AM Europe/Berlin, Weekly on
Monday at 8:00 AM Europe/Berlin". A schedule too long for its column is cut with "…",
and hovering it shows the whole schedule.

| Action | Description |
| --- | --- |
Expand Down
81 changes: 59 additions & 22 deletions docs-mintlify/docs/explore-analyze/scheduled-refreshes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,11 @@ schedules, only the minute field is shown.

### Timezone

Select from common timezones including UTC, US timezones, London, Paris, Berlin,
Tokyo, Shanghai, Singapore, and Sydney. Defaults to your browser's timezone if
it matches a common one, otherwise UTC.
Pick the timezone the schedule runs in. The list holds every IANA timezone,
each with its UTC offset, and you can search it by name or by offset, for
example "New_York" or "GMT-5". Defaults to your browser's timezone. Wherever the
Comment thread
mngr marked this conversation as resolved.
schedule is shown, its timezone is named after it, for example "Daily at 9:00 AM
America/New_York".

### Control values

Expand Down Expand Up @@ -172,17 +174,32 @@ Click **Save** to create or update the schedule.

## Managing schedules

The sidebar lists all existing schedules with the following information:
The sidebar lists all existing schedules. A card's first line holds the status
indicator, the schedule, and the enable/disable toggle; the lines below it come
in the order listed here:

- **Status indicator** — current state: not run yet, last run succeeded, last
run failed, or currently running with phase details.
- **Schedule description** — human-readable text like "At 09:00 AM".
- **Schedule** — when the schedule runs, followed by its
[timezone](#timezone): "Hourly at :05 UTC", "Daily at 9:00 AM UTC", "Weekly
on Monday at 9:00 AM America/New_York", or "Monthly on day 1 at 9:00 AM UTC".
A custom cron expression that matches none of these shows as written, for
example "0 9 * * 1-5 UTC". A schedule too long for the card is cut with "…",
and hovering it shows the whole schedule.
- **Enable/disable toggle** — turn schedules on or off without deleting them.
- **Next run time** — shows the next scheduled execution, or "Disabled" if the
schedule is off.
- **Notification channel** — when a [notification][ref-notifications] is
configured, the card shows its delivery channel, for example "Notification:
Email" or "Notification: Slack (#channel)".
- **Condition** — when the schedule has a [data alert][ref-data-alerts], an
**Alert** badge beside the schedule and a summary of its rule, for example
"Condition: Count is above 1,000 · Orders count".
- **Next run** — how long until the next scheduled execution, counted from
your clock and given in its largest unit, for example "Next run: in 25
minutes", "Next run: in 7 hours", or "Next run: in 16 days". Hours and days
are rounded to the nearest, so a run 5 hours and 49 minutes away reads "in 6
hours"; minutes count down whole, and a run less than a minute away reads "in
less than a minute". A run whose time has passed reads "due now", or, after a
minute, how long ago it was due, for example "due 3 hours ago". The line
counts down as time passes, and hovering it shows the line with the date and
time of the run under it, in your timezone and naming it, for example "Oct
17, 2026, 11:00 AM GMT+1". It reads "Disabled" if the schedule is off.
- **Control values** — when the schedule sets [control values](#control-values),
a muted line names each control and what the schedule does with it, for
example "Control values: Status is completed · Region cleared · Date grain:
Expand All @@ -195,9 +212,12 @@ The sidebar lists all existing schedules with the following information:
still starting after a few seconds, a member the line names (the one a field
switcher is set to, or a value no control uses) appears by its name in the
data model instead of its title.
- **Alert** — when the schedule has a [data alert][ref-data-alerts], the card
shows an **Alert** badge, a summary of its rule, and the outcome of its last
check.
- **Notification channel** — when a [notification][ref-notifications] is
configured, its delivery channel, for example "Notification: Email" or
"Notification: Slack (#channel)".
- **Last check** — when the schedule has a data alert, the outcome of its last
check, for example "Last check: 3 minutes ago, Count increased by 2.7%,
notified". See [Following an alert in the sidebar][ref-following-alert].

### Actions

Expand Down Expand Up @@ -231,23 +251,39 @@ see every scheduled refresh in the deployment. Each row shows:
- **Dashboard** — the dashboard's title. On a row you can edit, hovering
anywhere on the row shows an **Edit** button at the end of this cell; click it
to open the dashboard in the Dashboard Builder, or open it in a new tab as you
would a link. The title itself is plain text, not a link.
- **Schedule** — the human-readable schedule, like "At 09:00 AM", and the
summary of its [data alert][ref-data-alerts] if it has one.
- **Next run** — the next scheduled execution, or "Disabled" if the schedule is
off.
- **Notifications** — the delivery channel, for example "Notification: Email",
or "—" when no notification is configured. A Slack notification shows its
channel name only on rows you can edit; other rows show "Notification: Slack".
would a link. The title itself is plain text, not a link. A title too long
for the column is cut with "…", and hovering it shows the whole title.
- **Schedule** — when the schedule runs, with its timezone, as on the
[sidebar card](#managing-schedules), for example "Daily at 9:00 AM UTC".
- **Condition** — the summary of the schedule's [data alert][ref-data-alerts]
rule, for example "Count is above 1,000 · Orders count", or "—" when it has
none.
- **Next run** — how long until the next scheduled execution, as on the
sidebar card, for example "in 7 hours" or "in 16 days", or "Disabled" if the
schedule is off. Hovering it shows the line with the date and time of the run
under it.
- **Control values** — the same line as in the sidebar, naming each
[control value](#control-values) the schedule sets, or "—" when it sets
none.
- **Notifications** — the delivery channel, for example "Notification: Email",
or "—" when no notification is configured. A Slack notification shows its
channel name only on rows you can edit; other rows show "Notification: Slack".
- **Last check** — the outcome of the data alert's last check, for example "3
Comment thread
mngr marked this conversation as resolved.
minutes ago, Count increased by 2.7%, notified", or "—" when the schedule has
no alert. A line too long for the column is cut with "…", and hovering it
shows the whole line with the whole check under it, as in the
[sidebar][ref-following-alert].
- **Subscribe** — the [subscribe toggle](#subscribing-to-notifications) for
schedules you can only view. The column appears only when the list includes
at least one such schedule.

Use the search box above the list to find a schedule by its dashboard title or
its schedule text.
its schedule text, such as "Weekly" or "UTC".

Click the **Dashboard** or **Schedule** column header to sort the list; click it
again to reverse the order. **Schedule** sorts by frequency (Hourly, Daily,
Weekly, Monthly, then custom cron expressions), then by day, then by the time of
day as written in each schedule's own timezone, and last by timezone.

What a row offers depends on your permission on its workbook:

Expand Down Expand Up @@ -368,6 +404,7 @@ skipped.
[ref-visibility]: /docs/explore-analyze/dashboards/widgets/controls#visibility
[ref-link-parameters]: /docs/explore-analyze/dashboards/widgets/controls#sharing-the-current-selection
[ref-data-alerts]: /docs/explore-analyze/data-alerts
[ref-following-alert]: /docs/explore-analyze/data-alerts#following-an-alert-in-the-sidebar
[ref-roles]: /admin/users-and-permissions/roles-and-permissions
[ref-scheduled-tasks]: /docs/explore-analyze/scheduled-tasks
[ref-sharing]: /docs/organize-content/sharing#permission-inheritance
Expand Down
54 changes: 48 additions & 6 deletions docs-mintlify/docs/explore-analyze/scheduled-tasks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,44 @@ deployment it was created in.

In the deployment sidebar, open **Scheduled** (the clock icon, below
**Explore**). The **Scheduled tasks** tab of the
**Scheduled tasks and refreshes** page lists the deployment's tasks with their
name, schedule, status, condition, and description, and is searchable. The
**Scheduled refreshes** tab lists the deployment's
**Scheduled tasks and refreshes** page lists the deployment's tasks, and is
searchable. Each row shows:

- **Enable/disable toggle** — the untitled first column; pauses or resumes the
task (see [Managing tasks](#managing-tasks)).
- **Name** and **Description**.
- **Schedule** — when the task runs, followed by its timezone, for example
"Daily at 9:00 AM UTC" or "Weekly on Monday at 9:00 AM America/New_York", or
"Manual".
- **Condition** — the task's [condition](#conditional-tasks) in plain
language, or "Every run" when it has none.
- **Next run** — how long until the next run, counted from your clock and
given in its largest unit, for example "in 25 minutes", "in 7 hours", or "in
15 days", as on the
[Scheduled refreshes](/docs/explore-analyze/scheduled-refreshes#managing-schedules)
cards; a run whose time has passed reads "due now" or, for example, "due 3
hours ago". Hovering it shows the line with the date and time of the run
under it, in your timezone and naming it. It reads "Paused" for a paused
task, "Manual" for a manual one, and "Not scheduled" for an enabled task
that has no next run.
- **Notifications** — "Inbox" when the task notifies its creator in the
[inbox](/docs/inbox) (see
[Getting notified when a run finishes](#getting-notified-when-a-run-finishes)),
otherwise "—".
- **Last check** — on a conditional task, the outcome of its last check, for
example "3 minutes ago, Count increased by 2.7%, notified", or "Not checked
yet" before the first one; "—" on a task with no condition. Only the task's
creator sees what the check read; anyone else sees, for example, "3 minutes
ago, notified". Hovering it shows the whole line and the date and time of
the check, and the task's [detail page](#task-detail-page) tells the whole
check.
Comment thread
mngr marked this conversation as resolved.
Comment thread
mngr marked this conversation as resolved.

Click the **Name**, **Description**, or **Schedule** column header to sort the
list. The **Schedule** column sorts by frequency and time, as on the
[Scheduled refreshes](/docs/explore-analyze/scheduled-refreshes#viewing-all-scheduled-refreshes)
tab, with manual tasks last.

The **Scheduled refreshes** tab lists the deployment's
[dashboard scheduled refreshes](/docs/explore-analyze/scheduled-refreshes#viewing-all-scheduled-refreshes);
if you can use only one of the two, the page shows it without tabs.

Expand Down Expand Up @@ -62,7 +97,8 @@ offering these frequencies:
weekdays) works, while `*/15 * * * *` is rejected.

A **timezone** selector (defaulting to your browser's timezone) controls when
the schedule fires; it is stored per task.
the schedule fires; it is stored per task, and the task's schedule is shown
with it, for example "Daily at 9:00 AM UTC".

## Conditional tasks

Expand Down Expand Up @@ -176,7 +212,12 @@ From the list, you can:
- **Set up manually** — opens the create dialog where you fill in the
task's details yourself.
- **Edit** an existing task's instructions, schedule, or details.
- **Enable / Pause** a scheduled task to control whether it runs on schedule.
- **Enable / Pause** a scheduled task with the switch at the start of its row:
a paused task stops running on its schedule, and its **Next run** reads
"Paused". A manual task's switch is off and disabled, because a manual task
runs only when started by hand. While the change saves, the switch and the
task's **Edit** are disabled; if it fails, an error message appears and the
switch keeps its previous state. A task shared with you has no switch.
- **Run now** — trigger a one-off run immediately. This works for both manual
and scheduled tasks. Triggering a run shows a toast with a **View**
link straight to the run's chat thread, and the thread appears in the
Expand Down Expand Up @@ -207,7 +248,8 @@ The page shows:
the latest 50 runs; a "Showing the latest 50 runs" note appears once the
cap is hit.
- **Instructions** — the task's prompt.
- **Repeats** — the schedule in plain language.
- **Repeats** — the schedule with its timezone, for example "Daily at 9:00
AM UTC".
- **Condition** — on a conditional task only, after **Instructions** and
**Repeats**: the condition in plain language (for example, *"When Count
changes by ≥ 5 % vs the previous month"*), then, on a line of its own,
Expand Down
Loading