What DMLY actually measures
A broadcast only ever counts Delivered and Opened on WhatsApp and SMS, and SMS
reports Delivered but not Opened. Telegram sends no delivery confirmations at all.
Facebook and Instagram do send them, and DMLY records them against the individual message in
the Inbox — but it doesn’t add them up onto the broadcast, so Delivered
and Opened stay at 0 on Meta channels no matter how well the broadcast performed.
- Replies is always 0. Nothing in DMLY counts replies to a broadcast, on any channel. It appears as a stat card and as the last step of the funnel, and it will read 0 forever.
- Engagement over time is placeholder data. It shows the same fixed shape for every broadcast and is not derived from your send. Ignore it.
Where to find the numbers
1
Open Broadcasts
Go to Broadcasts. The four cards at the top — Sent, Delivered, Replies and
Failed — are totals across every broadcast on the channel you’re currently working in.
Switch channel and the totals change with it.
2
Open one broadcast
Select View analytics on any broadcast to see its own Sent, Delivered,
Opened, Replies and Failed, plus the Conversion funnel.
What each number means
Sent means accepted by WhatsApp, Meta, your SMS gateway or Telegram — not that it arrived.
That is what Delivered is for, which is why a WhatsApp broadcast is the only kind where you
can tell the difference.
The Conversion funnel is these same numbers as a percentage of Sent. On Facebook,
Instagram and Telegram it will show a full first bar and three empty ones, for the reasons
above rather than because of anything you did.
A broadcast that reads Sent with 0 recipients isn’t broken — its audience matched nobody.
Check the segment under Audiences.
Messenger delivery (Facebook and Instagram)
Facebook and Instagram broadcasts get one extra panel, Messenger delivery, and it is real. It splits recipients by how Meta let the message through: those reached inside Meta’s 24-hour messaging window, those reached because the contact had opted in to notifications, and those skipped because neither applied. This is the panel to read on Meta channels. It answers the question Delivered can’t.Failed recipients count toward this panel’s total but don’t get a row of their own, so on a
broadcast with failures the three percentages add up to less than 100%.
What a failure actually means
DMLY records a reason for every failed recipient, but the broadcast page doesn’t show it — there is no per-contact failure list in the app. The reasons aren’t lost, though: the API returns them, one row per recipient, each with its ownerror.
The contacts had opted out (most common)
The contacts had opted out (most common)
Every channel blocks opted-out contacts at the moment of sending. They receive nothing — but
they still count as recipients and still increment Failed.This happens because Reachable contacts only in the broadcast’s audience step is off
unless you tick it, so opted-out contacts are pulled into the audience in the first place.
Tick it to keep them out and your Failed number honest. It doesn’t change who receives
the broadcast — opted-out contacts were never going to get it either way.
WhatsApp: the template is no longer approved
WhatsApp: the template is no longer approved
DMLY re-checks template approval at send time, not just when you schedule. If Meta revoked or
paused the template between scheduling and sending, every recipient fails. See
Message templates and
WhatsApp rules and limits.
Facebook and Instagram: the 24-hour window closed
Facebook and Instagram: the 24-hour window closed
If a contact hasn’t messaged you in the last 24 hours and hasn’t opted in to notifications,
Meta won’t accept the message. Those recipients fail and appear as skipped in Messenger
delivery.
The contact can't be reached on that channel
The contact can't be reached on that channel
No phone number, no identity on the broadcast’s channel, or a channel whose connection has
broken. Check the channel is still connected under Channels.
Every single recipient failed
Every single recipient failed
If a broadcast fails 100%, suspect the broadcast rather than the contacts: a revoked WhatsApp
template, a disconnected channel, or a broadcast saved with no message content at all —
nothing stops you saving an empty one.
Getting results out of DMLY
Broadcast results are available as webhooks if you want them in another system. Note what they mean:broadcast.sent fires when sending starts, not when
it finishes. The one carrying the final counts is broadcast.completed.
