Workflow guides

One page per trigger and per step, written against what the builder actually does — including where each one fails and what it will not do for you. Every page has a plain Markdown version at the same address with .md on the end, for pasting into an AI assistant.

Start here

  • Workflows: how a flow runs

    A workflow is one trigger, optional conditions and an ordered list of steps; only a published workflow runs, and this article explains how a run starts, forks, pauses, fails and stops.

  • Workflow triggers

    The 34 events a workflow can start from — what each one actually watches, what it exposes to conditions and messages, and where it quietly does nothing.

  • Conditions and variables

    How a condition decides whether a workflow starts or which path a contact takes, and how a {{variable}} is filled into the text a workflow sends.

  • Avoid workflow loops

    What already stops a flow from re-triggering itself, and the two hard caps — on Jump To and on Trigger Another Workflow — that stop a deliberate loop from running forever.

  • Test and publish a workflow

    Plan a workflow's path against a pretend conversation without sending anything, then publish it — and know what Publish refuses, what it only warns about, and what it locks.

  • Build a workflow with AI

    Describe a flow in plain words and the assistant drafts it for you to review: the draft sits in the side panel until you put it on the canvas, nothing is saved until you press Save, and nothing runs on customers until the workflow is published.

Messaging steps

  • Send a Message

    Send free-form text — with several attachments if you need them, on the customer's own channel or a named one — inside the messaging window that channel currently has open.

  • Send WhatsApp Template

    Reach a WhatsApp customer with an approved Meta template regardless of whether the messaging window is open, checked for approval and marketing consent before anything is sent.

  • Request WhatsApp Contact Info

    Show WhatsApp's native Share Contact Info button so a username-only chat can give you a real phone number to message on.

  • Ask for Marketing Consent

    Ask with a Yes/No button pair inside an open conversation; a tap records the contact's decision, which every future marketing template send reads.

  • Send a File (voice / image / video)

    Send up to 5 voice notes, images, videos or documents from a public URL, in numbered order, inside the channel's current messaging window.

  • Send Products (WhatsApp catalog)

    Send WhatsApp product cards from the number's own Commerce Manager catalog — one product, a list of up to 30, swipeable cards, or the whole catalog — so the customer can add to cart from inside the chat.

  • Private Reply to Comment

    Send the one private DM Meta allows in answer to a Facebook or Instagram comment, with an optional public reply posted under it.

  • Start a WhatsApp Chat (new number)

    Open a WhatsApp thread with a number a flow just learned — a Messenger lead who typed it, a form, a webhook — using an approved template, since no messaging window is open yet on that number.

  • AI Reply

    Hand this one turn to the thread's AI agent — the same generation and confidence gate as an inbound auto-reply — then continue the flow with what it decided.

Logic steps

  • Ask a Question

    Ask, then pause the whole run until the customer answers or a deadline passes — with typed answers matched deterministically against a fixed set of choices, never guessed by a model.

  • Condition

    Split the run into up to twelve lanes plus a None lane, checked top to bottom — the first lane whose conditions all pass wins, and Condition tests one field against one value at a time.

  • Jump To

    Send the run straight to another step already on the canvas, forward or backward, capped by a per-step limit so a deliberate loop cannot run forever.

  • Date & Time (business hours)

    Route the run down an Open or a Closed path depending on business hours or a date range, checked the instant the step runs, with no branch treated as a dead end.

  • Wait

    Pause the run for a set duration or until a time of day, optionally held to business hours or to a daily window so a customer is never messaged in the middle of the night.

  • Trigger Another Workflow

    Hand the conversation to another published workflow, from its first step or a chosen one, so a large design can stay several small workflows instead of one long flow.

  • Check Instagram Follow

    Ask Instagram whether this person follows your account, so a later Condition step can route follower-only offers.

  • Randomizer (A/B split)

    Send each contact down exactly one of several weighted lanes at random, using a fixed per-contact draw so the same contact keeps landing in the same lane as long as the step and its weights stay put.

  • Quote / confirm order

    Compute a price quote from a fixed, built-in product-and-shipping catalog collected by earlier Ask a Question steps, then optionally record the order and send the customer a receipt.

  • Remove from Workflow

    Cancel this conversation's pending waits — the step that stops a reminder chase the moment the contact replies or pays, before the next one is due.

  • End

    Stop the run right here — including whatever sits further out than the lane the End step is nested in, such as a Condition branch or a Date & Time branch.

