WhatsApp campaign results and analytics

Conversa Labs

Last updated on Oct 13, 2026

Overview

After a WhatsApp campaign is dispatched, open the campaign detail page to see its full performance: a delivery funnel (sent, delivered, read and replied), the rates for each stage, the average delivery and read times, the cost (when applicable), trend charts over time and the recipients table, where you can retry the ones that failed.

It is the right screen to measure a send, reprocess failures and decide whether to pause, resume or cancel a running campaign.

Prerequisites

  • Access to the Campaigns module.
  • A WhatsApp campaign already sent or sending (per-recipient metrics only exist for WhatsApp campaigns).
  • To see cost: the campaign must use a WhatsApp Cloud number (WhatsApp Web is not billed by Meta, so no cost is shown).

Step by step

  1. Open Campaigns in the sidebar and select the WhatsApp type.
  2. In the list, click the campaign you want to analyze.
  3. Read the header: title, status (draft, scheduled, sending, paused, completed or failed), the inbox used and the send/schedule date.
  4. In the Analytics section, read the delivery funnel and the rates.
  5. Check the average delivery time and average read time cards and, for Cloud campaigns, the estimated cost and actual cost cards.
  6. If there is enough data, follow the trend charts (delivery, read and reply).
  7. Scroll to the recipients table to see each contact's status and retry the failed ones.

Settings & options

Delivery funnel and rates

The funnel shows, cumulatively, how many contacts advanced through each stage (a contact who read the message also counts as delivered and sent). Rates are calculated over the total sent.

Stage What it means
Sent Messages dispatched to WhatsApp
Delivered Reached the contact's device (rate = delivered Γ· sent)
Read Opened by the contact (rate = read Γ· sent)
Replied The contact answered (rate = replied Γ· sent)

States that sit off the funnel appear only when they occur:

  • Failed: could not be delivered.
  • Skipped: the contact was skipped (for example, no valid number).
  • Queued: still pending/processing, i.e. waiting to be dispatched during an active send.

Average times

  • Average delivery time: the mean between the send and the delivery confirmation.
  • Average read time: the mean between the send and the read confirmation.

Cost (WhatsApp Cloud only)

  • Estimated cost: calculated at creation time, over the audience.
  • Actual cost: measured over the billed recipients (delivered, read and replied), updated as the campaign progresses. Shown in currency (default BRL).

Trend charts

They show how the delivery, read and reply rates evolve over time, based on periodic captures (snapshots) of the campaign's performance. They appear once there are at least two capture points.

Recipients table

  • Paginated list with contact, status, sent and delivered times and, on error, the failure message.
  • Status filter (all, pending, processing, sent, delivered, read, replied, failed, skipped).
  • Retry: a per-row button on failed messages and a Retry failed button to reprocess all failures at once. The retry runs in the background: a notice tells how many resends were scheduled and how many recipients were left out, and why. The table follows the resends on its own for about a minute, and Retry failed stays disabled meanwhile.
  • Resend anyway: shows in the explanation of the failures that depend on a fix of yours (a paused or rejected template, an invalid number, an invalid variable). Once the cause is fixed, use it to resend that recipient; the confirmation reminds you why the send failed.
  • Meta marketing limit (error 131049): the contact received too many marketing messages. Meta asks for at least 24 hours before resending, and resending earlier can block delivery to that contact for up to 24 hours, enforced for the whole account. So the platform holds that resend back until 24 hours have passed since the failure, the row's button included, and the notice counts how many recipients are waiting.
  • Contact who stopped marketing (error 131050): when the contact taps stop on marketing messages from this number, a campaign with a marketing template skips that contact before sending (it shows as skipped, with no charge). Utility and authentication templates still arrive. If Meta refuses with 131050 a send that had already left, the row shows as failed and should only be resent on purpose after the contact opts back in. When you create the campaign with a marketing template, the audience count and the cost estimate already leave these contacts out, and the form says how many stopped receiving marketing from this number. If the contact stops marketing after a failure, Retry failed does not resend to them: the row becomes skipped, and the notice counts how many recipients were left out for that reason.
  • Template still syncing (error 134101): a marketing template that was just created or changed takes up to 10 minutes to reach the Marketing Messages API, and Meta refuses the send in that time. The platform resends that message by itself once, 10 minutes later, through the same API; if it still fails, use the row's Retry.
  • Authentication template for a contact without a phone number: Meta does not accept authentication templates for the WhatsApp ID, so that contact shows as skipped. Send it to a contact with a phone number.

Campaign lifecycle

  • Pause: stop a send in progress. On an official API (WhatsApp Cloud) campaign the button shows while the status is Processing. Sending stops within seconds, and whoever has not received yet keeps waiting. Messages that were already queued when you paused do not go out and are not charged: they return to the campaign queue.
  • Resume: continue a paused send. Only the contacts still waiting receive it; whoever already received it, or had the send refused, never receives it again.
  • Cancel: end the campaign for good, including in the middle of the send. The confirmation shows how many contacts are still waiting; none of them will receive the campaign, and none of it is charged.

Automatic pause when Meta refuses the template

If Meta refuses the template in the middle of the send, the platform pauses the campaign on its own at the first refusal, instead of spending the rest of the audience on sends that would be refused the same way. Administrators get a notification and the campaign page shows a notice with the reason:

