---
title: 9.4 WhatsApp Campaigns
description: WhatsApp Campaigns let you send the same approved template message to many contacts at once. A campaign holds the template. Each broadcast you add to it is…
url: "https://peikly.com/docs/whatsapp-campaigns/"
updated: "2026-10-10"
category: WhatsApp
tags:
  - Manual sync
---

# 9.4 WhatsApp Campaigns

## What This Feature Does

WhatsApp Campaigns let you send the same approved template message to many contacts at once. A campaign holds the template. Each **broadcast** you add to it is one send to an audience, either immediately or at a scheduled time. Creating the campaign alone sends nothing.

WhatsApp campaigns have their own page under the **WhatsApp** sidebar menu. There is no shared "Campaigns" area for all channels, and you do not choose a channel inside the campaign. Email campaigns are separate, under **Email** → **Campaigns** ([10.5](/docs/email-campaigns/)).

## When to Use

- Use for promotional announcements, re-engagement, or notifications sent to many contacts.
- Use when you need to track delivery, read rates, and contact responses per broadcast.
- Do not use for one-on-one conversations — use **WhatsApp Chat** for that.

## Prerequisites

- CompanyAdmin role.
- Enterprise plan.
- A connected Meta account with WhatsApp permissions. Without it, the **WhatsApp** menu does not appear.
- At least one **Approved** WhatsApp template ([9.3](/docs/whatsapp-templates/)). The template decides which phone number sends the campaign.
- An active WhatsApp phone number, the one the template belongs to ([9.1](/docs/peikly-whatsapp-setup/)).
- Your recipients already saved as contacts in Peikly. You choose the audience from your contacts when you create a broadcast. To bring in a list of numbers, import them first under [5.6 Import WhatsApp Contacts](/docs/import-contacts-peikly/). You cannot upload a file from inside a campaign.

## Common Use Cases

- Welcome broadcast for newly imported leads.
- Promotion or seasonal announcement.
- Abandoned-cart recovery reminder.
- Re-engagement campaign for opted-in inactive contacts.

## Quick Path: Create and Send a WhatsApp Campaign

1. In the left sidebar, open **WhatsApp** → **Campaigns**. The page is titled **WhatsApp Campaigns**.
2. Click **New Campaign** (top right).
3. Enter a **Title**, pick an **Approved template**, map its placeholders, and click **Create**.
4. Back on the list, click the **New Broadcast** (paper-plane) button on the campaign's row. You can also open the campaign and click **New Broadcast** there.
5. Choose the audience, then click **Save and Queue** to send now, **Save and Schedule** to send later, or **Save** to keep it as a draft.

The sections below explain each step.

## 9.4.1 View Campaigns

1. In the left sidebar, expand **WhatsApp** and click **Campaigns**.
2. The **WhatsApp Campaigns** page shows all-time WhatsApp performance at the top and your campaigns below. Each campaign row has these buttons: **Details** (eye icon, opens **Campaign Details**), **Edit**, **New Broadcast**, **Archive** (or **Restore**), and **Delete**.

## 9.4.2 Create a Campaign

1. On the **WhatsApp Campaigns** page, click **New Campaign**. The **Create WhatsApp Campaign** form opens.
2. Fill in:
   - **Title:** a name so you can recognise the campaign later.
   - **Approved template:** only templates with status **Approved** are listed, shown as *name (language)*. The template's phone number is the number that sends this campaign. If the list is empty, create a template and get it approved first ([9.3](/docs/whatsapp-templates/)).
   - **Template parameter mapping:** this appears when the template has placeholders such as `{{1}}`. For each placeholder, choose where its value comes from, for example **Contact – Full name** or **Contact – City**. The **Template preview** shows the result with sample values. Templates with a catalog button also show a product picker here.
   - **Tags (CSV)** (optional): comma-separated labels for organising campaigns, for example `promo, q4`. These do **not** select recipients. You pick recipients on the broadcast.
   - **Active:** leave it on. Only active campaigns can get new broadcasts.
