Skip to main content
PATCH
Typescript (SDK)

Authorizations

Authorization
string
header
required

API key in the format: Bearer {api_token}

Path Parameters

id
string
required

The resource ID (e.g., "prod_abc123") or slug (e.g., "my-product")

Body

application/json
name
string
description
string | null
kind
enum<string>
default:agent

agent runs prompt as an agent turn. script runs script on the account's computer with no agent and no model credits, for runs that are the same deterministic steps every time; it takes no prompt. To switch kind, send the new kind with its field and null for the other.

Available options:
agent,
script
prompt
string | null

What the agent does on each run. Required for kind: agent, must be absent for kind: script.

Maximum string length: 10000
success_criteria
string | null

What done means for one run: the checkable outcomes a finished run must have produced (a post is live at its URL, the report reached #sales, every new order has a tracking number). Every run is shown them and must check its result against them before it reports. Outcomes, not steps; the steps belong in prompt.

Maximum string length: 2000
trigger_type
enum<string>
Available options:
immediate,
cron,
interval,
once,
event
cron_expression
string | null
interval_seconds
integer | null
scheduled_at
string<date-time> | null
timezone
string
model_id
string | null
agent
enum<string>

Which agent runs the task. Use engineering for pure code/build work on a site; defaults to business.

Available options:
business,
engineering
condition_script
string | null

Cheap pre-run gate for recurring tasks (cron/interval). Plain JavaScript run in a sandboxed isolate against the same crevioApi.* connector as the execute tool, BEFORE each scheduled run — no LLM, no credits. The task only runs when the script's last expression (or explicit return) is truthy; it skips on false/null. Default to setting this whenever the task is "act only when X" (new/unfulfilled/failed records, a threshold crossed, an unread inbox, a metric at zero) — without it the agent wakes and spends credits on every tick even when there's nothing to do. Only omit it for tasks that genuinely should run every tick (e.g. a scheduled report the user always wants). End with a boolean, e.g. const r = await crevioApi.listOrders({ status: 'succeeded' }); r.data.some(o => o.fulfillment_status !== 'fulfilled'). Errors fail open (the task runs). Ignored for non-recurring triggers.

pre_run_script
string | null
script
string | null

JavaScript run on the account's computer on each run; its logs and return value become the run's summary. Required for kind: script, must be absent for kind: agent.

Maximum string length: 10000
approval_mode
enum<string>
Available options:
autonomous,
supervised,
read_only
expires_at
string<date-time> | null
active
boolean
visibility
enum<string>
Available options:
account,
personal
max_runs_per_day
integer | null

Event tasks only: at most this many runs started by events per calendar day, in the account's time zone. Every further event that day is recorded as a skipped run (skip_reason: rate_limited) and starts nothing, webhook deliveries included. Test runs don't count. Set it whenever the user names a daily cap; null removes it.

Required range: 1 <= x <= 1440
min_interval_seconds
integer | null

Event tasks only: cooldown after a run started by an event. An event within this many seconds of that run is recorded as a skipped run (skip_reason: rate_limited) and starts nothing. Set it whenever the user says "at most once every N minutes"; null removes it.

Required range: 1 <= x <= 604800
slack_sender_name
string | null

The name Slack shows on the results this task posts, in place of Crevio or the task's bot. Set it only when the user names one; null removes it.

Maximum string length: 80
delivery_methods
enum<string>[]

Where each run's result is delivered. Omit it to get the default, in-app notification plus email; set it only when the user asked for a specific channel. [] delivers nowhere.

Available options:
notification,
email,
telegram,
discord,
slack
event_conditions
object | null

Event tasks only: what starts a run. event_type is one event from GET /v1/events. To run after another task finishes, use {event_type: "task_run.completed", after_task_id: "task_..."} (or task_run.failed to run when it fails): each real run of that task that finishes starts this one, and the run receives the finished run (id, summary, status) as event.data.object. Test runs start nothing. A chain that loops back on itself or runs longer than 5 tasks is refused. email_message.* events also take inbox_id; external.slack.* events take channel_id, from_user_id, reaction and channel_type; external.discord.* events (message, mention, reaction_added) take channel_id, from_user_id, emoji and guild_id.

site_id
string

Site this task works on (site_...); its repo is mounted as the run's workspace. Defaults to the account's default working site.

Response

Task updated

id
string
required
object
string
required
name
string
required
description
string | null
required
kind
enum<string>
required
Available options:
agent,
script
prompt
string | null
required
success_criteria
string | null
required
trigger_type
enum<string>
required
Available options:
immediate,
cron,
interval,
once,
event
cron_expression
string | null
required
interval_seconds
integer | null
required
scheduled_at
string<date-time> | null
required
event_conditions
object | null
required
condition_script
string | null
required
pre_run_script
string | null
required
script
string | null
required
timezone
string
required
delivery_methods
enum<string>[]
required
Available options:
notification,
email,
telegram,
discord,
slack
approval_mode
enum<string>
required
Available options:
autonomous,
supervised,
read_only
model_id
string | null
required
agent
enum<string>
required
Available options:
business,
engineering
visibility
enum<string>
required
Available options:
account,
personal
active
boolean
required
expires_at
string<date-time> | null
required
next_run_at
string<date-time> | null
required
last_run_at
string<date-time> | null
required
total_runs_count
integer
required
consecutive_failure_count
integer
required
total_credits_consumed
integer
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
max_runs_per_day
integer | null
required

Event tasks: the most event-started runs per day (account time zone); later events are skipped as rate_limited.

min_interval_seconds
integer | null
required

Event tasks: the cooldown after an event-started run; events inside it are skipped as rate_limited.

slack_sender_name
string | null
required

The name Slack shows on this task's posted results. Null posts as the task's bot, else Crevio.

site_id
string | null
required
source
enum<string>
required

How the task came to exist: user (a person made it in the dashboard), agent (the agent made it inside the chat origin_chat_id, whose person is created_by_id), or system (a built-in task).

Available options:
user,
agent,
system
created_by_id
string | null
required

The person (user_...) who made the task or asked for it. Null for built-in tasks.

created_by_name
string | null
required
origin_chat_id
string | null
required

The chat (aichat_...) the task was set up in. A member's chat opens only for that member.

recent_runs
object[]
required

The task's newest executed runs (at most 5, newest first; skipped and test runs excluded).