Flow Blocks
Blocks are the steps that make up a flow. Add them from the Flow Editor, then connect them to define what happens next for each enrolled contact.
Each section below focuses on what the block type does, when to use it, which fields matter most, and the common validation problems to watch for.
Pause
Use Pause blocks to wait before the next flow step runs.
For a duration: Set an interval and choose Seconds, Minutes, Hours, or Days.
Until a specific date: Set the date and time when the contact should continue.
Until a day of week: Choose a weekday and optional time.
Until a day of month: Choose a calendar day and optional time.
Until the Nth weekday of the month: Choose the week, weekday, and optional time.
Resume Early After an Interaction
A Pause block can resume early when a selected interaction event is recorded. Choose the event types that should end the wait, then continue the contact through the next flow step.
Text Message
Use Text Message blocks to send SMS or text messages through a selected provider and selected template.
- Required at validation time: Block Name, From Phone, Provider, and Template.
- Provider-specific forms can appear when the selected connector needs extra inputs.
Use Email blocks to send an email through a selected provider and selected template.
- Required at validation time: Block Name, From Email, Provider, and Template.
- If there is an upstream email block, you can optionally set Reply to Block to continue the same thread.
- Email and Text Message blocks also support tracking overrides at the block level.
Conditional
Use Conditional blocks to send contacts down different paths based on engagement, contact data, enrollment data, tags, or consent status.
- Required at validation time: Block Name and at least one branch rule.
- For message-event rules, choose an earlier Email or Text Message block in Check Events From Block.
- Event rules can evaluate activity such as Opened, Clicked, Delivered, Bounced, Unsubscribed, Replied, and Sentiment.
- Data rules can evaluate contact or enrollment custom fields, tags, whether a contact has an email address or phone number, and email or SMS opt-in status.
- Combine rules within a branch with AND or OR logic.
- Available operators depend on the selected field type. For example, text, number, date, tag, and consent rules each use their own matching options.
- Contacts that do not match a branch continue through the Else path.
A/B Split
Use A/B Split blocks to divide contacts across weighted variants.
- Required at validation time: Block Name and Variants.
- Each Variant has a label and a percentage.
- You can add, remove, and reorder variants.
- Percentages must add up to 100 before the block saves successfully.
Connection
Use Connection blocks either to hand a contact into another flow or to call a webhook.
- Required at validation time: Block Name and Mode.
- Flow Enroll mode lets you choose a Target Flow and optionally Skip if contact already enrolled in target flow.
- Webhook mode lets you set the URL, HTTP Method, optional headers, optional JSON body template, authentication, timeout, and fail-on-error behavior.
- Confirmed authentication choices are: None, Bearer Token, Basic Auth, and API Key Header.
- Confirmed HTTP methods are: GET, POST, PUT, and PATCH.
- The webhook UI supports template variables such as contact and enrollment values in the request.
AI
Use AI blocks either to write and send a response or to analyze content and write the results back to a contact or enrollment.
- Required at validation time: Block Name, AI Provider, and Mode. The current UI labels are Write & Send Response and Analyze Response.
- Write mode uses a Message Prompt and can send through an Email or SMS provider. Email mode can also use From Email, Subject, and Reply in thread.
- Analyze mode can use an Input Variable or an Input Text Template, optional refine instructions, a write target of Enrollment or Contact, and optional custom-field mapping.
- Optional advanced fields include: Model, Max Tokens, and Fail enrollment if the AI call errors.
Notify
Use Notify blocks to send an email or text notification to fixed recipients. Unlike Email and Text Message blocks, Notify recipients are entered in the block instead of being taken from the enrolled contact.
- Required at validation time: Block Name, Provider, Template, ender, and at least one recipient.
- For email notifications, choose an active email provider, email template, and From Email address.
- For SMS notifications, choose an active SMS provider, text-message template, and From Phone number.
- Enter recipients as email addresses or phone numbers, separated by commas or new lines.
- Review flow history if a recipient does not receive the notification. A delivery problem for one recipient does not automatically mean every recipient failed.
End
Use End blocks to mark an intentional endpoint. They have no complex configuration beyond the block name.
Required Fields and Validation
The following fields are required to create each block type.
Pause: Block Name. Other required fields depend on the selected pause type.
Text Message: Block Name, Integration- From Phone, active template.
Email: Block Name, Integration- From email, and active template.
Conditional: Block Name. At least one branch rule. A source block is required only for message-event rules.
A/B Split: Block Name and variants that total 100%.
Connection: Block Name and mode.
AI: Block Name, active AI provider, and mode.
Notify: Block Name, provider, template, sender, and at least one recipient.
End: Block Name.
Rejected Connections
- Pause → Pause is rejected in the editor.
- Email → Email is rejected in the editor.
Examples
- Simple follow-up: Email → Pause for 2 days → Text Message → End.
- Branch on engagement: Email → Conditional on Opened or Replied → different follow-up paths.
- Handoff pattern: AI or Message step → Connection block to enroll the contact in another flow or post to a webhook.
Troubleshooting
A Provider or Template Is Missing
Only active providers and templates are available in message-based blocks. Activate the required record in Integrations or Templates, then reopen the block.
Related Documents: Integrations, Templates
A Notify Recipient Did Not Receive a Message
Confirm the recipient address or phone number is valid and the selected provider, sender, and template are active. Review History and Events for the delivery result.
Related Documents: History and Events
A Conditional Block Has No Source Block
A source block is required only for message-event rules. For contact data, enrollment data, tag, reachability, or consent rules, configure the relevant rule type instead.
A Pause Runs at an Unexpected Time
Check the flow timezone in Flow Settings. Time-based Pause blocks use the flow timezone, or the account timezone when no override is set.
Related Documents: Flow Settings
An A/B Split Will Not Save
Confirm that variant percentages total exactly 100%.
A Connection Block Is Failing
Review the target flow or webhook URL, authentication, headers, timeout, and fail-on-error setting.
A Block Still Appears Invalid
Save the flow, open the Errors panel, and complete the fields named in the current validation message.