3. Click **Create**.

There is no phone-number field, audience field, or contact upload on this form. The number comes from the template, and the audience is chosen per broadcast (next step).

## 9.4.3 Create a Broadcast (Send the Campaign)

A campaign can have many broadcasts. Each broadcast is one send of the campaign's template to an audience.

1. Start the broadcast in either of these ways:

   - On the **WhatsApp Campaigns** list, click the **New Broadcast** (paper-plane) button on the campaign's row.
   - Open the campaign with **Details** (eye icon) and click **New Broadcast** at the top of the page.

   The button is disabled for an archived campaign.
2. Under **Send mode**, choose:

   - **Send to the audiences:** send to the contacts that match the **Audience** filters.
   - **Resend:** reach people from an earlier broadcast again. This option is available only after at least one broadcast has completed. Pick the source broadcast, then tick one or both options:
     - **Reminder:** contacts who were sent the message but did not receive or open it.
     - **New contacts:** contacts who match the filters but were not in previous broadcasts.
3. Under **Template**, you can override the placeholder values for this send only.
4. Optional: under **Automation**, attach workflows to start when the broadcast is sent, delivered, read, or replied to ([11. Automation Workflows](/docs/automation-workflows/)).
5. Under **Audience**, narrow down your contacts:

   - **Search, Person type, Active, City, Language:** standard contact filters.
   - **Tags:** type a tag and press Enter. Only contacts that have *all* of the listed tags are included.
   - **Exclude tags:** type a tag and press Enter. Contacts that have *any* of these tags are skipped.
   - **Created/Updated from / to:** a date range.
   - **Include bounced numbers (undeliverable):** off by default.

   Click **Preview audience** to see the matching count and the first 100 contacts before you send.
6. Choose how to save:

   - **Save and Queue:** send now.
   - **Save and Schedule:** pick a date, time and time zone, or deliver at each recipient's local time. A scheduled broadcast also appears on the [16. Scheduler](/docs/scheduler/) calendar.
   - **Save:** keep it as a **Draft**. Nothing is sent. A draft can be edited later from the **Broadcast History** table on **Campaign Details**.

## 9.4.4 Monitor Broadcast Status

| Status | Meaning |
| --- | --- |
| Queued | Waiting to start (or paused and waiting to resume — see below) |
| Processing | Messages being sent |
| Completed | All messages dispatched |
| Failed | Broadcast encountered a critical error |
| Partially Failed | Some messages sent, some failed |

Click **Broadcast Details** to see per-recipient delivery status, plus (on plans with advanced reports) a 72-hour hourly delivery/engagement chart, an engagement-pattern chart (by hour, weekday, and day of month), and — if a workflow is attached to the broadcast — a workflow instance summary (Total/Succeeded/Failed) with a details popup for failed instances.

### Why a Broadcast Paused (Returned to Queued)

A broadcast automatically goes back to **Queued** before every recipient is processed when it hits one of these conditions — it resumes on its own once the condition clears, no action is normally needed:

| Pause Reason | Meaning | Resumes When |
| --- | --- | --- |
| Daily send quota | The phone number hit its configured daily send limit | The next UTC day |
| Provider rate limit | Meta throttled sending and asked Application to back off | The provider-specified back-off window passes |
| Quality protection | The phone's Meta quality rating is Red — marketing sends are paused to protect it from a ban | The rating recovers, or you edit the campaign to use an approved template that belongs to a different, healthy number |
| Warm-up ramp limit | The number is still on Meta's warm-up ramp and hit today's (lower) warm-up cap | The ramp's next step, or the next UTC day |

The broadcast progress bar shows the pause reason and, where known, the estimated resume time — check the Health Indicators on the sending number in [9.1 WhatsApp Phone Numbers](/docs/peikly-whatsapp-setup/) for the underlying cause.

