Both features use the same engine (workflow definitions and runs). The difference is UX and complexity.
At a glance
| Question | Routine | Workflow |
|---|
| How many agent steps per run? | One | Many |
| How do you configure it? | Form (schedule + instructions) | Visual designer |
| Best trigger | Cron presets, Run now | Schedule Timer node + graph logic |
| Where to monitor | Routine detail + calendar | Designer + run timeline |
| Kanban noise | One task per run (easy to track) | Multiple tasks per run |
Choose a Routine when
- The job is the same instructions every time (daily report, health check, sync script).
- You do not need branching or hand-offs between agents.
- You want calendar and run history without opening the designer.
- Examples: “Summarize inbox every weekday at 9:00”, “Run tests hourly”.
Choose a Workflow when
- Work has ordered or parallel steps (review → fix → deploy).
- A later step needs artifacts from an earlier task.
- Steps may use different agents or models.
- You need draft → activate lifecycle and designer versioning.
- Examples: “Research → write doc → open PR”, “Ingest → analyze → notify”.
Schedules in both models
| Model | Schedule lives in |
|---|
| Routine | Definition fields (schedule_cron, timezone, enabled) |
| Workflow | Schedule Timer node on the canvas |
A Routine is internally a definition with a ScheduleTimerNode plus one task node — you get the simple UI; a Workflow exposes the full graph.
Kanban and pipeline tasks
Standalone tasks (no workflow) appear on the main Tasks board. Tasks created by workflow runs are often easier to follow from the workflow or routine run view than from the global board — especially for recurring jobs with many historical runs.
Start with a Routine for cron-style single jobs. Graduate to a Workflow when you add a second step or artifact hand-off.