Conversation steps

  • Assign To (human)

    Hand the conversation to one named teammate, or spread it across the workspace by round robin or fewest open contacts, with an optional timeout message if nobody answers.

  • Assign To (team)

    Route the conversation into a team's queue, and optionally also hand it straight to one member of the workspace by round robin or fewest open contacts.

  • Assign To (AI)

    Pin the conversation to one named AI agent for its next replies, overriding whatever would otherwise decide which agent answers.

  • Open / Close Conversation

    Move the conversation to Open, Pending, Snoozed or Closed. A close can carry a closing-note category and summary that only this step sets, and can send the same CSAT survey the Inbox's close button sends.

  • Add Comment

    Leave a note on the conversation's timeline for agents — never sent to the customer — with an optional @mention to notify a teammate or the assignee.

  • Escalate

    Pause the AI on this thread and page a human right now — the safety net at the end of a path the AI could not, or should not, finish alone.

  • Pause AI / Unassign

    Silence the AI on this conversation and clear its agent binding, with no page, no note and no message — a quiet, workflow-internal hold meant to be lifted by a later Assign To (AI) step.

  • Tag Conversation

    Add one or more tags to this conversation — read by saved views as a fallback when a contact tag doesn't match, and gone once the thread is.

  • Untag Conversation

    Remove one or more tags from this conversation — the other half of Tag Conversation, so a flow can clear a state it no longer applies.

  • Create a Task

    Put an item with the thread attached onto the workspace's Tasks list — the thing that survives the end of a shift, which an internal note does not.

Contact steps

  • Save to Contact Field

    Write a value onto one of this workspace's custom contact fields, so an answer collected in the conversation lives on the record instead of only in the transcript.

  • Tag Contact

    Add one or more tags to the person behind this conversation — what the contact sidebar, Contacts filters, segments and broadcasts all read, and what a pipeline stage can watch for to move a deal.

  • Untag Contact

    Remove one or more tags from the person behind this conversation — clears the old state when someone moves forward, so a segment or broadcast stops targeting them for it.

  • Update Lifecycle

    Move the contact to another lifecycle stage, or clear the stage entirely — what the dashboard's lifecycle counts read, and what a pipeline stage can watch for to move a deal forward.

  • Mark Booking (no-show / completed)

    Finalise this conversation's appointment as completed, a no-show or canceled — the same move the /bookings page's own buttons make, so a webhook or a question the customer answers can record it automatically.

  • Register for Event

    Add this contact to an event's list, which is what makes them eligible for its reminders — a named event, or the next published one coming up.

  • Record Attendance

    Write the outcome — attended, no-show or canceled — onto this contact's event registration, with an optional minutes-attended figure for engagement grading.

  • Move Deal to Stage

    Open this contact's deal in a pipeline stage, or move it if one is already open — one fact from the funnel's point of view, with an optional amount and a guard against re-opening a deal someone has since moved.

Integration steps

  • Send Conversions API Event

    Report a conversion — a lead, a purchase, a cart — to Meta's Conversions API from this conversation's channel, so ad optimisation can see what happened after the click.

  • Send TikTok Lower Funnel Event

    Meant to report a lower-funnel event — Place an Order, Complete Payment or one of four others — to TikTok for ad attribution. Not wired up yet: every attempt fails and nothing reaches TikTok.

  • HTTP Request

    Call an outside API over HTTPS and keep its response for later steps and conditions. Two things to know before using it today: placeholders in the URL and body are not resolved, and production had no host on its outbound allow-list at the time of writing — see Limits.

  • Add Google Sheets Row

    Append one row to a connected Google Sheet — the cheapest way to hand data from a conversation to a team that lives in a spreadsheet.