Operators

Operator schedules

A schedule is a standing question put to one or more operators on a clock you set, or whenever certain pipelines finish. This page covers creating a schedule, choosing when it runs, deciding which findings interrupt you and where they land, schedules an operator proposes in conversation, and why a scheduled run can be skipped.

Where schedules live

Open Operators and choose Schedules. Each schedule on the list shows when it runs, what it asks, which operators it asks, where it delivers, its threshold, and when it runs next. You need the Operators permission to see and manage schedules (see Turning Operators on).

An operator's own When it runs setting (see When it runs) also shows up on this list, marked Built into its operator. You change that one on the operator's own form. Everything below is about standalone schedules, which you create here with New schedule. A standalone schedule can ask several operators at once, follows your timezone's clock changes, and can run when pipelines finish.

Creating a schedule

Who it asks

Tick the operators the schedule dispatches. Every operator ticked runs when the schedule fires, records its own run, and spends its own budget. A paused operator stays on the schedule but is skipped until it is enabled again.

What it asks

The question, in your own words, for example "Anything unusual in spend since yesterday?". Leave it empty and each operator runs the standing check its own job describes. It is asked:

text
Run your standing check now and report what you find. If nothing needs attention, say so in one line.

When it runs

Give the schedule a Name, then choose what starts it.

On a clock

Pick a Timezone first, then how often: Daily, Weekly or Monthly at a time of day, or a Custom cron expression with five fields. The time and the cron expression are read in the schedule's own timezone, so 08:00 in Europe/Stockholm stays 08:00 there through daylight saving changes.

A schedule runs at most once a day: the minute and the hour must each be a single number. Weekly and monthly schedules are fine.

Cron expressionRuns
0 8 * * *Every day at 08:00
30 7 * * 1-5Weekdays at 07:30
0 9 1 * *On the 1st of every month at 09:00
0 8,17 * * *Refused: twice a day

A refused expression shows "A schedule can run at most once a day. Pick one time of day; a weekly or monthly schedule is fine too."

When pipelines finish

Search for and tick the pipelines the schedule waits on. With more than one, choose All finish (run once every one of them has completed since the schedule last ran) or Any finishes (run as soon as one has). This suits a report that should only be written once the data behind it has landed.

If a pipeline it waits on fails or finishes with errors, the schedule does not run, and the place its reports would go is told so, with a link to the schedule:

text
"Morning sweep" did not run: pipeline "Cloud costs" failed. It runs once its pipelines complete.

When it interrupts you

Each operator rates every scheduled report by how much it needs attention. When it interrupts you sets how serious a report must be before it is sent to Slack:

  • Every run (the default)
  • Low severity and above
  • Medium severity and above
  • High severity only

This only decides whether you are notified. Every run is still recorded and readable in the portal, so a quiet channel can be checked against the runs that did happen. A run where the operator gave no rating is always sent.

Where it lands

Leave every channel unticked and each report goes to its own operator's Slack channel. Ticking any channel replaces that: the report goes only to the channels you tick, so a schedule can report to the finance channel without also posting in the operator's usual one. With no channel anywhere, reports are readable in the portal only.

Some runs are never posted to a channel: an answer read as one person (only that person may see it), a question asked in Slack (it is already answered in its thread), and a question from another operator.

Status

Scheduled means the schedule fires. Untick it to keep the schedule but stop it running; it then shows as Paused.

Schedules proposed in conversation

While you talk to an operator you can ask it to do something regularly, for example "check this every Monday morning and tell the finance channel". The operator then proposes a schedule in the conversation. You review it as a form, with every field filled in: the ones you did not mention are marked as assumed (the timezone, for instance, defaults to your own). Change anything you like, then confirm it to create the schedule, or dismiss it.

When a scheduled run is skipped

A schedule that fires does not run an operator that:

  • is paused,
  • has spent its monthly budget (it runs again from the next calendar month, or as soon as someone raises the budget; see When the budget runs out), or
  • has had its key revoked.

The other operators on the same schedule still run.

Schedules that apps create

Apps that install their own operator can also create schedules for it, such as Engineering Delivery's weekly delivery note. These are marked as sent by the app, and their next run reads "When the app says it is due". You can pause one, but the app decides when it runs and where it goes, so it cannot be edited like your own schedules. Uninstalling the app removes them. See Operators that apps install.