Tips / Tip

One character that makes an automation self-heal after any outage

By Michael Shreeves · 24 April 2026 · Automation & Engineering · 1 min read

Building a joiners/movers/leavers automation surfaces a habit worth stealing for almost any scheduled process: select on <=, not =.

A flow that queries "what's due today" (ActionDate = today) looks correct right up until the schedule misses a run - the database was down, the trigger didn't fire, someone paused it for a deploy. Whatever was due that day just never gets picked up, because tomorrow's query only asks about tomorrow. Nobody notices until a leaver who should have been disabled three days ago is still logged in.

Change the query to "due today or earlier" (ActionDate <= today) and the exact same outage becomes a non-event. The next successful run picks up everything that piled up while it was down, in order, automatically. No reconciliation report, no manual catch-up, no one has to remember the outage happened at all.

The same idea generalises past JML to any scheduled queue: a subscription renewal check, a report that emails on the first of the month, a reminder that fires the day before something expires. Anywhere a schedule picks up "due work," ask whether a missed run leaves a permanent gap or a temporary delay. If it's a permanent gap, that's one character away from being self-healing instead.

← All tips