Skip to main content
Ops & Monitoring

The job that did not run produces no failure

Overnight jobs report failures and stay silent about success, which sounds efficient until the morning a job does not start. Silence then means what it meant on every good night, and the gap is found days later by whoever notices the missing data.

A morning report built from an expected list rather than from received events catches that. The question is not which jobs failed, but which jobs did not report at all.

Duration belongs in the same report. A job that normally takes twenty minutes and took three hours succeeded, and something is wrong.

Read once at the start of the day, a report like this replaces the ritual of opening four consoles to confirm that nothing needs attention. If something does, it says so in the first line.

How the ActionFlow runs on the canvas

Job records are read by an HTTP Request node from your scheduler on a Start Scheduled trigger timed to run after the overnight window closes.

A Loop node walks the expected job list you declare, and an If node inside it marks any job with no record at all as did not run. A failure-driven report cannot produce that case.

A Math node compares each duration against that job's own rolling average, and a Filter node flags anything outside your tolerance.

A Switch node sorts the results into four groups (did not run, failed, ran long, succeeded) in the order a person wants to read them.

A Generate Text node writes the report, naming the first three groups individually and reducing the fourth to a count and a line.

A Create Excel node produces the record for anyone tracking reliability over time, and a PostgreSQL node stores the run so tomorrow's averages stay real.

A Slack node posts the report at your chosen hour, and an Email node sends it to whoever owns the data pipelines rather than to the whole team.

Nodes this ActionFlow uses

  • Start Scheduled (Start): runs after the overnight window closes.
  • HTTP Request (Util): job records from your scheduler.
  • Loop (Control) with If (Control): walks an expected list, so a job that never ran is visible.
  • Math (Util): duration against each job's own rolling average.
  • Switch (Control): did not run, failed, ran long, succeeded.
  • Generate Text (AI Core): the report, with successes reduced to a count.
  • PostgreSQL (Data): stores the run so the averages stay real.
  • Slack (Communication) with Email (Communication): the team channel, and the pipeline owner.

Frequently asked questions

Start building AI workflows

Create a free account, open a template or a blank canvas, and run your first ActionFlow.

Newsletter

Get product updates

New nodes, agents, and product notes. We send mail only when we have something worth opening.

Unsubscribe at any time.