Automations
Automations create tasks on a schedule or in response to an event. Use them for recurring work such as reports, checks, and follow-up tasks.
Quick Links
| Action | Description |
|---|---|
automations.list() |
List automations. |
automations.create() |
Create a scheduled or triggered automation. |
automations.get() |
Read an automation. |
automations.update() |
Update an automation. |
automations.delete() |
Disable an automation. |
automations.run() |
Run an automation now. |
automations.listTasks() |
List tasks created by an automation. |
Reference
automations.list(params?)
List automations in the current workspace.
const { data: automations } = await client.automations.list({ status: 'active' })
automations = client.automations.list(status="active").data
curl "$SKOPIK_API_BASE/automations?status=active" \
-H "Authorization: Bearer $SKOPIK_API_KEY"
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
status |
string | No | active, paused, or disabled. |
owner |
string | No | Filter by owner. |
createdBy |
string | No | Filter by creator. |
Returns ListResponse<Automation> — see Automation.
automations.create(input)
Create an automation for recurring or event-triggered task creation. Each time the automation fires, Skopik creates a task from template.
const { automation } = await client.automations.create({
name: 'Daily launch summary',
trigger: { type: 'schedule', schedule: { kind: 'every', duration: '1d' } },
template: {
title: 'Write launch summary',
prompt: 'Summarize open launch work and blockers.',
assignedTo: 'agent_31c8d0',
},
})
automation = client.automations.create(
name="Daily launch summary",
trigger={"type": "schedule", "schedule": {"kind": "every", "duration": "1d"}},
template={
"title": "Write launch summary",
"prompt": "Summarize open launch work and blockers.",
"assigned_to": "agent_31c8d0",
},
).automation
curl "$SKOPIK_API_BASE/automations" \
-H "Authorization: Bearer $SKOPIK_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"Daily launch summary\",
\"trigger\": { \"type\": \"schedule\", \"schedule\": { \"kind\": \"every\", \"duration\": \"1d\" } },
\"template\": {
\"title\": \"Write launch summary\",
\"prompt\": \"Summarize open launch work and blockers.\",
\"assigned_to\": \"$AGENT_ID\"
}
}"
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
name |
string | Yes | Automation name. |
trigger |
AutomationTrigger | Yes | Schedule or event trigger. See AutomationTrigger. |
template |
TaskTemplate | Yes | Task fields to use each time the automation fires. See TaskTemplate. |
description |
string | No | Human-readable description. |
status |
string | No | active, paused, or disabled. Defaults to active. |
owner |
string | No | Owner id or external owner reference. |
serviceIdentityId |
string | No | Service identity used to create automation tasks. |
conversationId |
string | No | Conversation to attach automation activity to. |
metadata |
object | No | Customer metadata. |
Returns { automation: Automation } — see Automation.
automations.get(automationId)
Read an automation.
const { automation } = await client.automations.get('auto_5d81f2')
automation = client.automations.get("auto_5d81f2").automation
curl "$SKOPIK_API_BASE/automations/$AUTOMATION_ID" \
-H "Authorization: Bearer $SKOPIK_API_KEY"
Returns { automation: Automation } — see Automation.
automations.update(automationId, input)
Update an automation.
const { automation } = await client.automations.update('auto_5d81f2', {
status: 'paused',
})
automation = client.automations.update("auto_5d81f2", status="paused").automation
curl "$SKOPIK_API_BASE/automations/$AUTOMATION_ID" \
-X PUT \
-H "Authorization: Bearer $SKOPIK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "paused"
}'
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
name |
string | No | New name. |
description |
string | No | New description. |
status |
string | No | active, paused, or disabled. |
trigger |
AutomationTrigger | No | Replacement trigger. See AutomationTrigger. |
template |
TaskTemplate | No | Replacement task template. See TaskTemplate. |
owner |
string | No | New owner. |
conversationId |
string | No | New conversation id. |
metadata |
object | No | Replacement metadata. |
Returns { automation: Automation } — see Automation.
automations.delete(automationId)
Disable an automation. Disabled automations no longer fire.
const { automation } = await client.automations.delete('auto_5d81f2')
automation = client.automations.delete("auto_5d81f2").automation
curl "$SKOPIK_API_BASE/automations/$AUTOMATION_ID" \
-X DELETE \
-H "Authorization: Bearer $SKOPIK_API_KEY"
Returns { automation: Automation } — the disabled automation. See Automation.
automations.run(automationId)
Fire an automation immediately.
const { task } = await client.automations.run('auto_5d81f2')
task = client.automations.run("auto_5d81f2").task
curl "$SKOPIK_API_BASE/automations/$AUTOMATION_ID/run" \
-X POST \
-H "Authorization: Bearer $SKOPIK_API_KEY"
Returns { task: Task, session?: Run, operation?: Operation } — task is the newly created task; session is the run when the task was dispatched immediately; operation tracks the dispatch. See Task, Run, and Operation.
automations.listTasks(automationId)
List tasks created by an automation.
const { data: tasks } = await client.automations.listTasks('auto_5d81f2')
tasks = client.automations.list_tasks("auto_5d81f2").data
curl "$SKOPIK_API_BASE/automations/$AUTOMATION_ID/tasks" \
-H "Authorization: Bearer $SKOPIK_API_KEY"
Returns ListResponse<Task> — single page, no cursor. See Task.
Types
Automation
| Field | Type | Notes |
|---|---|---|
automationId |
string | Automation id. |
orgId |
string | Workspace id. |
name |
string | Automation name. |
description |
string | Description. |
status |
string | active, paused, or disabled. |
trigger |
AutomationTrigger | Trigger definition. See AutomationTrigger. |
template |
TaskTemplate | Task template. See TaskTemplate. |
serviceIdentityId |
string | Service identity used to create automation tasks. |
owner |
string | Owner id or external owner reference. |
conversationId |
string | Attached conversation id. |
metadata |
object | Customer metadata. |
lastRunAt |
string | Last run timestamp. |
nextRunAt |
string | Next scheduled run timestamp. |
lastTaskId |
string | Most recent task created by the automation. |
runCount |
number | Number of runs fired. |
createdBy |
string | Creator id. |
createdAt |
string | ISO timestamp. |
updatedAt |
string | ISO timestamp. |
AutomationTrigger
A trigger is one of two shapes, discriminated by type:
| Shape | Fields |
|---|---|
| Schedule trigger | { type: 'schedule', schedule } — fires on a time-based schedule. See the schedule variants below. |
| Event trigger | { type: 'event', source, match? } — fires when a matching event arrives from source (for example github). |
Schedule variants, discriminated by schedule.kind:
kind |
Fields | Example |
|---|---|---|
in |
duration |
{ "kind": "in", "duration": "1h" } |
at |
iso |
{ "kind": "at", "iso": "2026-07-03T12:00:00Z" } |
every |
duration |
{ "kind": "every", "duration": "1d" } |
cron |
expression |
{ "kind": "cron", "expression": "rate(1 day)" } |
TaskTemplate
| Field | Type | Notes |
|---|---|---|
title |
string | Task title. Required. |
prompt |
string | Task prompt. |
skill |
string | Skill name or id. |
assignedTo |
string | Assigned agent id. |
owner |
string | Owner id or external owner reference. |
priority |
string | low, medium, high, or urgent. |
tags |
string[] | Tags. |
todos |
TaskTodo[] | Structured todo list. See TaskTodo. |
metadata |
object | Customer metadata. |
trace |
boolean | Enable task trace visibility. |