Skip to main content
This page explains the mental model behind Flow Builder. Read it once, then build faster with fewer redesigns.

Deterministic paths

A Flow is a directed graph. Each block does one thing, then continues along a connected output. The same inputs produce the same outputs. That makes Flows ideal for:
  • Compliance-sensitive scripts
  • Menus and FAQs with fixed answers
  • Qualification, booking, and checkout steps
  • Any process where every branch is known
When input does not match a branch, design an explicit fallback (condition else-path, Default Reply, or handoff). Do not assume the contact will type a perfect keyword.

Contact context

Every run is tied to a Contact. As the Flow executes, it can:
  • Read system fields (first_name, phone, channel, …)
  • Read and write custom user fields
  • Apply or remove tags
  • Move cards in a Pipeline
Data written mid-Flow is available to later blocks in the same run and to future Flows, Agents, and broadcasts.

Personalization

Insert contact data in messages with double curly braces:
If a field is empty, the placeholder may render blank — set defaults on the field or guard with a Condition before sending.

Omnichannel vs channel-specific

Prefer Omnichannel message types when the same content should run on multiple channels. Use channel-specific blocks only when you need a capability that does not translate (for example, WhatsApp interactive lists or Messenger cards). Test each target channel. Media formats and button limits differ — see Messages and media and Limits.

Draft vs published

Saving edits does not publish them. Always publish after a verified test.
Publishing swaps the live graph for contacts already inside the Flow. Plan breaking changes with a duplicate Flow and staged cutover.

Modular design

Keep Flows small and purposeful. Use Go to Flow to chain a parent orchestrator into specialized child Flows (payment, FAQ, human handoff). This stays under the 250 blocks per Flow limit and keeps ownership clear.

Escape hatches

Next

Builder

Learn the canvas controls.

Collect data

Capture answers into custom fields and tags.