Send a WhatsApp broadcast
Compose an approved-template campaign to an opted-in topic, map product links into slots, and send or schedule.
Create a campaign with New Broadcast: pick a registered number, an APPROVED template, an opted-in topic, map variables / product slots, then send now or schedule.
What you'll do
- Open the broadcast composer
- Choose number, template, and audience topic
- Fill product slots from Pointerly links (or map variables manually)
- Preview, send or schedule, and monitor the Broadcasts table
Image placeholder — add `images/send-a-broadcast-cover.png` under this category
Before you start
- Registered Cloud API number on Connections
- whatsapp → publish (and create) permission
- At least one APPROVED template (synced from Meta or installed from Pointerly catalog)
- An opted-in topic with members (Subscribers + keywords)
- Product links ready if the template uses product / carousel slots
- Enough send allowance on Usage
You can also open the composer from Links with preset selected products — slots fill automatically for Pointerly designs.
Steps
1. Open New Broadcast
- Go to Dashboard → WhatsApp.
- Click New Broadcast (or the create keyboard shortcut shown on the button).
- If the control is missing, connect a number first or request publish permission.
Image placeholder — add `images/send-a-broadcast-step-01.png` under this category
2. Choose number, template, and topic
- Name the campaign (optional but useful in the Broadcasts table).
- Select a registered sending number (first registered number is default).
- Pick an APPROVED template — locked / out-of-pack templates are hidden here and rejected server-side.
- Select the topic audience; wait for audience count to load.
- Optional: set scheduled for a future time; leave empty to queue immediately on send.
Changing template clears the previous variable mapping so old values never leak into a new design.
Image placeholder — add `images/send-a-broadcast-step-02.png` under this category
3. Map products and variables
Pointerly product-slot templates
- For each product slot, Pick a product link.
- Prefer links that already have photo / title / price when the template requires them.
- Fill any remaining gap fields (for example, compare-at price) that links do not store.
- Contact name / phone placeholders bind automatically — do not type one fixed name for the whole list.
Generic Meta templates
- Map each
{{n}}to static text, a link, or a contact attribute. - Use the live preview (sample name “Ana”) before sending.
Header/card images must be real media URLs — Meta rejects templates that need a photo without one.
Image placeholder — add `images/send-a-broadcast-step-03.png` under this category
4. Send and monitor
- Submit to create the campaign, then Send now (or wait for the schedule).
- Toast on queue: Queued for N recipients.
- Open Broadcasts for status (scheduled, sending, completed, canceled, frozen).
- Use row actions to Send now, Cancel, or duplicate as draft for a careful resend.
- Check Usage for metering; delivery webhooks move messages through sent → delivered → read.
Image placeholder — add `images/send-a-broadcast-step-04.png` under this category
Tips
- Carousel templates take as many preset links as they have cards; extras are reported, not silently dropped.
- Duplicate creates a draft — review mapping before you send to the same audience again.
- If a disconnect froze a campaign, reconnect the number, then resume rather than rebuilding from scratch.
Troubleshooting
| Symptom | Likely cause | What to try |
|---|---|---|
| New Broadcast missing | No number / no publish permission | Connect number; ask admin |
| No approved templates | Sync lag or pending Meta review | Sync templates; wait for APPROVED |
| Send disabled | Missing slots / audience / mapping | Fill required product slots and topic |
| “No link with a photo” | Template needs header media | Pick a link with product image or fix the link |
| held_limit / throttled | Meta tier or Pointerly allowance | Usage tab; wait for tier / buy sends |
| Campaign frozen | Account disconnected mid-flight | Reconnect number, then resume |