Meta error What it means
132015 Meta paused the template, usually after a drop in its quality rating.
132016 Meta disabled the template; it can no longer be sent.
132001 The template does not exist in this language (it was deleted or renamed).
132005 The text of the template, which has no variables, was longer than allowed. When the template has variables, the error applies only to that contact: it shows as a failure in the recipients table and the campaign keeps going.

This also applies right after the campaign shows as completed: messages still in the sending queue stay protected for a few hours, and a refusal in that window pauses the campaign again. The pause also happens when Meta reports that the template was paused, disabled or archived, even before the next refusal. While the template is not approved again, Resume stays locked and the notice explains the next step; as soon as Meta reactivates the template, Resume unlocks automatically and continues only with whoever is still waiting.

Automatic pause when Meta refuses the whole account

Some refusals do not depend on the template or on the contact: they apply to the whole WhatsApp account or to the business portfolio. Every recipient would be refused the same way, so the platform also pauses the campaign on the first refusal and notifies the administrators:

Meta error What it means
131063 Marketing templates are disabled for the Cloud API on this account. Send marketing through the Marketing Messages API, or turn that block off. The platform tries the same send once through the Marketing Messages API; the campaign only pauses if that attempt fails too.
131064 The account reached its messaging limit for template classification violations. Meta lifts the limit automatically after the enforcement period.
135000 Meta dropped messages it was holding for a quality review of the portfolio. While the review lasts, the portfolio cannot send templates.
131042 There is a problem with the account payment method. Check billing in WhatsApp Manager.
131031 or 368 The account is restricted or disabled for a policy violation.

The campaign also pauses when Meta answers a send saying the message was held for a quality review of the portfolio: Meta delivers held messages gradually and may drop them. Fix the cause in WhatsApp Manager before using Resume. Since the cause is not in the template, Resume does not wait for the templates to synchronize: the button stays available, and resuming is your call once the cause is fixed. In the recipients table these refusals are left out of Retry all failed; you can still resend a recipient on purpose after fixing the cause.

Automatic pause when the send stops moving

If the send of an official API campaign stops making progress for more than 15 minutes (for example, after a server restart in the middle of the dispatch), the platform acts on its own. With batched sending enabled on the account, it resumes the dispatch automatically, up to 3 times within an hour, and only pauses the campaign if it still does not move. Without batched sending, the campaign is paused at the first check. When the campaign is paused automatically, administrators get a notification and the campaign page shows a notice. Use Resume whenever you want: only the contacts still waiting receive it, and nobody receives it twice.

Use cases

  • Measure the read rate and reply rate of a send to assess engagement.
  • Reprocess the ones that failed without recreating the campaign, using Retry failed.
  • Pause the send when you notice many failures and check the number's health before resuming.
  • Track the actual cost versus the estimated cost on Cloud campaigns.
  • Compare how the rates evolve through the trend charts.

Tips, limits & best practices

  • Resume re-resolves the audience: if the segment, label or list gained contacts while the campaign was paused, those new contacts also receive it. Whoever already received it does not receive it again.
  • A message held back in the conversation because of the pause shows as not sent and cannot be retried from the conversation: when the campaign resumes, it sends a new message to that contact.
  • Retry failed is unavailable while the campaign is sending or paused; use it once sending ends.
  • Retry affects only recipients with the failed status β€” those already delivered, read or replied are not resent, and a retry never duplicates a contact.
  • Failures that only clear after a fix of yours (a paused, disabled or missing template, an invalid number, an invalid variable) are left out of Retry failed, because they would fail again. Once the cause is fixed β€” for example, the template is approved again β€” resend each one with the row's Resend anyway.
  • Failures that no resend can fix are never resent: a cancelled send, a contact without a phone, a refused consent and a deleted contact. A send whose outcome is uncertain (WhatsApp did not confirm whether the message went out) is not resent either, so the contact never receives it twice. If the contact lost its phone, refused consent or was deleted after the failure, the retry marks it skipped.
  • Trend charts and snapshots exist only on WhatsApp campaigns and need at least two captures to appear.
  • Cost is shown only on WhatsApp Cloud campaigns (WhatsApp Web is not billed by Meta).
  • Many failures usually mean an aggressive sending pace or a number with poor health β€” slow the pace down (larger delays and smaller batches) on the next campaign.
  • Rates are always over the total sent, not over the initial audience.

Troubleshooting

  • The campaign paused on its own: Meta refused the template, or the send stopped making progress. Read the notice at the top of the page. If it was the template, check its status in the inbox templates and resume once it is approved again; if the send stopped moving, just Resume.
  • Retry failed scheduled fewer recipients than the table's failures: the others have an error that a resend cannot fix, or one that depends on a fix of yours. The notice shows how many were left out and each row explains why; once the cause is fixed, use Resend anyway on the row.
  • "This retry is already being scheduled": the same retry was requested less than a minute ago (a double click, or another administrator at the same time). Wait for the table to update; there is no need to repeat it.
  • Resume is locked: the template is not approved yet, or the platform is still confirming its current status with Meta. The page refreshes on its own and unlocks the button when possible.
  • No trend charts appear: there are not enough snapshots yet (at least two points are needed). Wait for the next captures and refresh the page.
  • No cost cards: the campaign is not WhatsApp Cloud, or there is no billable cost yet.
  • Many failures: check the number's health and the sending pace; use Retry failed after fixing the cause.
  • Empty table: confirm the campaign has already been dispatched (draft or scheduled campaigns have no processed recipients yet).

See also