Documentation ›Channels: WhatsApp, Instagram, Telegram, website

WhatsApp campaigns (bulk broadcast)

What it is: send a pre-approved WhatsApp template to a whole list of recipients at once — appointment reminders, a "your order is ready" notice, a seasonal message. Admin-only. This is the messaging counterpart of voice Outbound (which dials); a WhatsApp campaign texts. Find it at Dashboard → WhatsApp campaigns.

It can never send by accident

Create is not send. Creating a campaign uploads your recipient list and saves a draft — nothing goes out. A separate, explicit Start flips it to running. Even then, broadcasts actually send only when the WhatsApp campaigns feature is enabled on your account (off by default) — until then a "running" campaign does nothing. Pause stops an in-flight broadcast at any time: queued messages stay queued, already-sent ones are unaffected — and Resume carries it on from where it stopped.

Start refuses when no WhatsApp number is connected. Instead of flipping to running and leaving every message sitting in the queue undelivered, you get an error telling you to connect your number in Integrations first.

To create one: give it a name, pick a template from the list — it is read from your own WhatsApp account, shows the message text, and templates still under review are visible but cannot be chosen — optionally which of your WhatsApp numbers to send from, and upload a recipient list (CSV/Excel with a phone column, up to 5 MB). Rows without a phone are skipped and counted for you.

If your template has variables ({{1}}, {{2}}), each one needs its own column in the file, after the phone column and in the same order. Creation is refused if the file has fewer columns than the template needs — otherwise every message would be rejected by Meta after you press Start.

Meta's rules apply: business-initiated messages need a pre-approved message template and recipients who have opted in — the same WhatsApp policy as any broadcast. Templates are created and approved inside Meta (review takes 1–72h); promotional wording turns a template into MARKETING (pricier, lower delivery) instead of UTILITY.

You see the message as it will read. Pick a template and the preview fills its {{1}}, {{2}}… with real values from the list you chose — «Здравствуйте, Иван!», not «Здравствуйте, {{1}}!». Each person gets their own; the preview just shows you one of them. Values come from the same place the send uses, so it is a check and not a reassurance.

You see the size before you create anything. Pick who receives it and the page counts them straight away — "247 recipients · 12 excluded (opted out, do-not-call, no number)". The excluded ones are removed while the list is being built, not silently skipped at send time, so the number you see is the number that goes out.

Who receives it. Either a file, or your own CRM: all my contacts, or leads at a stage, optionally only those added in the last N days. Whatever you choose, the page tells you how many people are in and how many were left out — and why: no phone number, a duplicate, someone who asked to stop, someone on your do-not-call list.

People who opted out and numbers on your do-not-call list are removed while the audience is built, not quietly skipped at send time — so the number you see is the number that will be messaged. If those two lists cannot be read at that moment, the audience is not built at all rather than risk messaging someone who asked you to stop. The do-not-call list is checked once more at the moment each message goes: someone who asked not to be contacted after the campaign was created is not messaged either.

The whole list is read — every contact, however many you have — up to 5 000 recipients per campaign; the count says when the cap was reached.

If your template greets the person by name ({{1}}), the contact's first name is used. A template that needs two or more values cannot be filled from the CRM — those are facts we do not hold per person — so use a file with a column for each.

Creating a template no longer means leaving for Meta Business Manager. Open Create a new template on the same page and start with What is this message for? — a reminder about a booking, a "your order is ready" notice, or an invitation to come back. Choosing one fills in a wording that already passes review, and picks the Meta category for you; edit the text freely, it is a starting point, and what you have already typed is never overwritten. Choose Something else to write your own, and then the category is yours to pick.

Meta decides the final category itself and sometimes changes it after review — a message it reads as promotional becomes marketing: it costs more per message, and people can unsubscribe from marketing separately without blocking you. That is why the "invite someone to come back" option says so before you send it.

You will be told what Meta decided. When the review finishes, the verdict arrives in your operator Telegram group — approved, or rejected with Meta's own reason — so nobody has to keep re-opening the page to find out. Templates you created directly in Meta Business Manager are not covered: Meta emails the account owner about those.

Meta rejects for mechanical reasons, so we check them before sending and tell you which one: the name takes lowercase letters, digits and underscores only ("Results Ready" is refused); variables must run {{1}}, {{2}} with no gaps; the message may not begin or end with a variable; and every variable needs an example. If Meta refuses anyway, you get its own words, not a generic error.

When Meta is the obstacle, you get Meta's own reason — "no working payment method on the WhatsApp Business Account", "the business has not passed verification" — and not an internal code. A restriction that only lowers your daily limit is shown as that, not as a dead account; and problems with WhatsApp calling, which Meta reports in the same answer, are left out because they have nothing to do with sending.

If something is missing, the page lists it instead of a single "not enabled": a connected WhatsApp number, Meta allowing sends from it, an approved template, and broadcasts switched on for your account. The second one is worth knowing about — without a working payment method on your WhatsApp Business Account, Meta accepts a message and never delivers it, which looks like nothing happened. We ask Meta before you send and say which level is blocked.