Send a WhatsApp broadcast
Send an approved template to a group of contacts — choose the audience, fill in the variables, send now or schedule it, and read who received it, who was skipped and why.
On this page
A broadcast sends one approved WhatsApp template to a group of contacts, with each person's own details filled in. This walks you through your first one, from picking the template to checking who received it.
Before you start
You need three things:
- A connected WhatsApp number. Broadcasts go out as WhatsApp templates. Without a number, the Broadcasts page shows a prompt to connect one instead.
- At least one approved template. Only templates Meta has approved appear in the picker. If you have none, create one under Message templates and submit it for review — see message templates for what gets approved.
- Permission from the people you are messaging. A broadcast is proactive messaging. Read opt-in and opt-out before you send to a list for the first time.
The line under the page title — "… WhatsApp messages left this billing period" — is how many messages your plan still allows. A broadcast larger than that stops when the allowance runs out (more on that below).
Create the broadcast
- Open Broadcasts and click New broadcast.
- Give it a Broadcast name your team will recognise later, such as "February sale". Customers never see this name.
- Choose the Template. Each option shows the template name and its language.
- Choose the Channel — the WhatsApp number it should go out from.
- Choose the Audience:
- Every contact in the workspace — everyone the chosen channel can reach.
- Labels — contacts carrying any of the labels you tick. These are contact labels, not conversation labels (what's the difference).
- Segment — a saved filter, worked out fresh at the moment you send. See contacts and segments.
- Read the line under the audience. It says how many of those contacts the channel can reach — for example "120 of 150 contacts can be reached on WhatsApp. 30 have no WhatsApp address and will be left out." A contact who only ever reached you on website chat, Messenger, Instagram or email has no WhatsApp number, so they are not part of a WhatsApp broadcast at all — they are neither sent to nor counted as failed.
- If the template has placeholders (
{{1}},{{2}}…), set up Variables. For each one, choose where the value comes from:- Contact name — each recipient's own name.
- Phone number / ID — each recipient's phone number or identifier.
- Contact attribute — one of the recipient's custom attributes. Type the attribute's name, for example
tier. - Fixed text — one value for everyone, like "20% off". It cannot be left empty.
Next to every per-contact source there is a fallback box, If empty, use…. A contact with no value for that field gets the fallback instead — for a greeting, something like "there" turns "Hi {{1}}" into "Hi there". A contact with no value and no fallback is Skipped (reason: No value for a variable, and no fallback). Juno never sends a placeholder empty.
- Under When to send, choose:
- Send manually — the broadcast is saved as a Draft and nothing goes out until you press Send on it.
- Schedule for later — pick a Send date and Send time. The time is in your workspace's timezone, shown next to the fields as Workspace time (…) — set it under Settings → Workspace → Timezone. A time that has already passed is refused.
- Click Create broadcast (or Schedule broadcast).
Send it
- Find the broadcast in the list and click Send (on a scheduled broadcast, Send now sends it straight away instead of waiting).
- A confirmation box tells you how many contacts it will reach on the channel, and how many in the audience are left out because they have no address there. Messages that go out cannot be recalled. Click Send broadcast.
- A large audience goes out in batches. If there are people left after the first batch, you'll see "Sent a batch — more queued" and the button changes to Send next batch. Keep clicking it until the broadcast shows Sent.
A Scheduled broadcast shows "Scheduled for …" with the date and time in your workspace timezone, and sends itself at that time — all of it, in batches, without you pressing anything.
To stop a broadcast that is still a draft, scheduled, or part-way through, click Cancel, then Cancel broadcast. A cancelled scheduled broadcast will not be sent; to send it at another time, create it again. Anything already delivered stays delivered.
Read the results
Each broadcast shows a status chip and a count, like "120/150 sent · 6 failed".
| Status | What it means |
|---|---|
| Draft | Created, not sent yet |
| Scheduled | Will send itself at the time shown |
| Sending | Part-way through — there are recipients still to go |
| Paused — plan limit | Your plan's WhatsApp allowance ran out mid-send. It picks up again after renewal or a limit increase |
| Sent | Every recipient has been handled |
| Failed | It finished and some or all sends failed |
| Cancelled | You stopped it |
Click Recipients under a broadcast to see each person's outcome. Failed and skipped people are listed first, because they are the ones you need to look at:
- Sent — Juno handed the message to WhatsApp.
- Failed — the send was refused. The reason is shown next to the name, in WhatsApp's words.
- Skipped — Juno deliberately did not send. The reason is shown too:
- Unsubscribed — the person has opted out.
- Daily marketing limit reached — they have already had their daily share of promotional messages.
- No value for a variable, and no fallback — a placeholder would have gone out empty. Add a fallback to that variable next time.
- Pending — not reached yet.
"Sent" means the message left Juno — not that the customer has read it. Every broadcast message lands in that customer's conversation in the Inbox, and that's where you see its delivery ticks and, more importantly, their reply. A reply to a broadcast arrives as an ordinary inbound message, so your team (or your AI agent) picks it up like any other conversation.
Opt-out and the daily cap
Two protections run on every broadcast, without you setting anything up:
Unsubscribed contacts are skipped. A customer who replies STOP (or UNSUBSCRIBE, or 退订, among others) is opted out automatically and gets a confirmation. Anyone opted out is marked Skipped and never messaged. A customer who replies STOP PROMO (or 不要广告) stops promotions only — they will still get non-marketing templates such as order updates. You can also set this yourself on a contact's profile under Messaging preference.
The marketing daily cap. Marketing templates are limited per contact per 24 hours, across broadcasts and journeys combined. The default is 2, in line with Meta's own per-person limit. Anyone over the cap is Skipped rather than sent. Change it under Settings → Workspace → Marketing daily cap. Setting it to 0 turns the cap off, but Meta applies its own limit anyway.
Where to go next
- Message templates — getting a template approved
- Contacts and segments — building the audience
- Journeys — follow-ups that run by themselves
- Opt-in and opt-out — who you may message