Skip to main content
GET
Get an automation
Returns a single automation by ID, including its full configuration and current execution state. For participant-scoped automations, the response includes fan-out progress fields: participants_total and participants_processed. These let you track how far along a running automation is. For program-scoped automations, these fields are omitted.
For usage patterns and examples, see the Automations guide.

Authorizations

X-API-Key
string
header
required

API key passed in the X-API-Key header.

Path Parameters

programId
string<uuid>
required

Program ID

automationId
string<uuid>
required

Automation ID

Response

Automation details

created_at
string<date-time>

When this automation was created

Example:

"2024-01-15T10:30:00Z"

cron_expression
string

Cron expression defining the recurring schedule (cron trigger only)

Example:

"0 9 * * 1"

description
string

Optional human-readable description of what this automation does

Example:

"Sends a weekly reminder event to VIP participants"

error_message
string

Error message if the one-time automation failed

Example:

"participant not found"

event_name
string

The event name generated when this automation fires

Example:

"weekly_reminder"

execution_completed_at
string<date-time>

When the current fan-out execution completed

Example:

"2024-01-15T09:00:42Z"

execution_error
string

Error message if the fan-out execution failed, or JSON-encoded diagnostics for completed runs with CEL eval skips

Example:

"fanout aborted: program is archived"

execution_started_at
string<date-time>

When the current fan-out execution started

Example:

"2024-01-15T09:00:00Z"

execution_status
string

Current fan-out execution state: idle, pending, executing, completed, or failed (participant-scoped only)

Example:

"completed"

filter_hints
object[]

Optimization hints for the participant filter (e.g., has_tag, has_attribute, has_counter)

guard_condition
string

CEL expression evaluated at trigger time; skips the participant if false

Example:

"participant.counters.purchases >= 1"

id
string<uuid>

Unique identifier for this automation

Example:

"990e8400-e29b-41d4-a716-446655440000"

last_error
string

Error message from the most recent cron execution, if any (cron trigger only)

Example:

"failed to enqueue event: queue unavailable"

last_evaluated_at
string<date-time>

When participant filters were last evaluated (participant_state trigger only)

Example:

"2024-01-15T10:30:00Z"

last_run_at
string<date-time>

When this automation last fired (cron trigger only)

Example:

"2024-01-15T09:00:00Z"

name
string

Human-readable label for this automation

Example:

"Weekly points reminder"

next_run_at
string<date-time>

When this automation will next fire (cron trigger only)

Example:

"2024-01-22T09:00:00Z"

participant_filter
string

CEL expression that determines which participants are enrolled

Example:

"participant.tags.exists(t, t == 'vip')"

participant_id
string<uuid>

Target participant for program-scoped one-time automations

Example:

"550e8400-e29b-41d4-a716-446655440001"

participants_processed
integer

Participants processed so far in the current fan-out run

Example:

150

participants_skipped_error
integer

Participants skipped because participant_filter or guard_condition CEL evaluation errored

Example:

0

participants_total
integer

Total participants to process in the current fan-out run

Example:

150

payload
object

Custom data included in the generated event

processed_at
string<date-time>

When this one-time automation was processed

Example:

"2024-02-01T09:00:05Z"

program_id
string<uuid>

The program this automation belongs to

Example:

"550e8400-e29b-41d4-a716-446655440000"

schedule_config
object

Configuration for the schedule type (participant_state trigger only)

schedule_type
string

How participant subscriptions are scheduled: ATTRIBUTE_DATE, INTERVAL, CRON, or THRESHOLD (participant_state trigger only)

Example:

"INTERVAL"

scope
string

Whether the automation fires once at the program level or fans out per participant: program or participants

Example:

"participants"

source
string

How this automation was created: api or rule_action

Example:

"api"

status
string

Current state: active, paused, completed, failed, or archived

Example:

"active"

timezone
string

IANA timezone used for scheduling (e.g., America/New_York)

Example:

"America/New_York"

trigger_at
string<date-time>

When this automation is scheduled to fire (one_time trigger only, RFC 3339)

Example:

"2026-02-01T09:00:00Z"

trigger_type
string

How this automation is triggered: cron, one_time, participant_state, or immediate

Example:

"cron"

updated_at
string<date-time>

When this automation was last updated

Example:

"2024-01-15T10:30:00Z"

warnings
object[]

Non-blocking advisories about participant_filter/guard_condition — e.g. a counter/tag/attribute key no rule in the program writes. Present on create/update only; never blocks the save.