## 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

- [WhatsApp campaign for contact lists](/hc/ajuda/articles/campaigns-whatsapp-campaign-en)
- [HSM templates and variables](/hc/ajuda/articles/campaigns-templates-hsm-variaveis-en)
- [Campaigns overview](/hc/ajuda/articles/campaigns-overview-en)