Creating Flows
Flows connect events from your application to automated email sequences. This guide covers all the configuration options available when creating or editing a flow.
Flow Structure
Every flow has three main parts:
- Trigger -- What event starts the flow
- Audience -- Who qualifies to enter the flow
- Steps -- What happens once a contact enters
Setting the Trigger Event
The trigger event is the event name that your application sends to Synapse via the API. When this event is received, Synapse evaluates whether to start a new trip through the flow.
- Enter the event name in the Trigger Event field (e.g.,
user_signup,order_placed,claim_submitted). - This must exactly match the
event_nameyour application sends in the API call.
You can see which event names are being received in Developer Tools > Event Schemas. This helps you pick the right name without guessing.
Entry Conditions
Entry conditions filter events based on their attributes. They let you create multiple flows for the same event, each handling different scenarios.
For example, if you have an order_placed event, you might create:
- A flow for high-value orders where
amount > 500 - A different flow for first-time orders where
is_first_order is true
How to Add Conditions
- Click Add Condition in the trigger section.
- Choose the event attribute (e.g.,
claim_type,amount,country). - Select a comparison (equals, greater than, etc.).
- Enter the value to compare against.
You can add multiple conditions. All conditions must be true for the event to trigger the flow.
Entry conditions check event attributes -- the data that comes with the event. They do not check contact properties. To filter by contact data, use a segment instead.
Segment Filters
A segment restricts which contacts can enter the flow. Even if the trigger event and entry conditions match, the contact must also belong to the selected segment.
- Open the Segment dropdown.
- Select an existing segment or leave it as "All Contacts".
Common uses:
- Only send to contacts who are
subscribed(not unsubscribed) - Only send to contacts in a specific region or product type
- Exclude certain contact groups using segment exclusion rules
Segments are evaluated in real time when the event arrives. See Building Segments for details on creating segments.
Content Type
Each flow has a content type that affects how emails are prioritized for delivery:
| Content Type | Use For | Delivery Priority |
|---|---|---|
| Transactional | Order confirmations, password resets, claim notifications | High (sent immediately) |
| Promotional | Marketing campaigns, newsletters, product announcements | Normal (may be throttled during high volume) |
Choose the content type that matches your flow's purpose. Transactional emails get higher delivery priority and are subject to different regulations than promotional emails.
Flow Status
Flows have four possible statuses:
| Status | Meaning |
|---|---|
| Draft | Flow is saved but not processing any events. Use this while building. |
| Active | Flow is live and will process matching events. |
| Paused | Flow stops accepting new trips but existing trips continue to completion. |
| Stopped | Flow is fully stopped -- no new trips and all active trips are terminated. |
Activating a Flow
- Build your flow with at least one step.
- Review the trigger, conditions, segment, and steps.
- Click Activate.
Activating a flow starts processing events immediately. Any matching events received after activation will trigger new trips. Events received while the flow was in draft or paused status are not retroactively processed.
Pausing a Flow
Click Pause on an active flow to stop new trips from starting. Contacts already in the flow will continue through their remaining steps (including wait steps).
Stopping a Flow
Click Stop on an active flow to fully shut it down. Unlike pausing, stopping a flow also terminates all in-progress trips immediately. Contacts mid-journey will not receive any remaining steps. You can re-activate a stopped flow later, which will allow new trips but will not resume the terminated ones.
Idempotency (Preventing Duplicates)
Synapse automatically prevents the same contact from entering the same flow twice for the same event. This is handled through:
- An idempotency key sent with each event
- A unique constraint on the combination of flow, contact, and trigger event
This means if your application accidentally sends the same event twice, the contact won't receive duplicate emails.
For transactional flows (like order confirmations), idempotency is critical. For promotional flows that should allow re-entry over time, you can include a date component in the idempotency key.
Flow Settings
Each flow has configurable settings that control re-entry behavior and send throttling.
Re-Entry Policy
Controls whether a contact can enter the same flow more than once:
| Policy | Behavior |
|---|---|
| Never (default) | A contact can only enter the flow once, ever |
| After Completion | A contact can re-enter after their previous trip completes |
| Always | A contact can enter any time the trigger fires, even if already in the flow |
| Cooldown | A contact can re-enter after a configurable cooldown period (in days) |
Send Throttling
Limit the number of emails a flow can send within a time period to avoid overwhelming contacts:
- Throttle Limit: Maximum sends per period (e.g., 100)
- Throttle Period:
hourorday
Conversion Goals
Conversion goals let you measure how effectively your flow drives a desired outcome. You attach goals to a flow, and Synapse tracks how many contacts who entered the flow later perform the goal event.
Creating a Goal
- Open the flow and go to the Goals tab.
- Click Add Goal.
- Configure the goal:
| Setting | Description |
|---|---|
| Name | A label for this goal (e.g., "Completed Purchase") |
| Event Name | The event that counts as a conversion (e.g., purchase_completed) |
| Event Filters | Optional filters on event attributes (e.g., amount > 50) |
| Attribution Window | How long after entering the flow a conversion is counted (1--365 days, hours, or weeks) |
| Exit on Conversion | If enabled, the contact's trip ends when they convert (skipping remaining steps) |
Viewing Goal Metrics
Once a goal is set, the flow dashboard shows conversion rate, total conversions, and time-to-conversion for each goal.
Reordering Goals
Goals are displayed in a specific order. Drag to reorder, or use the reorder action in the API. The first goal is typically your primary conversion metric.
A flow can have multiple goals. For example, an onboarding flow might track both "Completed Profile" and "Made First Purchase" as separate conversion goals.
Version History
Every time you save changes to a flow, Synapse automatically creates a version snapshot of the previous state. This gives you a full audit trail and the ability to roll back changes.
Viewing Versions
- Open the flow and go to the Versions tab.
- Each version shows the version number, who made the change, a summary of what changed, and the timestamp.
Restoring a Previous Version
- Find the version you want to restore.
- Click Restore.
- Optionally add a note explaining why you are restoring.
You can only restore versions on flows that are in Draft, Paused, or Stopped status. If the flow is Active, pause or stop it first, then restore the version.
Restoring a version copies the version's configuration (name, trigger, steps, conditions, settings, tags) back to the flow and increments the version number. The current state is saved as a new version before the restore, so you never lose work.
Flow Tags
Tags help you organize and filter your flows. For example, you might tag flows by team (marketing, operations), by product (standard, premium), or by purpose (onboarding, retention).
Adding Tags
- When creating or editing a flow, add tags in the Tags field.
- Tags are free-form strings. As you type, Synapse autocompletes from tags already used on other flows in your workspace.
Filtering by Tag
In the flows list, use the Tag filter to show only flows with a specific tag. This is useful when you have many flows and want to find all flows related to a project or team.
Bulk Actions
When you need to change the status of multiple flows at once, use bulk actions.
Available Actions
| Action | From Status | To Status |
|---|---|---|
| Activate | Draft, Paused, Stopped | Active |
| Pause | Active | Paused |
| Stop | Active | Stopped |
How to Use
- In the flows list, select the flows you want to act on.
- Click the bulk action button (Activate, Pause, or Stop).
- The action is applied to each selected flow. Flows that cannot transition (e.g., pausing a draft flow) are skipped and reported as errors.
Exporting Flows
You can export your flows list as a CSV file for reporting or backup.
- Go to Flows in the sidebar.
- Optionally filter by search, status, or content type.
- Click Export.
The CSV includes: Name, Trigger Event, Content Type, Status, Version, Step Count, Tags, Created, and Updated dates.
Duplicating a Flow
To create a copy of an existing flow:
- Open the flow you want to duplicate.
- Click Duplicate.
- A new flow is created in Draft status with the name "(Copy)" appended.
The duplicate includes all steps, trigger configuration, settings, tags, and conversion goals from the original flow. It does not copy trip history or version history.
Next Steps
- Learn about the different Flow Step Types you can add
- Set up Monitoring to track how your flows perform
- Review Troubleshooting if something isn't working as expected
Looking for the API?
If you prefer to create and manage flows programmatically, see the Flows API Reference. For common automation patterns, see Flow Patterns Guide.