Skip to main content

Actions & workflow control

Actions are the steps an interface runs when called. Each action does one thing — fetch data or transform it — and actions can be ordered, retried, and run conditionally on each other's results.

An action's data comes from an input: selector (request data or a previous action's output), or from a fetch: http, database, command, email, or a lookup to fan out over an array. Then validate with assert, reshape with post_transforms, and order with run_when_succeeded / run_when_failed / depends_on.

actions:
- name: FetchUser
http:
url: https://api.example.com/users/a|params::id|
- name: Notify
run_when_succeeded: [FetchUser]
http:
url: https://hooks.example.com/notify
body: { email: a|FetchUser::email| }

Reference a previous action's output with a|ActionName::field| — see Interpolation. All action fields follow.

Action

FieldTypeDescription
timeoutanyMaximum execution time for this action in milliseconds.
inputstring (nullable)Specify the input source for the action. Common sources: - a|body| - HTTP request body - a|params| - URL parameters - a|action_name::field| - Output from a previous action
input_fallbacksArray<string> (nullable)Alternative input sources to try if the primary input is not available.
conditional_inputConditionalInput (nullable)Define conditional input based on runtime conditions. Uses Simple (list of input strings) or Complex (with tests).
pre_logArray<LogMessage> (nullable)Log messages before action execution.
post_logArray<LogMessage> (nullable)Log messages after successful action completion.
error_logArray<LogMessage> (nullable)Log messages when action fails.
success_logArray<LogMessage> (nullable)Log messages when action succeeds.
retry_logArray<LogMessage> (nullable)Log messages when action retry is attempted.
retryRetry (nullable)Configure automatic retry behavior.
lookupstring (nullable)Name of a lookup configuration to use for pre-fetching data.
item_timeoutanyPer-item execution timeout for lookup iterations. Controls how long each individual item in the lookup array is allowed to run. Use timeout to cap the total loop duration.
lookup_concurrencynumber (nullable)Maximum number of lookup items to execute concurrently. Defaults to 10. Capped at 50 in managed run modes.
lookup_partitionboolean (nullable)Separate per-item successes from failures in the lookup output. When true, the action returns `{ "succeeded": [...item data...], "failed": [{ item, http_code?, error?, data? }]…
lookup_inherit_jqMap<string, string> (nullable)JQ transformations to apply to lookup results.
lookup_inheritMap<string, string> (nullable)Fields to inherit from lookup results.
actionsArray<Action> (nullable)Nested actions for lookup.
json_outputanyCapture specific JSON values from output.
commandCommandRun (nullable)Execute a system command.
output_stdoutboolean (nullable)Include command stdout in output.
httpHttpRequest (nullable)HTTP request configuration.
databasestring (nullable)Database name for SQL operations.
googleGoogle (nullable)Google API integration.
awsAws (nullable)AWS service integration.
stateStateAction (nullable)Persistent state operation (durable key/value): polling cursors, dedupe sets, idempotency keys, counters. Backed by a pluggable backend (in-memory for local single-node,…
delayanyPause for a fixed duration before continuing — pacing / throttling between steps. Accepts a duration string ("2s", "500ms", "1m") or a number of milliseconds. Bounded by…
emailEmail (nullable)Email sending action.
emit_metricEmitMetric (nullable)Emit a Prometheus metric as part of this action step. Requires expose_metrics: true on the parent config.
actionstring (nullable)Action identifier for referencing outputs.
depends_onRunCondition (nullable)Run this action when specified actions complete. Can be a list of action names or a RunCondition config.
run_when_succeededRunCondition (nullable)Run this action when specified actions succeed.
run_when_failedRunCondition (nullable)Run this action when specified actions fail.
run_on_assertionAssert (nullable)Run this action based on assertion results.
paramsArray<any> (nullable)Parameters for SQL queries.
post_transformsArray<Transform> (nullable)Transformations to apply to action output.
namestring (nullable)Action identifier/name.
descriptionstring (nullable)Description of the action.
querystring (nullable)SQL query for database actions.
multiboolean (nullable)Run this action's query as a multi-statement batch (Postgres only). The native driver prepares every query, and a prepared statement can hold only one command — so a query
urlstring (nullable)URL for HTTP actions.
conn_stringstring (nullable)Database connection string override.
outputstring (nullable)Output destination handler.
assertAssert (nullable)Validation and response configuration.
document_operationDocumentOperation (nullable)Document database operations.
hide_actionboolean (nullable)Hide entire action data.
hide_data_on_successboolean (nullable)Hide action data on success.
hide_data_on_errorboolean (nullable)Hide action data on error.
hide_data_on_emptyboolean (nullable)Hide action data when empty.
hide_errorsboolean (nullable)Hide error details.
hide_metricsboolean (nullable)Disable metrics collection.
response_on_successActionResponse (nullable)Custom response on success.
response_on_errorActionResponse (nullable)Custom response on error.

ActionResponse

FieldTypeDescription
http_codenumber (nullable)
headersobject (nullable)
bodystring (nullable)

Retry

FieldTypeDescription
attemptsnumberRequired.
delaynumber (nullable)
exponential_backoffboolean (nullable)

LogMessage

FieldTypeDescription
msgstringRequired.
levelstringRequired.
jsonboolean (nullable)

RunCondition

One of:

RunOnConfig

FieldTypeDescription
at_leastnumber (nullable)
actionsArray<string>Required.
http_code_on_errornumber (nullable)

ConditionalInput

One of:

ConditionalInputConfig

FieldTypeDescription
inputstringRequired.
testsArray<Test>Required.