Skip to content

Flows and WhatsApp numbers

Which WhatsApp numbers start a flow, which number a flow's messages are sent from, and how to set both when you have more than one number.

Three settings decide how a flow uses your WhatsApp numbers: the flow's Numbers (in Flow settings) say which numbers it answers at all, the trigger can narrow that further, and each message step decides which number it sends from. The Numbers page under Automation shows, for each number, which flow answers and why. If your organisation has a single WhatsApp number, the defaults just work and you can skip most of this page.

The numbers a flow answers

Open the flow and click Flow settings. Under Numbers, choose Which numbers does this flow answer?:

  • Only the numbers I choose: tick one or more numbers (up to 50). Messages on any other number never start this flow.
  • All numbers: every number of your organisation, including numbers you connect later. The dialog warns you, because a flow on every number can answer messages meant for another flow.

Click Save settings. The change applies to the live version straight away; you don't need to publish again. Changing it needs permission to publish flows; anyone who can see the flow can read it. The builder shows the choice under the flow's name as Answers on, and the flow list has an Answers on column.

A flow created before this setting existed answers on all numbers.

A trigger's own number setting (below) can narrow the flow's numbers but never widen them: a trigger ticked for a number the flow doesn't answer is refused at publish with "…is a number this flow does not serve".

The other way round, you can't take a number out of Numbers while a trigger in the live version still names it. The dialog says which number and what to do: open that trigger, untick the number, publish, then change the flow's numbers.

Which flow answers each number

Go to Automation → Numbers. Each WhatsApp number has a card showing:

  • whether it is Open now, Closed or on a Holiday right now, and when that changes, from the number's business hours. A number with no hours shows Always open and a Set hours link;

  • Which flow answers: the precedence ladder, top to bottom. The first rung that matches a message answers:

    1. Keyword: flows whose trigger listens for exact keywords, with the keywords shown. A keyword used by two flows on the same number is highlighted.
    2. Reply to a broadcast and Came from an ad or link, when a flow listens for them.
    3. Out of hours: a message while the number is closed or on holiday.
    4. Welcome: a new contact opens a chat.
    5. Default: anything nothing above caught. If no flow is here, the card warns that such messages get no reply.

    Before any rung, a flow waiting for this customer's reply carries on, and nothing starts while a person is handling the chat. When two flows sit on one rung, the one with the higher priority wins (see below).

Welcome, Out-of-hours and Default slots

The Out of hours, Welcome and Default rungs each have a slot for one flow. Click Choose a flow (or Change), pick a published flow that starts with Customer sends a message, set a Cooldown, and click Save:

  • Out of hours answers while the number is closed or on holiday. Its suggested cooldown is 12 hours, so a customer who writes five times at night is answered once.
  • Welcome answers a contact's first conversation on the number.
  • Default answers anything nothing above it caught, while the number is open. Its suggested cooldown is 1 hour, so the same menu isn't sent on every message.

The Cooldown stops the slot from starting its flow again for the same contact within that time. A slot whose flow is no longer published shows Not live — the next rung answers. To empty a slot, open it and click Leave empty. Changing slots needs permission to publish flows.

Set up an out-of-hours auto-reply

On a number with no Out-of-hours flow, click Set up an out-of-hours auto-reply. Edit the Reply, choose the Cooldown, and click Turn on auto-reply. IconEngage makes a flow named "Out of hours — number" (a customer message → your reply), answering only on that number and only while it is closed, publishes it and puts it in the slot. You can edit it later like any flow. If a step fails, the dialog says how far it got and links to the flow it made.

One flow answers each message

At the top of the Numbers page, One flow answers each message says how messages are matched:

  • On: each message starts one flow — the first rung of the ladder that matches, and on a tie the higher priority, then the flow published first. Tags, schedules and other background triggers still run alongside.
  • Off: every flow that matches starts, so one "hi" can get two replies.

