> For the complete documentation index, see [llms.txt](https://docs.upriverdata.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.upriverdata.com/product-usage/routines.md).

# Routines

Automate recurring work with scheduled agent runs.

Routines turn your best agent prompts into standing checks that run themselves. Save an [Agent](/product-usage/agent.md) prompt once and have it run automatically on a recurring schedule, so recurring investigations, health checks and reports happen in the background — no need to trigger them manually every time.

<figure><img src="https://875415170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLE0zsJmUpeLjYw085cnO%2Fuploads%2Fgit-blob-ebac6a98547ee7f5f0bc12d531a3e1ce897a5223%2Fimage%20(routines-list).png?alt=media" alt=""><figcaption><p>Routines list, showing scheduled agent prompts</p></figcaption></figure>

## Creating a routine

From the Routines page, click **Create routine** and fill in:

* **Routine name** — e.g. "Scan Airflow DAGs daily".
* **Routine prompt** — the exact instruction sent to the agent on every run, e.g. "Scan Airflow DAGs daily. Surface runs that failed or took longer than usual."
* **Attached files** (optional) — drag and drop or browse for files (images or other attachments, up to 2MB) to include with every run.
* **Routine schedule** — choose a cadence:
  * Hourly (with a minute of the hour)
  * Daily (with a time, in UTC)
  * Weekly (with a day of the week and a time, in UTC)
  * Monthly (with a day of the month and a time, in UTC)
* **Slack notifications** — toggle notifications on run completion and choose a Slack channel to post to.

Routines can be toggled Active or Inactive at any time without deleting them.

<figure><img src="https://875415170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLE0zsJmUpeLjYw085cnO%2Fuploads%2Fgit-blob-8778fdd1aca0b878b24c91aa2577fbafbf76a5fd%2Fimage%20(routines-create).png?alt=media" alt=""><figcaption><p>Routines generation catalog</p></figcaption></figure>

## Routines list

Routines are shown as cards, each displaying the routine's name, a truncated preview of its prompt, and a cadence badge (e.g. "Daily", "Weekly"). Selecting a card opens its details on the right.

## Routine details

The detail panel shows the routine's prompt, attached files, schedule and Slack notification settings, along with:

* **Run now** — manually triggers the routine immediately, without waiting for its schedule.
* **Edit** (pencil icon) — update the routine's prompt, schedule or notification settings.
* **Delete** (trash icon) — removes the routine, after a confirmation dialog. This can't be undone.
* An **Active/Inactive** toggle.

<figure><img src="https://875415170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLE0zsJmUpeLjYw085cnO%2Fuploads%2Fgit-blob-117f8ffb7ee8f9600906d0eb40451ff3b864a290%2Fimage%20(routine-detail).png?alt=media" alt=""><figcaption><p>Routine detail panel with schedule, notifications and run history</p></figcaption></figure>

### Runs

The **Runs** section lists every past run of the routine, labeled with its trigger timestamp. Clicking a run opens it in the [Agent](/product-usage/agent.md) page, showing the full conversation, tool calls, generated code or SQL, catalog lookups, and any query results or charts — exactly as with a manually started agent conversation. If a run failed to start, its entry is shown disabled.

If the routine has never run, this section shows "Never triggered."

{% hint style="info" %}
If a scheduled run comes due while a previous run of the same routine is still in progress, it is skipped rather than started concurrently.
{% endhint %}
