Skip to main content
View as Markdown

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.

app.yaml
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-api

The 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.

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, stop the run or skip to 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.

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.

Built with Sovrium