Skip to main content

WhatsApp broadcast results

Read a WhatsApp broadcast's funnel, cost against the estimate, failures by reason, button taps, conversions and timeline, filter and export its recipients, follow up with the people at a step, retry failed and held-back messages, run an A/B test, see how a template does across broadcasts, and switch on Meta's template insights.

Every WhatsApp broadcast has a Results part on its page: Broadcasts → WhatsApp broadcasts (/app/whatsapp), then press the broadcast. It fills in while the broadcast sends and keeps counting replies, taps and conversions afterwards.

Who can see it

  • Owner, Admin, Editor, Reviewer and Viewer see the results. The inbox-only Agent role cannot open WhatsApp broadcasts.
  • Export CSV needs the Export contacts task (Owner and Admin by default; an Owner or Admin gives it with Edit access on Settings → Members, see Roles and tasks). Without it the table says Exporting names and numbers needs the Export contacts permission (Owner and Admin by default).
  • Switch on template insights is for Owners and Admins only.
  • Follow up, Retry… and the A/B test are for Owner, Admin and Editor (Reviewers and Viewers only read the results). Saving a follow-up as a Contacts list also needs the Manage contacts task (Owner, Admin and Editor by default).

Step by step: read a broadcast's results

  1. Open the broadcast. Under its name, schedule and progress bar, Results starts with Updated ... (the time of the numbers; while sending they refresh every 10 seconds).
  2. Funnel — Targeted (everyone the audience had when the broadcast was created), Sent (accepted by WhatsApp), Delivered, Read, Replied and Tapped a button. Each line says how many people reached it and its share of the step before ("80% of targeted", "50% of delivered"); replies and taps are shares of delivered. A reply counts as read, because people who turned read receipts off still reply. When some replies did not quote the message, the Replied line says how many were counted by the 7-day rule. Press any step to list those people in Recipients below.
  3. Other outcomes — Failed, Held by Meta, Stopped marketing, Skipped, Waiting and Waiting for the A/B winner, each with its count, and Not sent yet. Press one to list those people.
  4. Cost — Charged so far (priced from Meta's rate card as each delivery receipt arrives) next to Estimated at create, with "... under the estimate" or "... over the estimate" once the broadcast is Done or Cancelled and Meta priced at least one delivery (while it sends, is paused, or failed with nothing delivered, the gap is only what has not happened yet, so it is not shown). A yellow note counts delivered messages with no price (the rate card had no price for their country when they were delivered, so the cost leaves them out). "... delivered free" counts messages in a customer service or ad entry-point window. Per reply, Per button tap and Per conversion divide the cost by each result. By Meta pricing category splits the messages and the cost into Marketing, Utility, Authentication or Service, Charged or free.
  5. Conversions after read — choose Within 7 days, 14 days or 30 days. Leads converted counts people who read or replied and whose lead was then moved to Converted on the Leads page within that time; Bookings made counts bookings made within that time for the same phone number (cancelled ones do not count); Value of converted leads adds up those leads' values. The line under them gives the share of the people who read it.
  6. Button taps — every quick-reply button of the template and how many people tapped it; our consent buttons show as Stop promotions and Yes, send me offers. Press a button to list who tapped it. Link (URL) buttons are not counted per person; Meta counts them per template (below).
  7. Left out when the broadcast was created — who the audience lost and why (said STOP, no consent, no WhatsApp number, unreachable number, US number, duplicate, cooldown).
  8. Failures and holds by reason — one line per WhatsApp error code (and per skip reason), largest first, with what it means, What to do: ... and the number of people. Show these people lists them; Every code explained opens Broadcast errors by code.
  9. A/B test and A/B variants — only for a broadcast sent in variants: the test's settings and its winner (see The A/B test below), then sent, delivered, read, replied and tapped per variant, with the template's name under each variant and the rates side by side. The variant rows count the test group only; the people who got the winner afterwards are in the funnel above.
  10. Timeline — bars per hour (per day for a broadcast that ran longer than three days), in your own time zone. Sent, Delivered, Read, Replied and Tapped a button above the chart switch what the bars count; point at (or tap) a bar to read its time and number.

Step by step: find and export recipients

  1. Scroll to Recipients (or press a funnel step, an outcome, a button or Show these people, which filters the table and scrolls to it). The line under the title says how many people match.
  2. Narrow it with Step (for example Delivered, not read or Read, no reply), Status and Search name or phone. Filtered by: ... names the filters in use; Clear filters removes them.
  3. Each row shows the name and phone, the Status, What happened (sent, delivered, read, replied and tapped times, the button tapped, the error) and the Cost of that message. Show more loads the next 50.
  4. Press Export CSV to download everyone the filters match, not only the rows on screen. The file is named after the broadcast and opens correctly in Excel with Arabic names. Columns: name, phone, status, variant, sent_at, delivered_at, read_at, replied_at, reply_matched_by (quoted_message or last_campaign_7_days), clicked_at, button, error_code, error, pricing_category, pricing_type, billable, cost, currency. Times are in UTC. Text that starts with =, +, - or @ is written so a spreadsheet never runs it as a formula. Each export is recorded in the audit log.

Step by step: follow up with the people at a step

  1. On a sent broadcast, find Follow up under the funnel. It lists Delivered, not read, Read, no reply, Replied, Tapped a button and each quick-reply button (Tapped "..."), each with how many people it has. Our Stop promotions button is never offered: those people asked for no marketing.
  2. Press Follow up on a line. Or filter the Recipients table any way you like (a step, a status, a variant, a button, an error code, a search) and press Follow up with these N people under the filters.
  3. In the Follow up window, Who: names the group. Choose New broadcast (draft) or Contacts list (the list needs the Manage contacts task).
  4. For a broadcast: keep or change the Broadcast name (it starts as the broadcast's name followed by the group), pick the Template (Same as this broadcast: ... sends the same message with the same values; another approved template of the same kind shows its variables to fill, and an empty field uses the template's own setting), and set Leave out people any broadcast messaged in the last (days) if you want (0 = nobody is left out for that). When Meta has paused, disabled or deleted this broadcast's template, Same as this broadcast: ... (not approved by Meta now) cannot be chosen and the first approved template of the same kind is picked for you; when there is none, the window says There is no other approved template of this kind on this number. and Create draft broadcast stays off.
  5. The grey box counts the group while you choose: "N people at this step · M can get the follow-up", then who is left out and why (said STOP, no marketing consent for a Marketing template, a number WhatsApp refused, US numbers for Marketing, the cooldown, a contact that was deleted). The first number is the same as the funnel step or the table. If the count cannot be made (for example Meta has paused this broadcast's template, so it cannot be sent now. Pick an approved template.), the box says why and Create draft broadcast stays off until you change the choice.
  6. Press Create draft broadcast. "Follow-up broadcast created for N people" confirms it and the new broadcast opens. It is a Draft; its page says Follow-up of and the first broadcast's name. Press Start now when you are ready. The messaging rules (quiet hours, the Friday pause, Ramadan, frequency caps) apply when it sends, like any broadcast.
  7. For a list: type the List name and press Save list. List “...” saved with N people confirms it. The list is in Contacts → Audiences (/app/contacts/audiences) and keeps those people as they are now; a broadcast that uses it checks consent again.

Step by step: retry failed and held-back messages

Retry failed and held-back messages appears under Failures and holds by reason when there is something to retry. It counts:

  • Failed, worth another try — failures a new attempt can fix (WhatsApp was busy or under maintenance, a network error, the account was reconnected). Failed because the number is disconnected (retry after reconnecting it) counts errors 190, 10 and 200 while the number is still disconnected. The box then says This WhatsApp number is disconnected, so a retry would fail the same way. Reconnect it in Accounts first. with Go to Accounts, and Retry… is off. A Reviewer or Viewer, who has no Retry… and cannot reconnect, reads This WhatsApp number is disconnected, so a retry would fail the same way. An editor or admin can retry these once the number is reconnected. without the link. Once the number is reconnected these count as Failed, worth another try again.
  • Failed because of the template or its values (only with another template) — errors 132000, 132001, 132005, 132012, 132015, 132016 and 132018: the same message would fail again.
  • Not retried (not on WhatsApp, stopped marketing) — errors 131026, 131050 and 130472. These are never retried. Nor is a message that a server restart interrupted after it was handed to WhatsApp (Interrupted while sending; not retried so nobody gets it twice): it may have arrived, so it stays Failed - unless WhatsApp's own receipt shows later that it was sent, and then it counts as sent.
  • Held back by Meta: N (M can go now) — error 131049. Meta asks not to resend within 24 hours, so each one is sent no earlier than 24 hours after Meta held it back; The next can go from ... says when.

Nobody who already got a message of this broadcast (delivered, read or replied) is ever sent it again.

  1. Press Retry… (Owner, Admin or Editor).
  2. Tick Failed (N), Held back by Meta (N) or both.
  3. Keep Template on Same template: retry in this broadcast to put them back into this broadcast's queue, and press Retry N people. "N people are back in the queue" confirms it, with how many wait for their 24 hours. A Done or Failed broadcast starts sending again; a Paused one waits for Resume. When Meta has paused this broadcast's template, this option reads Same template: not approved by Meta now, cannot be chosen, and the first approved template of the same kind is picked instead (step 4).
  4. Or pick another template: its variables show (empty = the template's own setting). Type a Broadcast name and press Create draft broadcast. A new Draft broadcast is made for these people (failures caused by the template or its values included), under the same consent rules as a follow-up; it opens, and you press Start now. People it covers are not offered again by Retry… on the first broadcast.
  5. A Cancelled broadcast can only be retried with another template.

The A/B test

An A/B test sends 2 or 3 versions of a broadcast to parts of the audience: another approved template of the same kind, or the same template with other values (a different offer, greeting or coupon). Each person is put in a variant by their recipient id, so the same people land in the same variant every time the split is made.

Step by step: set up an A/B test

  1. The easiest place is the broadcast page itself: Send as an A/B test on step Schedule & delivery (WhatsApp broadcasts), with the same fields as below. To add a test to a broadcast already created as a draft (not started), open it on WhatsApp broadcasts.
  2. Under Results, find A/B test and press Set up an A/B test (Owner, Admin or Editor).
  3. Variant A is the broadcast's own template and values. For Variant B, choose the Template: Same template, other values (then change at least one value in the fields under it; the others stay as in variant A), or another approved template of the same kind (Marketing with Marketing, Utility with Utility; fill its variables, or leave a field empty to use the template's own setting). Name (optional) labels a variant in the results. Add variant C adds a third; Remove variant C takes it away.
  4. Set each Share (%); they must add up to 100%.
  5. Choose the Test group: Everyone (split, no winner step) splits the whole audience between the variants; 10%, 20%, 30% or 50% of the audience, then the winner to the rest sends only that share first.
  6. With a test group, choose Winner by (read rate, reply rate or button tap rate, each out of the messages delivered) and Pick the winner after (2 hours to 72 hours after the broadcast starts).
  7. The line under it shows how many people each variant gets and how many wait for the winner. Press Save the test. "A/B test saved: the recipients are split" confirms it. Change the test and Remove the test stay available until you press Start now.

While the test runs

  • The people waiting show Waiting for the A/B winner in Recipients and under Other outcomes; the broadcast stays Sending until they have been sent.
  • A/B test says when the winner is picked and how many people wait for it, and Ahead now: variant X by ... once messages are delivered.
  • At the decision time the variant with the best rate wins. OmniBrand checks every 5 minutes and decides once the test group has been sent, or a day after the decision time at the latest. A tie goes to the first of the tied variants; with no delivery at all, to variant A. The rest get the winner's template and values straight away, under the same messaging rules, and the broadcast's creator gets a notification.
  • A rate needs at least 30 delivered messages per variant. With fewer, the result says not enough data (fewer than 30 delivered per variant): the first variant and variant A goes to the rest. Use a larger test group, or pick the winner yourself.
  • Pick the winner now is there if you do not want to wait: choose The best by ... so far or a variant, then press Send the winner. This cannot be changed afterwards.
  • Afterwards the box says Variant X won (picked automatically, ...) or Variant X won (picked by hand, ...) with each variant's rate, and how many more people got it.

Template results

On a template's page (/app/whatsapp/templates, press a template) the Results card has Last 30 days and Last 90 days:

  • Broadcasts that sent it — Sent, Read rate, Reply rate and Button tap rate over the broadcasts created in the period that used this template, their cost, the quick-reply buttons tapped, and a line per broadcast; press a broadcast's name to open it.
  • Meta's numbers for this template — with template insights on: Meta's sent, delivered, read, Clicks per button (including link buttons) and Amount spent (your WhatsApp account's currency) for every send of the template on your WhatsApp Business Account, from broadcasts, the inbox or other apps. With insights off it says so, with Switch on in Number health for Owners and Admins.

Step by step: switch on template insights (cannot be undone)

  1. Open Broadcasts → WhatsApp broadcasts → Number health (/app/whatsapp/health).
  2. On the number's card, find the Template insights box. It says Off.
  3. Press Switch on template insights (Owner or Admin; others see Only an Owner or Admin can switch it on.).
  4. Read Switch on template insights?: Meta collects per-template analytics for the whole WhatsApp Business Account, for every number on it, and there is no way to switch it off again, in OmniBrand or in WhatsApp Manager.
  5. Tick I understand this cannot be undone, then press Switch on (cannot be undone). Keep it off closes without changing anything.
  6. Template insights are on confirms it, and every number on that WhatsApp Business Account shows On. Meta's numbers appear on each template's page.

On the dashboard

Measure → Dashboard (/app/dashboard) shows WhatsApp this month when the workspace has a WhatsApp number: Broadcast messages sent this month (in your time zone) with the share delivered, the Cost (with "+ ... messages without a price"), By category (Awaiting receipt until Meta's delivery receipt says the category), and each number's Daily limit and Quality. Open broadcasts goes to the WhatsApp broadcasts page. Hide the card with Customize.

Good to know

  • A reply that quotes the broadcast message counts for that broadcast; one without a quote counts for the latest broadcast sent to that person in the last 7 days, and is marked so.
  • Leads moved to Converted before this results page existed use the date of their last change as the moment they converted.
  • Meta's numbers can differ from OmniBrand's: Meta counts every send of the template (not only broadcasts) and reports per day in UTC.
  • OmniBrand does not see which person tapped a link (URL) button; only Meta's per-template click count shows it.

If something goes wrong

  • The results could not be loaded: ... → press Try again; if it repeats, reload the page.
  • No Export CSV button → you do not have the Export contacts task; ask an Owner or Admin. The export failed. Try again. means the download did not complete.
  • Meta's numbers could not be read: ... → Meta refused or was unreachable; the reason follows. Try later. If Meta says insights are not enabled, an Owner or Admin switches them on in Number health.
  • Meta's numbers appear once the template is submitted. → a draft has no numbers at Meta yet.
  • A cost with a yellow "have no price" note → the rate card had no price for that country; those messages stay out of the cost. Messages delivered after staff add the price are counted. Contact support if a country you send to has no price.
  • Nobody in this group can get the follow-up ... → everyone in it is left out by consent, their number or the cooldown; the grey box says why. Lower Leave out people any broadcast messaged in the last (days), or save them as a Contacts list instead.
  • Choose who to follow up with: ... → the table has no filter; pick a step, a status or a button first.
  • A red line such as "{{2}} has no value and no fallback" under the template → fill that variable in the fields, or choose another template.
  • This broadcast has not been sent yet; there is nothing to retry or Nobody in this broadcast can be retried → there are no failed or held-back people a retry can reach (people who got the message, and those a retry broadcast already covers, are never retried).
  • An A/B test is set before the broadcast starts or Some messages of this broadcast were already sent ... → a test can only be set on a draft or scheduled broadcast that has sent nothing. Make a new broadcast and set the test on it.
  • Variant B: its template is utility and variant A's is marketing ... → every variant must be the same kind of message; choose another template.
  • Variant B is the same as variant A ... → change at least one value, or choose another template.
  • The winner was already picked → OmniBrand or a teammate picked it a moment before; reload the page.

Related

Checked against the product on Nov 9, 2026

In this section: Engage

All articles