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

# Automation tools

> Tools for creating, scheduling, and triggering Automations.

`automation` · 9 tools · Mounted by `default`

Automations run work without you present — on a cadence, at an instant, or on demand.

Every call also carries an exit code and timing in `_meta`, and errors come back as results rather than transport failures. See [Results](/reference/results).

## cohesive\_automation\_create

**Hints** — writes (no read-only or destructive hint)

Create an automation. Creates an automation on exactly one of canvas or workspace. Instructions come from instructions.

Scheduling is one of three shapes:

cron recurring, on that cadence, interpreted in tz (an IANA zone; the server default applies when omitted)
run\_at one-off, a single run at that RFC 3339 instant and no cadence
neither on-demand only: it runs when you trigger it with `cohesive_automation_run`

cron and run\_at are mutually exclusive. An invalid cron or time zone is rejected with the server's explanation. Exactly one of: canvas, workspace. At most one of: cron, run\_at.

| Argument       | Type   | Required | Description                                                            |
| -------------- | ------ | -------- | ---------------------------------------------------------------------- |
| `canvas`       | string | Optional | Create the automation on this canvas.                                  |
| `cron`         | string | Optional | Cron cadence for a recurring automation.                               |
| `instructions` | string | Required | What the automation should do.                                         |
| `name`         | string | Required | Automation name.                                                       |
| `run_at`       | string | Optional | RFC 3339 instant for a single one-off run (e.g. 2026-01-31T09:00:00Z). |
| `tz`           | string | Optional | IANA time zone the cron fires in (e.g. America/New\_York).             |
| `workspace`    | string | Optional | Create the automation on this workspace.                               |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_delete

**Hints** — destructive

Delete an automation. Deletes an automation permanently: its cadence stops and it can no longer be run. Past runs are chats and survive. Deleting an already-deleted automation also succeeds.

| Argument        | Type   | Required | Description    |
| --------------- | ------ | -------- | -------------- |
| `automation_id` | string | Required | Automation id. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_edit

**Hints** — destructive

Edit an automation. Edits an automation. Only the flags you pass are sent; everything else is left unchanged. Setting cron "" clears the cadence entirely, making the automation on-demand only — to stop scheduled runs while keeping the cadence, use `cohesive_automation_pause` instead.

run\_at schedules a single run at that RFC 3339 instant, which is also how you re-arm a one-off that has already fired or been paused. Setting run\_at "" clears the pending run, exactly like pause.

Only the automation's owner can edit it; the server rejects anyone else.

| Argument        | Type   | Required | Description                                                             |
| --------------- | ------ | -------- | ----------------------------------------------------------------------- |
| `automation_id` | string | Required | Automation id.                                                          |
| `cron`          | string | Optional | New cron cadence ("" clears it, making the automation on-demand only).  |
| `instructions`  | string | Optional | New instructions.                                                       |
| `name`          | string | Optional | New name.                                                               |
| `run_at`        | string | Optional | RFC 3339 instant for a single one-off run ("" cancels the pending run). |
| `tz`            | string | Optional | New IANA time zone for the cron.                                        |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_get

**Hints** — read-only, idempotent

Show one automation. Shows one automation in full, including its instructions. The state derives from the stored cadence: active (a next run is scheduled), paused (a cadence is stored but nothing is scheduled), or on demand (no cadence). When the scheduler skipped the most recent firing, the reason and time are shown.

| Argument        | Type   | Required | Description    |
| --------------- | ------ | -------- | -------------- |
| `automation_id` | string | Required | Automation id. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_list

**Hints** — read-only, idempotent

List automations. Lists automations. With no filter, lists your own automations across every canvas and workspace. With canvas or workspace, lists every owner's automations on that one resource (ones you don't own are read-only). At most one of: canvas, workspace.

| Argument    | Type   | Required | Description                                       |
| ----------- | ------ | -------- | ------------------------------------------------- |
| `canvas`    | string | Optional | List every owner's automations on this canvas.    |
| `workspace` | string | Optional | List every owner's automations on this workspace. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_pause

**Hints** — destructive, idempotent

Pause an automation's scheduled runs. Pauses an automation: the pending run is cancelled while the cron cadence stays stored, so `cohesive_automation_resume` picks the schedule back up without re-entering it.

On a one-off (run\_at, no cadence) there is nothing to resume from: pausing cancels the single pending run outright. Re-arm it with `cohesive_automation_edit` run\_at.

| Argument        | Type   | Required | Description    |
| --------------- | ------ | -------- | -------------- |
| `automation_id` | string | Required | Automation id. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_resume

**Hints** — idempotent

Resume a paused automation. Resumes a paused automation by re-submitting its stored cron cadence, which makes the platform compute the next run time.

Resuming needs a cadence to recompute from, so it does not apply to a one-off or an on-demand automation — schedule those with `cohesive_automation_edit` run\_at or cron.

| Argument        | Type   | Required | Description    |
| --------------- | ------ | -------- | -------------- |
| `automation_id` | string | Required | Automation id. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_run

**Hints** — destructive

Run an automation now. Starts a run immediately, outside any cadence. The run executes asynchronously in a new chat (flow session) — this prints the session id and returns without waiting for the run to finish.

The scheduler's fire-time gates still apply: an archived or missing target canvas or workspace rejects the run with the server's 422 explanation, and a billing denial exits 6 (payment required).

| Argument        | Type   | Required | Description    |
| --------------- | ------ | -------- | -------------- |
| `automation_id` | string | Required | Automation id. |

**Returns** — JSON, as text content and as structured content.

## cohesive\_automation\_runs

**Hints** — read-only, idempotent

List an automation's runs. Lists an automation's runs, newest first — scheduled firings and `cohesive_automation_run` triggers alike. Each run is a chat (flow session); read one in full with `cohesive_chat_get` `<run-id>`. Page with before using the previous page's pagination next\_ts. Owner-only.

| Argument        | Type    | Required | Description                                      |
| --------------- | ------- | -------- | ------------------------------------------------ |
| `automation_id` | string  | Required | Automation id.                                   |
| `before`        | string  | Optional | Cursor: the previous page's pagination next\_ts. |
| `limit`         | integer | Optional | Page size (server default 20, max 100).          |

**Returns** — JSON, as text content and as structured content.
