Skip to content
Cowliss is in beta: features and pricing may change.

Executions

An execution is one automation for one profile, pinned to the version it started on. It can be filtered by automation, version, status, and profile in one place. Its detail carries what the automation logged with api.log. Pipeline keys can read executions, but stopping them is explicit: cancel is the only write and requires a dashboard session.

List executions, newest first

Auth: Session token, or an org pipeline key.

Query parameters

{
"cursor": "string",
"limit": 50,
"q": "string",
"automation": "string",
"version": "string",
"status": "running",
"profileId": "string",
"appId": "string",
"since": "2026-01-15T09:30:00.000Z"
}
Field Type Required Constraints
cursor string no
limit integer no default 50; 1 ≤ x ≤ 100
q string no length 0–200
automation string no length 1–200
version string no length 1–200
status “running” | “waiting” | “completed” | “failed” | “cancelled” no
profileId string no length 1–200
appId string no length 0–200
since string (date-time) no

Response 200

{
"data": [
{
"id": "string",
"orgId": "string",
"appId": "string",
"automationKey": "string",
"profileId": "string",
"workflowId": "string",
"runId": "string",
"versionId": "string",
"triggerEventId": "string",
"status": "running",
"step": "string",
"timerDeadline": "2026-01-15T09:30:00.000Z",
"journalEntries": 42,
"error": "string",
"startedAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"endedAt": "2026-01-15T09:30:00.000Z"
}
],
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object[] yes
data[] object yes
data[].id string yes
data[].orgId string yes
data[].appId string yes
data[].automationKey string yes
data[].profileId string yes
data[].workflowId string yes
data[].runId string yes
data[].versionId string yes
data[].triggerEventId string | null yes
data[].status “running” | “waiting” | “completed” | “failed” | “cancelled” yes
data[].step string | null yes
data[].timerDeadline string (date-time) | null yes
data[].journalEntries integer yes -2147483648 ≤ x ≤ 2147483647
data[].error string | null yes
data[].startedAt string (date-time) yes
data[].updatedAt string (date-time) yes
data[].endedAt string (date-time) | null yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

Cancel live executions of an automation, or of one version

Admin only. Each execution stops when it reaches its next step.

Auth: Session token.

Request body

{
"data": {
"automation": "string",
"appId": "string",
"version": "string"
}
}
Field Type Required Constraints
data object yes
data.automation string no length 1–200
data.appId string no length 0–200
data.version string no length 1–200

Response 200

{
"data": {
"cancelling": true
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.cancelling true yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

Inspect one execution, with its logs

Auth: Session token, or an org pipeline key.

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"appId": "string",
"automationKey": "string",
"profileId": "string",
"workflowId": "string",
"runId": "string",
"versionId": "string",
"triggerEventId": "string",
"status": "running",
"step": "string",
"timerDeadline": "2026-01-15T09:30:00.000Z",
"journalEntries": 42,
"error": "string",
"startedAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"endedAt": "2026-01-15T09:30:00.000Z",
"journal": [
{
"call": {
"name": "sleep",
"args": {
"duration": "string"
}
},
"result": {
"ok": true,
"value": {}
},
"at": 42
}
],
"logs": [
{
"seq": 42,
"level": "debug",
"message": "string",
"createdAt": "2026-01-15T09:30:00.000Z"
}
]
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.appId string yes
data.automationKey string yes
data.profileId string yes
data.workflowId string yes
data.runId string yes
data.versionId string yes
data.triggerEventId string | null yes
data.status “running” | “waiting” | “completed” | “failed” | “cancelled” yes
data.step string | null yes
data.timerDeadline string (date-time) | null yes
data.journalEntries integer yes -2147483648 ≤ x ≤ 2147483647
data.error string | null yes
data.startedAt string (date-time) yes
data.updatedAt string (date-time) yes
data.endedAt string (date-time) | null yes
data.journal object[] yes
data.journal[] object yes
data.journal[].call one of yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “sleep” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.duration string | integer yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “waitForEvent” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.event string | string[] yes
data.journal[].call〈variant〉.args.timeout string | integer yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “send.email” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.template string yes length 0–64
data.journal[].call〈variant〉.args.props record<string, any> yes
data.journal[].call〈variant〉.args.from string no length 0–200
data.journal[].call〈variant〉.args.replyTo string (email) no
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “send.webhook” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.destination string yes length 1–∞
data.journal[].call〈variant〉.args.payload record<string, any> yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “profile.get” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “profiles.get” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.id string yes length 1–∞
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “restart” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.event object no
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “traits.set” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.key string yes length 1–∞
data.journal[].call〈variant〉.args.value any yes
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “traits.unset” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.key string yes length 1–∞
data.journal[].call〈variant〉 object yes
data.journal[].call〈variant〉.name “events.track” yes
data.journal[].call〈variant〉.args object yes
data.journal[].call〈variant〉.args.event string yes length 1–∞
data.journal[].call〈variant〉.args.properties record<string, any> yes
data.journal[].result one of yes
data.journal[].result〈variant〉 object yes
data.journal[].result〈variant〉.ok true yes
data.journal[].result〈variant〉.value any yes
data.journal[].result〈variant〉 object yes
data.journal[].result〈variant〉.ok false yes
data.journal[].result〈variant〉.error object yes
data.journal[].result〈variant〉.error.code string yes length 1–∞
data.journal[].result〈variant〉.error.message string yes
data.journal[].at integer yes 0 ≤ x ≤ ∞
data.logs object[] yes
data.logs[] object yes
data.logs[].seq integer yes -2147483648 ≤ x ≤ 2147483647
data.logs[].level “debug” | “info” | “warn” | “error” yes
data.logs[].message string yes
data.logs[].createdAt string (date-time) yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.