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:
| Status | Behavior | Transitions |
|---|---|---|
| Draft | Not processing events. Edit freely. | Can activate |
| Active | Processing matching events and triggering email sends. | Can pause or stop |
| Paused | Temporarily not processing. Existing trips continue. | Can reactivate |
| Stopped | Permanently 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
| Step | What it does |
|---|---|
| Send Email | Renders a template with NLT and sends an email to the contact via Resend. |
| Wait | Pauses the trip for a specified duration (minutes, hours, or days). |
| Condition | Branches the flow based on contact properties or event attributes. |
| Update Contact | Updates 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.
- 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:
- Create or identify a test contact with your own email
- Build and activate the flow in test mode
- Trigger the event from the Events page (or via API with a test key)
- Check your inbox and the Email Logs page to verify delivery
- Use "Re-trigger" on the event to test again without creating a new event
- When satisfied, clone the flow (and its templates/segments) to live
Detailed guides
Creating Flows
Set up trigger events, entry conditions, and segment filters
Flow Step Types
Send emails, add delays, branch with conditions, and update contacts
Monitoring Performance
Track active trips, completion rates, and email delivery stats
Troubleshooting
Solve common issues with flows not triggering or emails not sending