Skip to main content

Overview

The Tasks API lets you programmatically create, manage and monitor autonomous agent runs. A task executes a prompt on a schedule, uses the agent’s connected tools, and can notify users — all without anyone present.
The bot must have Tasks enabled. Set tasks: true via the Bot Management API update endpoint — the flag kept its original name.
Replaces the Heartbeat API. Heartbeats and scheduled tasks were one engine written twice and have merged. /v1/bot/heartbeat/* is gone; the endpoints below take its place, and heartbeat_id is now task_id. SDK users: see the 6.0.0 changelog for the method mapping.

Create a task

Parameters

Schedule shapes

Example

cron_pattern is a shorthand the SDK translates to schedule_type: 'cron'. Pass schedule_type and schedule_config directly for anything else.

Get a task

List tasks

Recurring tasks come back with state: null — they are schedules, not board cards. One-shot tasks carry a state of backlog, todo, in_progress, review or done.

Update a task

Subject to the same frequency floor as creation — see below.

Schedule frequency

Every plan enforces a minimum interval of 15 minutes. It is an infrastructure limit rather than a tier: credits are what meter automation, and the floor exists so a schedule cannot fire faster than a run can finish. A schedule below it is refused:
Cron is measured the same way — the shortest gap between two fires has to clear the floor, so * * * * * is refused and 0 9 * * 1-5 is not.

Enable / disable

Trigger manually

A card only runs while it is in_progress; triggering one parked in backlog records a skip with the reason rather than running it.

Delete a task

Deleting removes the task’s queued schedule as well as the row.

Run statuses

Each run in the log carries a status: Common reason values on a skip: already_running (the previous fire has not finished), schedule_clamped (the schedule was below the plan floor and was slowed to it), no_credits, outside_active_hours, max_executions_reached, assigned_to_member, bot_offline.

Delete a run

Logs and stats

Run records carry status (success, error or skipped), a reason when skipped, duration_ms and tokens_used. A successful run’s full exchange lives in the conversation it ran in — the run record is what tells you about the runs that did not happen.

Next steps

Tasks for creators

The board, autonomy rungs, and the weekly site review

Bot Management

Enabling tasks on an agent