Automated flows
Respond to customer behavior with timed, connected actions.
View as Markdown ↗How flows work
A flow starts with a trigger and moves each enrolled contact through connected actions. Contacts can wait, receive email, branch based on data, or call an external webhook.
Triggers
Start flows from contact creation, customer events, list joins, form submissions, email engagement, segment entry, date attributes or manual enrollment. Entry filters narrow who qualifies. For a form welcome sequence, use form_submit: it includes existing contacts submitting again and waits for confirmation on double-opt-in forms. Flows API lists the trigger fields and current form-ID limitation.
Actions
Flows also support time-of-day and event waits, weighted splits, per-email A/B variations, list changes, setting contact attributes, team notifications and explicit exits. See Flows API for each action's fields and branching constraints.
Activate a flow
Save and review the full graph before activation. Active flows accept new enrollments; pausing stops new enrollments while contacts already inside continue. Edits publish a new version; existing enrollments finish on the version they entered. A flow that has enrolled anyone cannot be deleted—pause it to preserve its history.
Use a test contact and a short delay to confirm content, conditions, and external webhook responses before activating a production flow.
Everything on this page is available from code too — triggers, waits, and branches as a list of steps. See the Flows API.