Scheduled tasks

See what runs automatically, when it last ran, and what it did — plus how to pause, run now, or cancel a job.

Operations → Scheduled Tasks → /schedules

Much of what the platform does happens without anyone clicking anything: recurring invoices are generated, payments are allocated, meters are polled, penalties are assessed, collections cases are swept, statements are produced. Scheduled Tasks is where you see all of it.

What a schedule record holds

SectionFields
IdentityName, job name, job type
BasicsRecurrence rule, anchor, next run, priority
ApprovalApproval status, approval request, approved by, approved at
ExecutionExecution ID, last status, started/ended, duration, result, error
MetadataRaw configuration

Recurrence rule and anchor together define when the job runs — the anchor is the reference point the recurrence counts from, which is why two jobs with the same cadence can run at different times.

Actions

ActionEffect
Execute schedule nowRuns the job immediately, outside its cadence. Asks for confirmation.
PauseStops future runs without deleting the schedule.
Cancel jobCancels a job. Asks for confirmation.

Execution history

Each schedule keeps its execution history: when it ran, how long it took, whether it succeeded, and the result or error. This is the first place to look when something that should have happened did not.

  1. Check the last status

    Success, failure, or never run.

  2. Check the next run

    A next-run date in the past means the schedule is paused or the scheduler is off.

  3. Read the error

    Failures record the reason, not just the fact.

  4. Check duration trends

    A job whose duration is growing steadily will eventually not finish inside its window.

How jobs are enabled

Scheduled work sits behind two switches:

  1. A master scheduler switch for the environment. It defaults to off outside production, so a non-production environment cannot write real invoices or payments against live data.
  2. A per-job switch. New jobs are individually gated and default to off, so a module can ship fully built and stay dormant until an organisation is ready for it.

Both must be on for a job to run. If a job appears configured but nothing happens, check both before investigating the job itself.

Fairness across organisations

Jobs that sweep large populations work organisation by organisation in rotation, with per-branch limits, rather than taking a single global batch. Without this, one large branch can consume an entire run and every other branch is starved — a failure mode that looks exactly like "the job did nothing".

If a job reports work done but a particular branch never seems to be processed, this is the first thing to check.

Jobs worth knowing

JobWhat it does
Recurring invoice generationBills the cycle's standing charges.
AllocationMatches unallocated payments to outstanding invoices.
PenaltiesAssesses late fees against overdue invoices.
Collections sweepOpens, refreshes, scores and closes arrears cases; stages ladder actions.
IoT polling and billingCollects readings and produces utility invoices.
Owner statement generationProduces statements on the contract's cadence.
Communication dispatchSends queued messages.
Integration submissionDrains the eTIMS submission queue.

Approval on schedules

Some schedules carry an approval state, so a job with material effect can require sign-off before it becomes active. The approval request, approver and approval time are recorded on the schedule.

Common problems

SymptomCause
Nothing ran at allMaster scheduler switch off.
One job never runsIts own job switch is off, or the schedule is paused.
Job runs but changes nothingShadow mode, or nothing in scope met the criteria. Read the result.
One branch never processedFairness rotation — check whether the run reached it.
Job ran twiceCheck for a manual execute now alongside the scheduled run.