Send a WhatsApp campaign
A campaign sends one approved WhatsApp template to a list of people — numbers you paste in, or contacts you ticked in your database. Once you have an approved template, sending takes about five minutes.
Before you start — you need a WhatsApp Business number connected on the Integrations page, at least one Approved template on that number (see Create a WhatsApp message template), and Campaigns access on that WhatsApp account, or workspace ownership.
There is no free-text campaign. Every campaign sends a template, and only a template Meta has already approved.
Steps
Start a new campaign
In the sidebar, under Messaging, click Campaigns. Click New Campaign in the top bar. On a phone, the same button sits in the page’s own title band and reads New campaign.
Messaging → Campaigns. The New Campaign button is top right.
The composer opens over the list. It is one continuous form with three sections — Audience, Message, Schedule — and no Review step. Each section has an ⓘ button that explains the traps in that section.
Choose who receives it
What the Audience section offers depends on where you opened the composer.
Opened from the Campaigns page, there is one path: Paste numbers. Type or paste numbers into Phone numbers, one per line. The hint under the field is the whole rule:
Country code + digits only — no +, spaces, or dashes (e.g. 6016239821). One per line.
Commas work as separators too. An entry counts as valid when it is six or more
digits and nothing else. As soon as you type, a tally appears — 12 valid numbers,
and 2 invalid excluded when some lines did not parse. Invalid lines are dropped
before sending and are not billed for.
The tally appears the moment there is text in the box — including text that parses to nothing.
To send to people already in your database, start from the list instead: open Leads or a customers database, tick the contacts, then choose the bulk action Send WhatsApp. The composer opens on that page with those contacts loaded, and a switch appears at the top of Audience: Database contacts | Paste numbers.
On the Database contacts path you get a summary line — 240 contacts from your database
— and a Review toggle that reveals a removable chip per contact. The count is
the real send list; the chips are only a preview of the first page, so a large
selection shows its true size even when not every contact has a chip. Removing
every contact leaves No contacts left in this list.
Pick the number you are sending from
From account comes first, and it comes first on purpose: templates belong to a WhatsApp number. Each option shows the number’s name with the phone number beneath it.
Changing the number clears the template you picked. With more than one
account connected, the composer says so under the field: Templates are per account — changing this clears the selected template. Choose the number
first, then the template.
A coloured dot beside each option carries Meta’s quality rating for that number. When the rating is not green, a warning line appears under the field with a link to Health & safety — that link opens the WhatsApp integration’s health tab, where the rating is explained.
Pick the template
Template is a searchable list. Each row shows the template name with its Meta
category as a badge — MARKETING, UTILITY or AUTHENTICATION — and the badge
stays visible after you choose.
Only Approved templates appear here. One still under review cannot be sent, and the field tells you which situation you are in:
No approved templates on this WhatsApp number yet — you need one to send a campaign.with a Create template buttonNone of this number's templates are approved yet — Meta is still reviewing them, and only an approved template can be sent.with a View templates button
While the list loads, the field is greyed out and reads Loading templates….
Fill in the template’s variables
If the template contains variables, a Template parameters block appears with
one row per variable. Each row names the variable — {{name}} — with the part of
the message it came from beside it in small capitals: BODY, HEADER, FOOTER
or BUTTONS.
For each one, choose where its value comes from:
- Custom value — you type the text once and every recipient gets the same words.
- Lead field — the value is read from each contact’s own record, so everyone gets their own.
Account first, then template, then one row per variable the template contains.
Lead field only works when the audience is database contacts. A pasted number
has no record to read from, so on that path the picker is visible but greyed out
and a note explains why:
Lead fields read from a contact's record — available when the audience is database contacts.
Attach the header file, if the template needs one
Templates whose header is an image, video or document need a file. The label tells you whether one is already there:
- Header media (required) — nothing saved with the template, so you must add a file
- Header media — the template has a saved file. Its card reads
Saved with the template · sent unless you replace it, with a Replace button.
An empty slot reads Browse or drag a file here — click it or drop a file on it.
The picker accepts images, videos and PDFs. If you replace a saved file, the
composer says Replacing the template's saved file for this campaign only. and
offers a Use the saved one link to undo it. The template itself is not
changed either way.
Send it
Leave Schedule on its defaults — How often on One-time and When
on Now. The summary under them reads
Starts sending as soon as you confirm.
Press Send. A toast confirms it: Queued - sending now. for one recipient,
or Queued - sending to 240 recipients now. for a list. The composer closes and
the list reloads with the new campaign in it.
Queued is not sent. The toast fires when the campaign is written down — nothing has reached WhatsApp yet. Recipients move from scheduled to delivered over the following minutes, which is what the campaign’s row and its console drawer are for. See Track how a campaign performed.
If we ask about blank values, answer and press again
When at least one variable reads from a lead field and some of your recipients have no value for it, the first press of Send is held and a warning block appears instead:
- the heading
Some contacts have no value for these variables - one box per field —
3 contacts have no Full name— with the placeholderText to use instead - the footnote
Leave a box empty to skip those contacts. Everyone else still gets their own value. Press send again to continue.
The button relabels itself to Send anyway, and that second press goes ahead.
The first press asks; the second sends. The button's new label is the signal that the press registered.
Change the bindings, the template, the audience or the pasted numbers and the question is withdrawn — the next press checks again with the new answer. Typing in a box does not withdraw it, so you can fill several and press once.
How many messages you can send
Campaigns and templates are included on every plan. What changes with the plan is the monthly outbound allowance.
| Plan | Outbound messages |
|---|---|
| Lite | 1,000 / month |
| Core | 4,000 / month |
| Max | 10,000 / month |
Raion Hub counts every message the system sends out, and each message covers text, image and video up to 1 MB.
If something goes wrong
| What you see | Why | What to do |
|---|---|---|
| You press Send and nothing happens | Something is still outstanding. The button never greys out, so the press is what reveals the problem | Scroll the form — each problem appears in red inside the section that fixes it. On a phone a count sits above the buttons |
Pick a template. or Pick a WhatsApp account to send from. | The field was never set | Set it in Message and press again |
Bind a value for {{name}}. | A variable has no value yet | Give it a Custom value, or a Lead field if the audience is database contacts |
{{name}} is bound to a lead field, which only works when sending to database contacts. Enter a value for it instead. | A lead-field binding survived a switch to pasted numbers | Change that row’s source to Custom value |
None of these lines is a valid number — country code + digits only, one per line. | Every pasted line failed the digits-only rule | Remove +, spaces and dashes, and keep the country code |
Add at least one contact. | You removed every contact from a database audience | Re-open the list, tick the contacts and choose Send WhatsApp again |
This template needs a header media attachment. | The template has a media header and no file | Add a file under Header media (required) |
| The Template list has nothing in it | This number has no approved template | Use Create template, or wait for Meta on one already submitted |
| Lead field is greyed out on every row | The audience is pasted numbers | Send from Leads instead: tick the contacts, bulk action Send WhatsApp |
| Fewer recipients than you pasted | Lines that did not parse were dropped before sending | Check the N invalid excluded tally and fix those lines |
Connect a WhatsApp account first | No WhatsApp Business account is connected | Click Go to Integrations and connect one |
The toast Connect a WhatsApp Business account before scheduling messages. | Same reason, reached from a bulk action in Leads | Connect the account, then try the bulk action again |
Campaigns isn't in your plan | Your plan does not include the message scheduler | An owner can click View plans; anyone else asks an owner to upgrade |
No Campaigns access | You have no Campaigns permission on any WhatsApp account | Ask a workspace owner or an admin to grant it |
Next
- Schedule a campaign for later or on a repeatThe same composer that sends a campaign now can hold it for a date and time, or
- Track how a campaign performedEvery campaign you send lands on the Campaigns list, and the list updates
- Create a WhatsApp message templateA campaign can only send a template that Meta has reviewed and approved —