Create task
Creates a new AI task. Use trigger_type to schedule it: immediate runs once right away, cron runs on a cron expression, interval runs every N seconds, once runs at a specific scheduled_at, event runs in response to account events, including another task finishing: event_conditions: {event_type: "task_run.completed", after_task_id: "task_..."} runs it after each real run of that task completes, so a step that depends on another never needs a polling schedule. For recurring tasks (cron/interval), add an optional condition_script — a cheap JavaScript gate that runs before each fire (no LLM, no credits) and skips the run unless its last expression is truthy, so the agent only wakes when there’s work to do.
Authorizations
API key in the format: Bearer {api_token}
Headers
Makes this write safe to retry: a repeat with the same key replays the first response instead of creating a second resource. Scoped to the account, remembered for 24 hours; reusing a key with a different payload is an error.
255Body
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.
agent, script What the agent does on each run. Required for kind: agent, must be absent for kind: script.
10000What 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.
2000immediate, cron, interval, once, event Which agent runs the task. Use engineering for pure code/build work on a site; defaults to business.
business, engineering 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.
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.
10000autonomous, supervised, read_only account, personal 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.
1 <= x <= 1440Event 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.
1 <= x <= 604800The 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.
80Where 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.
notification, email, telegram, discord, slack 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 this task works on (site_...); its repo is mounted as the run's workspace. Defaults to the account's default working site.
Response
Task created
agent, script immediate, cron, interval, once, event notification, email, telegram, discord, slack autonomous, supervised, read_only business, engineering account, personal Event tasks: the most event-started runs per day (account time zone); later events are skipped as rate_limited.
Event tasks: the cooldown after an event-started run; events inside it are skipped as rate_limited.
The name Slack shows on this task's posted results. Null posts as the task's bot, else Crevio.
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).
user, agent, system The person (user_...) who made the task or asked for it. Null for built-in tasks.
The chat (aichat_...) the task was set up in. A member's chat opens only for that member.
The task's newest executed runs (at most 5, newest first; skipped and test runs excluded).