## 9.4.5 Campaign Performance Dashboard

On the **Campaign Details** page (the campaign itself, not a single broadcast), review cumulative performance across all of the campaign's broadcasts:

- **Performance overview** cards: Recipients, Delivered, Failed, Read, Replied (with rates), Delivery rate, and the most recent broadcast's status.
- **Engagement funnel** chart.
- **Engagement by country** map.
- **Engagement over time** chart.
- **Broadcast History** table listing every broadcast sent from this campaign.

## 9.4.6 Re-send After a Failed Broadcast

WhatsApp broadcasts have no **Retry** button. To reach the people a failed broadcast missed:

1. Fix the cause first. Click **Details** on the broadcast row and check the failure reasons. Common causes are a template that is no longer Approved, an inactive or Red-rated number, or a daily limit.
2. On **Campaign Details**, click **New Broadcast**.
3. Choose **Send mode** → **Resend**, select the failed broadcast as the source, and tick **Reminder**. Resend is available only after at least one broadcast in the campaign has completed.
4. Click **Save and Queue** or **Save and Schedule**.

## 9.4.7 Archive or Delete a Campaign

- **Archive** (box icon on the campaigns list) makes the campaign inactive. You cannot add new broadcasts to it, and its queued or scheduled broadcasts fail instead of sending. Click **Restore** to bring it back.
- **Delete:** click **Delete** on the campaigns list or on **Campaign Details**, then confirm in the popup. The campaign is removed from your list, and any queued or scheduled broadcasts fail instead of sending. Archive the campaign instead if you may need it again.

## Errors, Messages, and Exceptions

| Message | Why It Happens | How to Fix |
| --- | --- | --- |
| `Campaign not found.` | Campaign deleted or access denied | Go back to the campaigns list |
| `Could not create campaign.` | Validation or server error | Check all required fields |
| `Resend is not available until at least one broadcast has completed.` | No completed broadcasts yet | Wait for the first broadcast to complete |
| `Select at least one resend option.` | Neither "Reminder" nor "New contacts" was selected | Choose at least one recipient option |
| `Scheduled time is required when not queuing immediately.` | Scheduled mode selected but no time entered | Enter a valid future date and time |
| Template not approved | Selected template is not Approved status | Wait for Meta approval or select an approved template |
| Daily send limit reached | Exceeded the WhatsApp phone's daily limit | Wait until the next day or increase the phone's daily limit |
| Recipient skipped: recently Undeliverable | The contact had a recent delivery failure on WhatsApp | Expected protective behavior — no action; use [Reset WhatsApp Status](/docs/batch-contact-operations/) only if the contact was flagged in error |
| Recipient skipped: frequency capped | This contact already received a marketing message recently | Expected — spreads marketing sends out to protect engagement quality; wait for the next campaign window |
| Recipient skipped: recent ecosystem throttle | Meta recently throttled sends to this contact (error 131049) | Expected temporary back-off — no action needed |
| Recipient skipped: quality protection | The sending number's quality rating is Red | See [9.1 WhatsApp Phone Numbers](/docs/peikly-whatsapp-setup/) Health Indicators — switch to a healthy number or wait for recovery |

## What happens if this fails?

- If the template becomes unavailable, the broadcast cannot continue.
- If the sending phone reaches its daily limit, delivery slows or stops until the reset window.
- If only some recipients fail, the broadcast still completes for successful recipients and logs the failures in broadcast details.

## Best Practices

- Send campaigns during business hours in your target audience's timezone.
- Use **Reminder** broadcasts to reach contacts who were in the first broadcast but did not read the message.
- Monitor delivery rates in the first hour after broadcasting — high failure rates may indicate list quality issues.
- Do not create campaigns with templates that are not yet Approved — they will fail at dispatch time.
- Build or review the message first in [9.3 WhatsApp Message Templates](/docs/whatsapp-templates/).
