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.

Flow Editor Add Block menu showing the available block types.

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.
Note
Time-based Pause blocks use the flow’s selected timezone. If the flow does not have a timezone override, Drip Drop uses the account timezone. Review Flow Settings before building time-based waits.

Resume Early After an Interaction

Turn on Resume early on interaction and select the events that can end the wait. The next block must be a Conditional whose non-Else branch matches the interaction. If only the Else branch matches, the contact remains paused until the scheduled time.

Warning
Use early resume only when an interaction should take priority over the scheduled wait.

Use Text Message blocks to send SMS messages through a selected Integration and Template.

  • Required: Name, Integration, From Phone, and Template.
  • Some Integrations display additional fields after selection.

Use Email blocks to send email through a selected Integration and Template.

  • Required: Name, Integration, From Email, 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.

Use Conditional blocks to send contacts down different paths based on engagement, contact data, enrollment data, tags, or consent status.

  • Required: Name and at least one configured branch.
  • For an event rule, choose an earlier Email or Text Message block under Source block, then select the Event and Operator.
  • Event rules for email can evaluate Opened, Clicked, Delivered, Spam Report, Bounced, Deferred, Unsubscribed, Replied, and Sentiment. Text-message rules support Delivered, Replied, and Sentiment. Opened and Clicked appear only when the selected email block has the corresponding tracking enabled.
  • 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.

Use A/B Split blocks to divide contacts across weighted variants.

  • Required: Name and at least two 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.
A/B Split block configured with variants A and B at 50% each.

Use Connection blocks to enroll a contact in another flow or call a webhook.

  • Required: Name and Mode. Flow Enroll also requires a Target Flow; Webhook requires a URL.
  • 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.
  • Authentication options are None, Bearer Token, Basic Auth, and API Key Header.
  • HTTP method options are GET, POST, PUT, and PATCH.
  • Webhook requests support template variables, including contact and enrollment values.

Use AI blocks to write and send a response or analyze text. Write & Send Response sends a generated email or SMS. Analyze Response extracts the values you define without sending a message.

Write & Send Response

  • Enter the generated-message instructions under Message, then select a Sending Integration and either From Email or From Phone.
  • For email, Subject and Reply in thread (optional) are optional.
  • For either AI mode, you can choose Model (optional), set Max Tokens (optional), or turn on Fail enrollment if the AI call errors.

Analyze Response

Use Analyze Response to extract structured information from text without sending a message.

  1. Under Mode, select Analyze Response.
  2. Select an AI Integration. You can also choose Model (optional), set Max Tokens (optional), or turn on Fail enrollment if the AI call errors.
  3. Under Input, choose the Text to analyze:
    • Latest reply from the contact
    • Conversation so far
    • A custom field
    • Rendered template
  4. Complete the field shown for the selected source:
    • For Conversation so far, set Messages to include. Drip Drop includes the selected number of recent messages in oldest-first order, up to 20.
    • For A custom field, choose the Field to read.
    • For Rendered template, enter the Input Text Template.
  5. Under Results, enter a Results Key. This identifies the block’s results for later templates and Conditional blocks.
  6. Under What to extract, select Add Output for each value you want the AI to return:
    • Enter a Label and Key.
    • Choose a Type: Text, Long Text, Integer, Decimal, Yes / No, Date, Date & Time, Email, URL, or Single Choice.
    • For Single Choice, add the allowed Choices.
    • Optionally complete Instructions (optional) or select Save to custom field.
  7. Optionally use Refine Instructions (optional) to provide instructions that apply to the entire extraction.
  8. Under Try it out, paste Sample text, then select Run Test. The test displays the extracted values without saving them.
Warning
After saving the block, changing its Results Key breaks template variables and Conditional rules that use the previous key.

Use analysis results

  • In a message template, insert {{ ai.<results_key>.<output_key> }}. Replace <results_key> with the block’s Results Key and <output_key> with the output’s Key.
  • In a downstream Conditional block, add an AI Analysis condition. Select the upstream AI block, choose its Output, select an Operator, and enter a comparison value when required.
  • AI Analysis is available only when an upstream AI block uses Analyze Response and defines at least one output.

Use Notify blocks to send email or SMS notifications to fixed recipients. Unlike Email and Text Message blocks, Notify recipients are entered directly in the block rather than taken from the enrolled contact.

  • Required: Name, Channel, at least one Recipient, an Integration, a Template, and either From Email or From Phone.
  • For Email, choose an active email Integration, an active email Template, and a From Email sender.
  • For SMS, choose an active text-message Integration, an active text-message Template, and a From Phone sender.
  • Enter an email address or phone number, then press Enter or type a comma to add it to the Recipients list.
  • Review Flow History if a recipient does not receive the notification. A delivery problem for one recipient does not automatically mean every recipient failed.

Use End blocks to mark an intentional endpoint. They have no additional configuration beyond Name.

The following fields are required to create each block type.

Pause: Name. Other required fields depend on the selected pause type.
Text Message: Name, Integration, From Phone, and an active Template.
Email: Name, Integration, From Email, and an active Template.
Conditional: Name and at least one configured branch. Event rules also require a Source block.
A/B Split: Name and at least two labeled variants. Each variant must have a percentage greater than 0, and all percentages must total 100%.
Connection: Name and Mode. Flow Enroll also requires a Target Flow. Webhook requires a URL.
AI: Write & Send Response: Name, an active AI Integration, a Message, a Sending Integration, and either From Email or From Phone.
AI: Analyze Response: Name, an active AI Integration, a Text to analyze source, a Results Key, and at least one output with a Label, Key, and Type.
Notify: Name, Channel, at least one Recipient, an Integration, a Template, and either From Email or From Phone.
End: Name.
  • Pause → Pause is rejected in the editor.
  • Email → Email is rejected in the editor.
  • Simple follow-up: Email → Pause for 2 days → Text Message → End.
  • Branch on engagement: Email → Conditional checking Opened or Replied → different follow-up paths.
  • Handoff pattern: AI, Email, or Text Message → Connection to enroll the contact in another flow or call a webhook.
An Integration or Template Is Missing

Message-based blocks list only active integrations and active templates. Open Integrations to activate the integration or Message Templates to activate the template, then reopen the block.

Related Documents: Integrations, Templates

A Notify Recipient Did Not Receive a Message

Confirm that the recipient address or phone number is valid, that the selected Integration and Template are active, and that the selected From Email or From Phone sender is still available. Review Flow History for each recipient’s delivery result.

Related Documents: Flow History

A Message Event Rule Has No Source Block

Only Message Event rules require a Source block. Custom Field, Tag, and Contact Info rules do not.

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 there are at least two labeled variants, each percentage is a whole number from 1% to 99%, and the total is exactly 100%.

A Connection Block Is Failing

For Flow Enroll, confirm a Target Flow is selected. For Webhook, verify the URL, Authentication, Headers, Timeout, and Fail enrollment if webhook request fails settings.

An Analyze Response Block Is Failing

Confirm that an AI Integration is selected, the Text to analyze source contains text, the Results Key is set, and every output has a valid Label, Key, and Type. The selected provider and model must support structured output.

If the returned values do not match the configured types or Choices, Drip Drop retries once. If the retry fails, Drip Drop records the error and writes no analysis results or custom-field values. The flow continues unless Fail enrollment if the AI call errors is turned on.

A Block Still Appears Invalid

Save the flow, open Errors, and complete the fields listed in the current validation message.