Automation Actions Overview
Actions are the individual steps an automation runs. Every action shares the same shape: a type and an operator that together select the operation, plus a props object carrying its inputs. Steps run sequentially (top to bottom) unless a path or loop action branches execution.
actions:
- name: fetchUser # step name — referenced as {{fetchUser.result}}
type: http # action family
operator: get # operation within the family
props: # operation-specific inputs
url: 'https://api.example.com/users/{{trigger.data.userId}}'
connection: example-apiThe Action Model
| Element | Description |
|---|---|
type |
The action family (e.g. http, record, email). Selects the broad capability. |
operator |
The operation within the family (e.g. get, create, send). Determines the shape of props. |
props |
Operation-specific inputs. String values support template variables. |
Common Base Properties
Every action — regardless of type/operator — accepts these base fields:
| Property | Description |
|---|---|
name |
Step name for referencing outputs (e.g. fetchUser). Must match ^[a-zA-Z][a-zA-Z0-9_]*$. Required. |
label |
Human-readable label for the step. |
retry |
Per-action retry policy — { maxAttempts, delayMs?, strategy? }. See Retry & Failure. |
continueOnError |
Boolean. When true, the workflow continues even if this action fails. Defaults to false. |
timeout |
Per-action timeout in milliseconds (1000–900000). Terminates the action uniformly when exceeded — distinct from per-type props.timeout. |
Two timeouts, two scopes. The top-level timeout field fences the whole action and is enforced for every action type. A props.timeout (e.g. on http, code, automation/call) fences the handler's internal operation. The smaller of the two wins.
Conditional Execution
Branching and conditional skipping are handled by dedicated control-flow actions rather than a per-action condition field:
filter/continue— evaluate a condition group; on false,stopthe run orskipto the next action.path/branch— route into named branches based on per-branch conditions.
See Flow Control and Data & State Actions.
The ~22 Action Families
Each family groups one or more operators. The pages below document every operator.
| Family | Operators | Page |
|---|---|---|
data |
set, aggregate, sort, limit, deduplicate, merge, split, compare, lookup | Data & State |
state |
get, set, increment, delete, list | Data & State |
filter |
continue | Data & State |
crypto |
hash, hmac | Data & State |
digest |
collect, release | Data & State |
http |
request, get, post, put, patch, delete | HTTP & Webhooks |
webhook |
send, response | HTTP & Webhooks |
record |
create, read, update, delete, upsert, batchCreate, batchUpdate, batchDelete, batchUpsert | Record & File |
file |
upload, download, delete, copy, move, list, getMetadata, signUrl, generatePdf, generateCsv, parseCsv, extractText, transformImage, compress | Record & File |
path |
branch | Flow Control |
loop |
each | Flow Control |
automation |
call, return | Flow Control |
flow |
stop | Flow Control |
email |
send | Email & Notifications |
analytics |
track | Email & Notifications |
ai |
generate, classify, extract, agent | AI Actions |
approval |
request | Approval & Delay |
delay |
wait, queue, webhook | Approval & Delay |
auth |
createUser, assignRole, banUser, unbanUser | Auth Actions |
code |
runTypescript | Code Actions |
ref |
(no operator) | Reusable Actions |
Reusable Steps
A step used by more than one automation does not have to be copied into each. Declare it once in the top-level app.actions array and invoke it with a ref action, the one action type that takes no operator. See Reusable Actions for the template shape, variable substitution, and exposing a template as an AI tool.
Related Pages
- Automations Overview — the trigger + actions anatomy.
- Reusable Actions — action templates invoked via
$ref. - Triggers — events that start a workflow.
- Retry & Failure — retry, timeout, idempotency.
- Connections — credentials for authenticated actions.
Last updated August 11, 2026
This documentation was written with AI, so errors or outdated content are possible. Sovrium is in beta. Contributions and corrections are welcome.