> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctrlnode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Routines overview

> Scheduled single-task automation built on workflow definitions

A **Routine** is recurring work for one agent: same instructions, new task each run. Under the hood it is a **workflow definition** with a single work step and a **schedule trigger** — optimized for cron-style automation, not multi-step graphs.

## Routine vs Workflow

|          | Routine                          | Workflow                        |
| -------- | -------------------------------- | ------------------------------- |
| Steps    | One agent task per run           | Many steps, branches, hand-offs |
| UI       | List + calendar + run history    | Visual designer                 |
| Best for | Standups, reports, health checks | Multi-stage pipelines           |

<Card title="Workflows deep dive" icon="diagram-project" href="/workflows/overview">
  Multi-step pipelines, designer, and triggers.
</Card>

## Definition vs run

| Concept                  | What you edit                              | What executes                  |
| ------------------------ | ------------------------------------------ | ------------------------------ |
| **Routine (definition)** | Name, schedule, instructions, enabled flag | Template                       |
| **Run**                  | Read-only history                          | One spawned task per execution |

Each run is a normal **workflow run** (`run_number`, status, `triggered_by`). Opening a run shows the task created for that execution.

## Routes

```text theme={null}
/projects/{projectId}/routines
/projects/{projectId}/routines/{routineId}
/projects/{projectId}/routines/{routineId}/runs/{runId}
/projects/{projectId}/routines/calendar
```

## Requirements

* **Bridge connected** — scheduled and manual runs dispatch tasks through the Bridge
* At least one **agent** in the project

Next: [Schedules & triggers](/routines/schedules-and-triggers)
