Run recurring work on schedule.
Start it manually, through the API or with a schedule.
Give the task a proper home.
Keep its code, inputs, schedule and outputs together.
Keep the work together
Store the code, its inputs and the expected outputs in a repository.
Choose how it starts
Run it by hand while you are shaping it, then add a cron schedule when it is ready.
Follow each run
Keep the logs, outputs and failures with the workflow so its history is easy to inspect.
The report updates on schedule.
Follow the run from its trigger to the finished output. If an input is missing, it stops before release.
Only the exceptions need your attention.
The parts that usually break quietly.
A useful workflow makes failures and handovers visible.
A run fails at 03:00
The failure and its logs stay with the workflow for the team to inspect.
A fix needs another run
Start the same workflow again and keep a separate record of the new attempt.
An input moved or went stale
Named sources make it easier to identify which input needs attention.
Ownership changes
Keep the workflow in the shared workspace so another authorised colleague can take it on.