Flows overview

Beta Starter plan or higher Agent role or higher

A flow is a visual, button-driven conversation. You lay out nodes on a canvas — a greeting, some buttons, a question, a branch — and Relay runs that conversation with each contact who triggers it, one node at a time, waiting for their tap or reply where it needs to.

Flows are built for the moments a WhatsApp conversation should feel structured: a welcome menu that routes new versus existing customers, an FAQ picker, a few intake questions before a human takes over. They're available on every plan (Starter and up), and building or editing one needs at least the agent role — viewers can open a flow's Runs page, but can't create, edit or activate one.

When to use a flow

Reach for a flow when:

  • You want the customer to make a choice — tap a button, pick from a list — and the next message depends on what they picked.
  • You need to collect a few answers (name, email, order number) before routing the conversation onward.
  • The conversation should pause and wait for the contact's reply before continuing.

If you just need Relay to react to something automatically — tag a new contact, send one auto-reply, wait a day and follow up, call a webhook — that's a job for Automations instead. See "Which should I use?" below.

Flows vs Automations

Relay has two separate systems for automatic WhatsApp behavior. They look similar from a distance — both start from a trigger — but they solve different problems.

FlowsAutomations
ShapeA branching, per-contact conversation laid out as connected nodesA trigger followed by a straight list of steps
Starts onA keyword, a contact's first-ever inbound message, or manual onlyA wider set of events — new message, keyword match, new contact, tag added, and more
Waits for a reply?Yes — Send buttons, Send list and Collect input nodes pause the run until the contact respondsNo — a step list runs straight through (a Wait step can pause for a fixed amount of time, but not for a reply)
BranchesYes — each button, list row and If/else node has its own pathYes — a Condition step has yes/no branches
Typical useMenus, FAQ pickers, multi-step intake before a human takes overAuto-replies, tagging, assigning conversations, timed follow-ups, webhooks
Where you build itThe flow builder — Canvas or List viewThe automation step-list editor

Both systems can be active for the same contact at once, with one caveat: while a contact has an active flow run, the New Message and Keyword Match automation triggers are suppressed for their messages, so the flow doesn't get talked over. First Message from Contact and New Contact Created automations still fire normally. See How flow runs work for the exact rule.

Which should I use?

  1. Does the next message depend on what the customer picks or types? If yes, build a flow. If you're just reacting to an event without needing their input, build an automation.
  2. Does the conversation need to pause and wait for a reply more than once? Flows are built around waiting; automations aren't.
  3. Is it a single auto-reply, a tag, an assignment, or a timed nudge? That's almost always simpler as an automation.
  4. Not sure? Start with a flow if there's any branching driven by the customer's own choice. Start with an automation if you're describing a rule ("when X happens, do Y").
The Flows list page, showing three draft flow cards and the New flow buttonThe Flows list page, showing three draft flow cards and the New flow button
Every flow you've built lives here, with its status, trigger and run count.

What's in this section

For the other automatic-behavior system, see Automations overview.