Message Sequences

Last updated

A message sequence is a reusable set of follow-up messages that go out step by step — reminders, check-ins, nudges — each with its own timing and conditions. Where a blasting is one broadcast to many people at once, a sequence follows up with one customer over time, automatically.

Open Settings → Message Sequences and click Add message sequence.

Message Sequences

Watch the walkthrough

Triggers — when a sequence starts

  • Manual — applied by your automation rules (e.g. when a conversation gets a certain label) or by inbound webhooks. The Started by column shows which ones, and whether each is on.
  • Inactivity — starts when a conversation handled by the selected flow agents goes quiet.
  • Appointment booked — starts when a booking lands on one of your calendars, so you can send confirmations, reminders before the appointment, and follow-ups after it.

While the AI agent is paused on a conversation (after a handoff, a teammate’s reply, or a pause from the conversation), its sequence messages respect the pause. A message due during a pause with an end time goes out when the pause ends. With a pause that lasts until someone resumes the agent, the message is skipped and a line in the conversation says so: Follow-up skipped — the AI agent is paused on this chat until someone resumes it. Sequences started by Appointment booked still send, so customers always get their booking reminders.

Steps — what goes out, and when

Each step holds one or more messages (with media attachments if you like, within the picture and file size limits) and its own timing, set under When to send:

  • After a delay — e.g. 2 days after the previous step (or after the sequence starts, for the first step). A delay of 0 sends the step straight away — on the first step, the moment the sequence starts.
  • At a specific time — pick the time, then the day: Today, Tomorrow, X days later, On a date, or a day counted from the sequence’s event date (see below).
  • Before a date attribute — before or after a contact date attribute, or the appointment time for booking-triggered sequences (at booking, before the appointment, after the appointment).

Sending on an exact date

Choose At a specific time, enter the time, choose On a date and pick the date. Everyone in the sequence gets that message on the same day, no matter when they joined — useful for launch days, holidays and other date-tied announcements.

Anyone who joins the sequence after that date and time has passed skips the step, so nobody gets a stale announcement. The rest of the sequence still runs.

Timing steps around an event date

For a webinar, a launch or a class, give the sequence an event date and time its steps around it. Reuse the same sequence for the next session by changing one date.

  1. In Setup, set the Event date.
  2. In a step’s When to send, choose At a specific time and pick the hour.
  3. Choose X days before the event, On the event day or X days after the event, and enter the number of days. The date the step will send on shows beside it.

A step counted from the event can’t be saved until the sequence has an event date. When you change the event date, everyone who enters the sequence from then on gets each message on its new day. Someone who enters after a step’s send time has passed skips that step.

These event options are not offered on sequences triggered by Appointment booked or Store order event — those steps count from the appointment or the order instead.

Timing a step from a contact date

Send a step a set time before or after a date saved on the contact — a payment date, a renewal, a visit.

  1. In a step’s When to send, choose Before a date attribute.
  2. Enter the amount and unit, choose before or after, and pick the contact attribute. Date and Text attributes are both listed.
  3. Choose how to read a date saved without a time zone: Workspace time (the default) or UTC. A date saved with its own time zone is always read as that exact moment.

A step sent 1 day before the contact's Pay date, read in workspace time

The date on the contact must be written year first (YYYY-MM-DD) or day first (DD/MM/YYYY), optionally followed by a time such as 15:00. A date without a time counts from midnight. Other formats, such as a two-digit year (10/30/26), are not guessed.

When the contact has no date, or a date the sequence can’t read, that step is not sent and a line in the conversation says why (see below). Unreadable dates also reach your workspace administrators, in at most one email an hour. A date that has already passed skips the step.

Use what the customer already told your flow agent

