Step properties
Every step in an automation has the following base properties:A unique reference identifier for the step. Used in edge definitions to
connect steps.
The type of step. Possible values:
triggersend_emaildelaywait_for_eventconditioncontact_updatecontact_deleteadd_to_segment
The configuration object for the step. The shape depends on the step
type.trigger
The trigger step starts the automation when a matching event is received.
The name of the event that triggers the automation.
send_email
Sends an email using a template.
The ID of the email template to send.
The email subject line.
The sender email address.
Reply-to email address.
A key-value map of template variables.
delay
Pauses execution for a specified duration.
The delay duration in seconds.
Example
wait_for_event
Pauses execution until a specific event is received or a timeout is reached.
The name of the event to wait for.
The maximum time to wait in seconds before timing out.
An optional rule object to filter incoming events.
Example
condition
Branches the workflow based on rules. Condition configs can be a single rule or a logical group (and/or) of rules.
The type of condition node. Possible values:
ruleandor
rule type:
The field to evaluate. Must use the
event. or contact. namespace prefix
(e.g., event.amount, contact.email).The comparison operator.Possible values:
eq: equalsneq: not equalsgt: greater thangte: greater than or equal tolt: less thanlte: less than or equal tocontains: contains a given valuestarts_with: starts with a given valueends_with: ends with a given valueexists: field existsis_empty: field is empty
The value to compare against. Not required for
exists and is_empty
operators.and / or types:
An array of nested condition config objects. Must contain at least one item.
and or or to combine multiple rules into a single branch:
contact_update
Updates a contact’s fields. Each field value can be either a hardcoded value or a dynamic variable reference using the { var: '...' } syntax.
Variable references use dot-notation with one of these scopes:
event.*— references a field from the triggering event payload (e.g.,event.firstName).contact.*— references a field from the current contact (e.g.,contact.last_name,contact.properties.company).
The contact’s first name. Accepts a hardcoded string or a variable reference (e.g.,
{ "var": "event.firstName" }).The contact’s last name. Accepts a hardcoded string or a variable reference (e.g.,
{ "var": "contact.last_name" }).A map of custom contact properties to update. Keys correspond to your Contact
Custom Properties. Each value can be a
hardcoded value (string, number, boolean) or a variable reference.
Example
contact_delete
Deletes the contact from the audience. This step does not require any configuration fields. Pass an empty object {} as the config.
Example
add_to_segment
Adds the contact to a segment.
The ID of the segment to add the contact to.
Example
Edge properties
Edges define connections between steps in the automation graph.This is the
ref of the origin step.This is the
ref of the destination step.The type of connection between the origin and destination steps. Most
automations use the default edge type.Use a non-default
edge_type only when the origin step can branch to multiple
destinations:- For
wait_for_event, useevent_receivedortimeout. - For
condition, usecondition_metorcondition_not_met.
defaultcondition_metcondition_not_mettimeoutevent_received
Example