Skip to content

Flows

Automated Email Flows

Flows are automated sequences of actions triggered by events from your application. When a customer signs up, makes a purchase, or submits a claim, a flow can automatically send personalized emails, wait, check conditions, and update contact records.

Looking for the API? Flows API Reference

Flow lifecycle

Every flow has a status that controls whether it processes new events:

StatusBehaviorTransitions
DraftNot processing events. Edit freely.Can activate
ActiveProcessing matching events and triggering email sends.Can pause or stop
PausedTemporarily not processing. Existing trips continue.Can reactivate
StoppedPermanently stopped. All trips completed or cancelled.Can reactivate

Flow components

Trigger event

The event name that starts this flow (e.g., "user_signed_up", "order_completed"). One event can trigger multiple flows.

Entry conditions

Optional conditions on the event attributes. Only events matching these conditions enter the flow (e.g., "plan is premium").

Segment filter

Optional audience segment. Only contacts in the selected segment enter the flow.

Steps

The sequence of actions: send email, wait (delay), check condition (branch), or update contact.

Step types

StepWhat it does
Send EmailRenders a template with NLT and sends an email to the contact via Resend.
WaitPauses the trip for a specified duration (minutes, hours, or days).
ConditionBranches the flow based on contact properties or event attributes.
Update ContactUpdates contact fields or custom properties (e.g., set a tag or change a status).

Flows and environments

Flows are separate per environment. Test events only trigger test flows, and live events only trigger live flows. This complete isolation means you can safely build, activate, and iterate on flows in test mode without any risk to your production email delivery.

Cloning a flow to live

When a flow is ready for production, click the Clone to Live button on the flow detail page (or use the API: POST /v1/flows/{flow_id}/clone).

  • If a flow with the same name already exists in live, its configuration is updated. The existing flow keeps its current status (it will not be auto-activated).
  • If no matching name exists, a new flow is created in draft status.
  • Flow versions and conversion goals are cloned along with the flow.
Before cloning a flow, check these dependencies:
  • All template slugs referenced in "Send Email" steps must exist in the live environment. Clone templates first.
  • If the flow uses a segment filter, that segment must exist in live (matched by name). Clone the segment first.

Synapse checks for missing dependencies and returns warnings in the clone response.

Testing flows

In test mode, flows only trigger for test contacts when test events are received. This means you can activate a flow and send events without worrying about emailing your production users.

To test a flow:

  1. Create or identify a test contact with your own email
  2. Build and activate the flow in test mode
  3. Trigger the event from the Events page (or via API with a test key)
  4. Check your inbox and the Email Logs page to verify delivery
  5. Use "Re-trigger" on the event to test again without creating a new event
  6. When satisfied, clone the flow (and its templates/segments) to live

Detailed guides