Skip to main content
Most of what people expect to go wrong with a WhatsApp broadcast (the 24-hour window, your messaging tier, your quality rating) is covered in WhatsApp limits and quality rating. This page is the campaign angle: what changes when you are sending to a thousand contacts at once instead of replying to one. Start with the rule that surprises everyone.

You cannot type a WhatsApp broadcast

There is no message box on a WhatsApp broadcast. Step 2 of the wizard gives you a Message template picker and nothing else, and it says so: Broadcasts send an approved WhatsApp template — you can’t type a message directly. Only approved templates are listed. This is DMLY’s own choice, not a rule Meta imposes. Meta only forces a template outside the 24-hour window; a free-form message to someone who messaged you an hour ago would deliver fine. But a broadcast audience is mostly out-of-window, so a template is the only thing that reaches the whole list, and the wizard hides the composer on WhatsApp rather than let you build a send that works for a fraction of it.
SMS, Telegram, Facebook and Instagram broadcasts do give you a free-text box; those channels have no templates. If you came here expecting a composer because you have sent a Telegram broadcast before, this is the difference.
If the template you want does not exist yet, select Create new template in the wizard, or Manage templates on Messaging → Broadcasts. Getting it approved by Meta takes as long as it takes. Plan a campaign around that, not the other way round. See Message templates.

Two different approvals

The word “approval” means two unrelated things on this screen, and mixing them up wastes an afternoon.

Meta approves the template

Meta reviews the template text itself. Only templates at Approved appear in the picker. Nothing in DMLY speeds this up.

Your team approves the broadcast

Require team approval before sending holds the campaign until a teammate signs off. This is a DMLY workflow control and has nothing to do with Meta.
A held broadcast is never picked up for sending until it is approved, no matter what time you scheduled it for. If you do not have approval rights, DMLY tells you up front: You don’t have broadcast-approval rights, so this broadcast will be submitted for approval before it sends. Editing a broadcast that still needs approval clears the previous sign-off, so it has to be approved again.

The window rarely bites: a revoked template does

Because a WhatsApp broadcast always sends a template, the 24-hour window is mostly irrelevant to it. A contact who last messaged you a year ago receives the template exactly like one who messaged you an hour ago. What does bite is timing. DMLY checks the template still reads Approved at send time, not when you scheduled it, but it checks its own stored copy of the status rather than asking Meta in that moment. That copy is kept current for you: Meta pushes a verdict when a template’s status changes, and DMLY re-checks every template with Meta about every ten minutes anyway. So the status you see is minutes old at worst, not days. It is still a copy, which leaves a short window where DMLY holds Approved, sends, and Meta rejects the calls one by one. The campaign fails either way; it just fails as a pile of Meta errors rather than a clean stop.
Schedule a broadcast a week out on a template Meta later pauses and the whole campaign fails at send time: there is no warning beforehand and no automatic retry with a different template. Before a large scheduled send, open the templates page and check the template still reads Approved. A template Meta has paused or disabled comes back as Rejected; DMLY has no Paused status of its own.

Template parameters

If your template has variables, the wizard shows a Body parameters input for each one. Two things worth knowing:
  • The count comes from the highest number, not how many you wrote. A template body using {{1}} and {{3}} but never {{2}} asks you for three parameters. That is Meta’s numbering, and it means a gap in your numbering is a gap you have to fill in.
  • A parameter can itself be personalized. Type {{first_name}} or {{custom.order_id}} into a parameter box and DMLY resolves it per recipient when the broadcast sends. That is how one template serves a whole segment.
The picker only lists templates that belong to the number you are broadcasting from. A template lives on a WhatsApp Business Account, not on a single number, so two numbers on the same account do share every template. Two numbers on different accounts share almost none: a template approved on one account doesn’t appear when you broadcast from a number on the other, because Meta would reject that send. (The exception is an older template DMLY stored before it recorded which account a template came from; those still show on every number until the next sync files them. See Message templates.)Account scoping is the usual explanation for a picker showing nothing but Select a template… on a workspace that clearly has approved templates. Switch to the number whose account holds the template, or create and submit the template again on the account you want to send from.

Tier and quality on a big send

Neither is enforced by DMLY. DMLY paces its own sending per Channel so a campaign leaves steadily rather than in one burst, but it does not count your sends against your messaging tier and will hand Meta more conversations than your tier allows. Meta rejects the overflow. The practical shape of that: a large broadcast on a low tier partially fails. Some recipients land, the rest come back as failures, and the broadcast still finishes and reports as sent. If you are on a low tier, split a big campaign across days rather than discovering the ceiling on the day.
The broadcast page gives you a Failed count and no reasons. On WhatsApp you can see both the contact and the reason: go to Messaging → Templates, select View performance on the template, then select the Failed tile. Failed sends lists up to the 100 most recent failed sends, each with the contact, what WhatsApp said went wrong, and the date. The catch is scope: it covers every send of that template rather than one campaign, so on a template you also use for reminders you are picking your campaign out by date. To tie failures to one broadcast, the API is still the only place: see Read broadcast results. When the count is unexpectedly high, work through WhatsApp limits and quality rating and Logs.

Opted-out contacts

No opted-out contact ever receives a broadcast. That block is applied at the moment of sending, on every channel, and it is not something you can switch off. But by default they are still counted. Reachable contacts only is unticked when you build an audience, which means opted-out contacts are pulled into the recipient list, then blocked at send, so they inflate your recipient count and land in your Failed count having received nothing. Tick Reachable contacts only to keep the numbers honest. It changes your reporting, not who gets messaged.
No, despite the hint text saying it skips contacts who can’t be messaged on this channel. It filters opted-out contacts only. On WhatsApp that is the right behaviour anyway: an approved template reaches a closed window fine.

WhatsApp limits and quality rating

The 24-hour window, messaging tiers and quality rating in full.

Message templates

Write a template and get it approved by Meta.

Create a campaign

The four steps from audience to send.

Audiences

Segments, retargeting and who actually receives a broadcast.