A step can use the answers your flow agent collected in the conversation — the customer’s car model, city, budget or any other field your flow asks for.

  1. In a step’s message, type {{.
  2. Under Flow agent answers, pick the field (for example car_model). It shows as {{conversation.flow.car_model}} and is replaced with the customer’s answer when the message sends.
  3. Under the message, If the customer hasn’t answered, send instead lists every answer the message uses. Type what to send when the customer never gave that answer — for example “your car”. Leave a box empty to send nothing in that spot.

A sequence step using a flow agent answer, its fallback box and the Skip what the customer already answered switch

The same answers are offered under Fill variables for the WhatsApp template, with the same boxes underneath.

Skip what the customer already answered

Customers often answer part of a follow-up before it goes out — they send the car year, or the photo you were about to ask for. Turn on Skip what the customer already answered (AI) on a step, and right before the step sends, AI reads the conversation and the flow agent’s answers and removes the requests the customer has already answered.

  • If the message asks for the car year and a photo and the customer already gave the year, only the photo request goes out.
  • If the customer already gave everything the step asks for, the step isn’t sent. A note in the conversation tells your team it was skipped.
  • It only removes words — it never adds or changes anything. When it isn’t sure a request was answered, the request stays.

The switch is off for every new step. It applies to regular messages; a WhatsApp template sent outside the 24-hour window always goes out exactly as approved.

Let the lead tap a button to reply

On WhatsApp official numbers, a step can end with up to three buttons, so the lead replies with one tap instead of typing.

A Send a Message step with three buttons under its text

  1. On a Send a Message step, click Add buttons next to Add message and Attach media.
  2. Type each button’s text, up to 20 characters. Click Add button for a second and a third.
  3. On a language tab, type that language’s text for each button. A box you leave blank sends the default text.

What the lead gets:

  • The buttons sit under the step’s last text message. A step with only a photo or file gets no buttons.
  • A tap sends the button’s text into the chat as the lead’s reply, exactly as if they had typed it, and your flow agent answers it the same way.
  • Outside WhatsApp’s 24-hour window, the step’s WhatsApp template goes out instead, with its own buttons if it has any.
  • Other channels (Facebook, Instagram, WhatsApp Business App numbers, website chat) receive the message text only.
  • With Skip what the customer already answered on, a shortened message keeps its buttons.

WhatsApp allows at most 1,024 characters in a message with buttons. The editor counts the characters under the buttons and won’t save a longer message: shorten the text or remove the buttons. If contact details filled into the text make it longer when it sends, the message goes out as plain text without buttons.

The warning shown when the message above the buttons is too long

Only send if…

Every step can carry conditions, checked right before that message goes out — conversation language, current date, and more. If the conversation doesn’t match, that message is skipped and the rest of the sequence continues.

To follow up differently with customers who came from an ad, use Came from an ad or post. It is True when the customer reached you by tapping a Facebook or Instagram ad or post, on WhatsApp, Messenger or Instagram, and False when they messaged you directly. Which ad or post doesn’t matter.

A step's Only send if row set to Came from an ad or post Equal to True

For example, give one step Came from an ad or post Equal to True with the wording for ad leads, and the next step Equal to False with your usual wording. Each customer receives only the version that fits them.

Only send to some lead statuses

To send a step only to leads in chosen Pipeline columns, use Lead status. For example, Lead status Is any of New, Hot lead keeps a booking nudge for leads that are not rated yet or are ready to buy. See Filter conditions and operators for every value.

A step's Only send if row set to Lead status Is any of New, Hot lead

When a step’s conditions don’t match, a note in the conversation tells your team which step was skipped. If the step checks Lead status, the note also gives the lead’s status at that moment. Your customer never sees it.

A note in the conversation: Follow-up skipped, step 2 of the Hot lead follow-up message sequence did not match its Only send if conditions. Lead status now: Warm lead.

WhatsApp’s 24-hour window

If a step may deliver outside WhatsApp’s 24-hour reply window, attach an approved WhatsApp template to the step with Add WhatsApp template for closed window — the sequence automatically uses the template when the window is closed, so the message still arrives. The template’s text shows in the conversation and in the conversation list, like any other message.

Under Fill variables, fill each of the template’s variables: type the text to send (for example the session date and time, exactly as it should read), or type {{ to insert a contact or conversation attribute, or a flow agent answer. You can mix both in one variable.

You can also control repeats with Allow again after — how many days must pass before the same message can be sent to the same conversation again.

Send in each customer’s language

A sequence can carry a version of every message in each language your AI persona speaks. Customers receive the version that matches the language they chat in; everyone else receives the default language.

Message sequence language versions

  1. Write the sequence in your default language as usual.
  2. Above the steps, pick a language from Add a language…. The list mirrors the languages in your AI persona settings (Flow Agents → AI Knowledge → Tone & persona).
  3. On the new language tab, each message shows the default text as a reference with an editor beneath it — write that language’s version there, and the same for each button’s text. Timing, conditions, media, the message list and which buttons a step has are shared, so you change them on the default tab.
  4. If a step has a WhatsApp template, pick that language’s template too with Pick a … template; until you do, the default template is used.

A message you leave blank in a version simply sends the default text, and the tab shows how many messages are still untranslated. In Setup → Language, choose the Default language — the one everyone else receives. Once a version is fully translated you can make it the default, which swaps it with the current default message by message. Remove a version with the trash icon next to its tab.

If a language is later removed from your AI persona settings, its tab shows inactive: the text is kept, but customers won’t receive it until the language is added back.

Turn a sequence off or on

Every row on Settings → Message Sequences shows the sequence’s state in the Active column: Off, Testers only or Live. Click it and pick another state. A new sequence starts Off, so nothing goes out until you switch it on.

Off, Testers only and Live on a message sequence row

While a sequence is Off:

  • Nothing starts it: not its trigger, and not an automation rule or inbound webhook that applies it.
  • Messages it has already scheduled are skipped and never sent.

You’re asked to confirm before it switches off.

Confirming that a message sequence should be switched off

Switch it to Live and the sequence starts on new conversations again. Messages skipped while it was off are not sent later.

Try a sequence on your testers first

Switch a sequence to Testers only and it runs for your workspace testers and nobody else, so you can see every follow-up arrive on a real channel before customers do. The dialog shows the Workspace testers list; add a tester there if you need to, then click Switch. It is the one list under Settings → Account Settings → Testers, shared with your flow agents and automation rules — see Account (general) settings.

Switching a message sequence to Testers only

While a sequence is Testers only:

  • It starts only on conversations with a tester, whatever applies it — a rule, an inbound webhook, a booking or its own trigger.
  • Messages already scheduled for anyone else are skipped, so switching a live sequence to Testers only stops its follow-ups to customers.
  • The Started by column marks a rule that is itself Testers only (see below).

You need at least one tester on the list before you can switch. When testing is done, switch the sequence to Live.

See what starts a sequence

A Manual sequence only starts when an automation rule or an inbound webhook applies it. The Started by column on Settings → Message Sequences shows which ones do, and whether each is switched on.

The Started by column on the Message Sequences list

  • On — the automation rule or inbound webhook is switched on, so it can start the sequence.
  • Off — it is switched off and starts nothing until you turn it back on.
  • Testers only — the automation rule runs for your workspace testers only, so it starts the sequence just for them.
  • If everything that applies a sequence is switched off, or nothing applies it, an orange line under the list says the sequence never starts.
  • Sequences with their own trigger, such as Inactivity, show the trigger’s name instead.

The same list appears under the Manual trigger when you edit the sequence.

The Started by list under the Manual trigger in the sequence editor

If a follow-up isn’t going out, check this first. Administrators can click a name to go to Settings → Automation (or straight to that inbound webhook) and switch it on. A rule only starts the sequence for changes made after it is on, so after switching it on, apply the label (or the change the rule waits for) again.

See in the chat when a sequence starts

Each time a sequence starts on a conversation — from an automation rule, an inbound webhook, or its own trigger such as Inactivity — a line in the conversation says what happened:

  • started — next follow-up … — the sequence started. The time is when its next message goes out, in your workspace’s time zone.
  • not started again — this chat is already in it — the conversation already has this sequence’s messages sent or waiting, so nothing new is scheduled. The line still shows when the next one goes out.
  • not started again — this chat has already received every step — every message was already sent to this conversation, and Allow again after does not allow a repeat yet.
  • step … not scheduled — the contact’s date for a step is missing or can’t be read, so that step won’t send. The line names the date attribute and the value it found. Fix the date on the contact, then start the sequence again for that chat.

Lines in a conversation when a label starts a message sequence, and when the label is added again

Lines in a conversation when a step's contact date is missing or can't be read

Removing a label and adding it again does not restart a sequence the conversation is already in. To test a sequence from its first step, use a new conversation.

Duplicate a sequence

Need a variation of a sequence you already have — new wording, a second audience, a seasonal version? On Settings → Message Sequences, click the duplicate icon on the sequence’s row. You get a new sequence named “… (Copy)” with every step, timing, condition, and setting carried over. A copy of a sequence that is switched off starts off too.

The copy never sends anything on its own: it keeps the trigger type, but you choose the flow agents or calendars again before it goes live — so duplicating a live sequence never causes double sends. Edit what you need, pick the targets, and save.