How WhatsApp flows work

A flow is a WhatsApp automation that runs once for each person: something starts it, then it waits, checks, sends and tags for you. Use one to answer keywords without AI, follow up a broadcast, welcome a new lead, remind a guest before they arrive, or hand a hot lead to your sales team.

The short version

  • Open Flows in Sonar, press New flow, and pick a ready-made start or begin from scratch.
  • Choose what starts it: a tag, a broadcast, a number of days after someone opted in, a date in their contact details, or a message with certain words.
  • Add steps: wait, check (If), send a message, reply with text, tag, or stop.
  • Switch it on. Each person goes through the flow once, and you can see who is waiting, finished or stopped in its People list.
  • Sonar keeps every flow inside WhatsApp's rules and POPIA: no messages to people who opted out, nothing overnight, and a weekly limit per person.

What starts a flow

  • Someone gets a tag. For example "Booking started" or "Marlow: wants sales". Tags come from your team, a button someone tapped in a broadcast, your AI Agent's answers, an import, your website or app through the API, or another app such as Pricelyst or WooCommerce. A tag flow starts people who get the tag from now on. Tick the box to include people who already have it.
  • They were sent a broadcast. Use it to follow up, for example a reminder 3 days later to people who didn't reply.
  • A number of days after they opted in. For example a thank-you 90 days after someone joined your list.
  • A date in their contact details. Some days before, on, or after a date such as an arrival date, a birthday or a renewal, in your time zone. A new date (a returning guest) starts them again.
  • They send a message. With certain words or phrases, such as "prices" or "opening hours" (any case, whole words, typed or tapped on a button), or any message at all. A keyword flow starts again every time they send the word. An any-message flow starts the same person again only after 12 hours.

The steps you can add

  • Wait a number of hours or days, up to a year.
  • If: do one thing for some people and something else for the rest. Checks: they've replied or haven't, they have a tag or don't, you're closed (outside the opening hours you set), or it's their first message to you. Ifs can sit inside Ifs.
  • Send a message: an approved WhatsApp template, with the same fill-ins and pictures as a broadcast. Templates can reach people any time, within the rules below.
  • Reply with text: your own words, free, with up to 3 buttons. It only goes within 24 hours of the person's last message, which a message-started flow always is. A button's words can start another keyword flow, so a few flows make a menu.
  • Tag: add or remove tags. A tag can start another flow, send someone to your CRM, or mark where they are.
  • Stop: they leave the flow here.

You can edit a flow while people are in it. Sonar keeps everyone who is waiting on the same step.

Ready-made starts

New flow offers these, filled in for you to change:

  • Keyword reply: someone sends "prices", they get your answer straight away. Add buttons to make a menu. No AI needed.
  • After-hours reply: anyone who writes while you're closed gets a short message, once an evening. Your AI Agent, if it's on, still answers too.
  • Welcome a first message: people writing to you for the first time get a hello and buttons, such as Prices and Opening hours.
  • Finish your booking: a day after someone gets the tag that means they started (for example "Booking started"), a reminder if they don't yet have the one that means they finished (for example "Booking paid").
  • No reply to a broadcast: three days after a broadcast, a follow-up to people who didn't reply.
  • Welcome a new customer: a message when someone gets the tag that means they bought or signed up.
  • Before a date: a message some days before the date in a contact field, like check-in details 3 days before arrival.
  • Opt-in anniversary: a message 90 days after someone opted in.

The rules every flow follows

  • Opt-outs: someone who replied STOP, or whom POPIA consent doesn't allow you to market to, never gets a flow message; their run ends. An update template (utility) to someone who wrote to you in the last day counts as service and can go without an opt-in.
  • Quiet hours: nothing goes out between 20:00 and 08:00 in your time zone; it waits until morning. If the person wrote to you in the last hour, it goes straight away, because they're awake and mid-conversation.
  • A weekly limit: no more than 3 template messages to one person in 7 days, from flows and broadcasts together. Over it, that person's run ends instead of piling up. Update templates, such as a booking confirmation, don't count towards it.
  • Once each: a person goes through a flow once. Keyword flows, any-message flows (after 12 hours) and date flows (for a new date) are the exceptions that can start someone again.
  • Paused templates: if WhatsApp pauses a template because people reacted badly to it, the flow waits and carries on when the pause ends. A template WhatsApp switches off ends the runs that use it.
  • Broadcasts follow a related rule: each person gets a template once a day from the same number, so people in two overlapping audiences aren't messaged twice.

Testing a flow

  • Tag yourself Tester in Contacts, or add your own number under the flow test numbers in Flows.
  • Testers skip quiet hours, the weekly limit and the broadcast once-a-day rule, so you can try a flow or a broadcast as often as you like.
  • In a flow's People list you can send a tester through the flow again.

Flows and your other apps

Tags connect flows to the rest of your tools (see all integrations):

  • Leads to your CRM: the tag that marks a hot lead, such as "wants sales", can send that person to Privyr or HubSpot within a minute.
  • Leads from your other systems: Pricelyst followers and reservations, WooCommerce customers and contacts added through the API arrive tagged, so a tag flow can welcome them.
  • Button answers: when someone taps a button in a broadcast, they can be tagged with the broadcast's name and their answer (for example "Spring sale: Yes please"), which can start the right follow-up flow.
  • Payments: a payment link paid in a chat tags the person "Paid", so a flow can say thank you or book the next step.
  • Your own systems: Sonar's API and webhooks, Zapier and Make can add tags and receive what happens.

Example: a property lead, start to finish

  1. A buyer follows a development on the developer's sales site. It tells Sonar, and the buyer is tagged "Development: registered".
  2. A tag flow sends the approved welcome template from the development's WhatsApp number.
  3. The buyer replies. The AI Agent asks three questions and tags the answers, such as "Investor" or "Wants a viewing".
  4. When the buyer says yes to talking to someone, they're tagged "wants a person". A second flow sends an update template introducing the agent, and the same tag sends them to the sales team's Privyr or HubSpot.

Questions

Do I need the AI Agent for flows?

No. Flows run on their own: keyword replies, menus with buttons, after-hours and welcome messages work without any AI. If your AI Agent is on, it carries on answering alongside them.

Can a flow message someone who hasn't opted in?

Only within the rules: a marketing template needs their opt-in, and someone who replied STOP is never messaged. An update template to someone who wrote to you in the last day counts as service. A reply with text goes only within 24 hours of their last message.

Why didn't my flow message go out?

Check the flow's People list: it says why a run stopped or is waiting. The usual reasons are quiet hours (20:00 to 08:00, it waits), the weekly limit of 3 template messages per person, an opt-out, or a template WhatsApp paused. Tag yourself Tester to try it without those limits.

Can a flow send someone to my CRM?

Yes. Add a Tag step with the tag your HubSpot or Privyr connection uses, and they go to your CRM within a minute. See integrations.

How do I make a WhatsApp menu without AI?

Make a keyword flow with a Reply with text step and up to 3 buttons. Then make one keyword flow per button, using the button's words, so each tap gets its own answer.