New organisations start with it on. If your organisation existed before, it is off until you turn it on. Turning it on first shows, number by number, each message whose answer would change: which flow would answer (a slot's flow included) and which would stop, including a slot's flow that would answer where today nothing does. A flow whose When setting keeps it quiet at that moment isn't listed: it doesn't answer in either mode. Click Turn on to confirm. Changing it needs permission to publish flows.

With it on, nothing starts while a person is handling a chat, unless the keyword's trigger has Start even while a person is handling the chat turned on (useful for an "agent" or "stop" keyword).

Priority

In Flow settings, Priority (0–1000, 0 unless set) decides between two flows on the same rung of a number's ladder, such as two flows listening for the same keyword: the higher priority answers. It applies to the live version straight away. The builder shows it beside Answers on.

Warnings when you publish

Check for problems and the Publish dialog list things to check. They never stop you publishing:

  • "Keyword “hi” is also used by Sales bot (priority 50) on +91 98765 43210. Sales bot will win." Click Change this flow’s priority, or the link to see which flow answers that number. With One flow answers each message off, the warning says both start.
  • "+91 98765 43210 has no Default flow, so a message nothing else catches gets no reply." Click Choose a Default flow to go to the Numbers page.
  • "This flow answers on every number, including numbers you connect later." Click Choose its numbers to open Flow settings.
  • "+91 98765 43210’s slot starts this flow, but the flow’s Numbers leave +91 98765 43210 out." A slot starts its flow on that number whatever the flow's numbers say. Click Add +91 98765 43210 to its numbers, or put another flow in the slot.

Try a message

Each card has a Try a message box. Choose The customer sends: A message (type it, or leave it empty for a photo) or A button reply (type the button's id). Click Try. Nothing is sent or started; IconEngage runs the same matching it uses for real messages and tells you:

  • which flow answers, and the keyword it matched, or No flow answers this message;
  • why, in a few sentences;
  • Every flow that matched, with whether each starts and, if not, why (for example, a flow higher up the ladder answers first, or a person is handling the chat).

With One flow answers each message off, every flow that matches starts, so the box warns when more than one would. Try as a particular contact checks a real contact's situation too, such as a flow waiting for their reply.

Which numbers start the flow

These triggers have a number setting: Customer sends a message, Conversation opens, Customer opened the chat, Intent detected, Conversation attributed, Customer sends a cart, Payment received, Payment failed and Cart abandoned.

In the trigger's settings, the box is headed Only messages to these numbers (or Only conversations on these numbers / Only chats opened with these numbers). It lists every connected number as "number — display name".

  • None ticked (the default, shown as Every number): the trigger fires on every WhatsApp number of your organisation, including numbers you connect later.
  • Some ticked: the trigger fires only for those numbers. You can tick up to 50.

If a ticked number is later disconnected, it stays ticked and is shown by its ID, so the trigger doesn't silently widen to every number.

These triggers have no number setting, because they aren't about a conversation: Tag added to a contact, Tag removed from a contact, Contact field changes, Webhook received, On a schedule and Started by a person.

Tip: To run a different flow on each number, set each flow's Numbers in Flow settings. If two live flows match the same message on a number, both start; check with Try a message on the Numbers page.

Which number a message is sent from

Send a message, Send a template, Send buttons, Send a list and Ask a question each have a Send from setting.

  • Not chosen (the default): the step replies on the number the conversation is on, that is, the number the customer wrote to (or the conversation the trigger was about).
  • A number chosen: the step sends to the contact from that number.

Assign, Hand over to a person, AI agent, Send products and Send a payment link have no Send from setting. They always act on the run's conversation.

When you must choose a number

Some triggers start a run with a contact but no conversation: Tag added to a contact, Tag removed from a contact, Contact field changes, Webhook received and Started by a person. In a flow that starts this way, the first message step on each path must have Send from chosen, or publishing is refused with "Set the sending number".

After that first message is sent, the run has a conversation (on that number), and later steps without Send from reply in it. Assign, handover and AI steps placed before any message has been sent have no conversation to act on, and are refused with No conversation when the run reaches them, so put a message step first.

Tip: From these triggers, the customer may not have written to you recently, so the 24-hour window is often closed. Start with Send a template.

On a schedule runs have no contact at all, so they can't send messages, whatever number you choose.

Templates and the sending number

A template belongs to one WhatsApp Business account. In Send a template, choose Send from first:

  • With a number chosen, the Template list shows only "Approved templates of" that number's account.
  • With no number chosen, the list shows templates from every account, labelled by account. At run time the template is sent from the conversation's number, so make sure it is approved on that number's account.

If you pick a template that isn't approved on the chosen number's account, the step warns you and publishing is refused.

Tests and numbers

A test needs a conversation between the test contact and your business when the flow replies in a conversation. The test uses the test contact's conversation on the trigger's numbers (an open one first, otherwise the most recent). If there is none, send any message from the test phone to your business number, then start the test again.

Business hours in a flow

Every WhatsApp number keeps a set of business hours: its own, or the organisation default (see Business hours and holidays). The Business hours step, in the Decide group, asks those hours whether you are open at the moment the run reaches it.

Whose hours chooses where the answer comes from:

  • This number's hours (the default): the hours of the number the customer wrote to. A number with no hours of its own and no organisation default is treated as always open, so the step leaves by open. A run with no conversation (for example, one started by a tag) also leaves by open.
  • A schedule: the same named schedule whichever number the customer wrote to. The step shows that schedule's live status, such as Open now · closes 18:00.
  • A department's hours: the opening times and holidays of a team under Teams & Routing.

Exits: open; closed; holiday (optional: left unconnected, a holiday goes the closed way). open and closed must be connected to publish.

Two variables become available after the step, listed in the builder's Variables panel under Set by steps in this flow and in the Insert a variable list:

VariableHolds
{{next_open_at}}When you open next, in the schedule's timezone. Set when the step leaves by closed or holiday; empty if you don't open within the next year.
{{holiday_name}}The holiday's name, such as "Diwali". Set when the step leaves by holiday.

Tip: The Away hours template is a ready-made out-of-hours reply: Customer sends a message → Business hours → a closed reply and a holiday reply that say when you open next. Set your hours first, then apply the template.

Examples

You wantSet up
Auto-reply on your only numberCustomer sends a message, numbers left unticked; message steps with Send from not chosen.
Different menus on your sales and support numbersTwo flows, each with Customer sends a message ticked for one number.
Message a contact when they get the tag "VIP"Tag added to a contact, then Send a template with Send from set to the number you want to use.
Reply differently when you are closedStart from the Away hours template; its Business hours step reads each number's own hours.

Still need help?

Write to us at [email protected] and tell us what you were trying to do. Already a customer? Sign in to IconEngage — the same articles are under Help in the app.