> ## Documentation Index
> Fetch the complete documentation index at: https://docs.textyess.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp campaigns: create, review, test, schedule and send

> Create a WhatsApp campaign in Campaigns → WhatsApp: choose the audience, write the message, add an image, video or PDF and buttons, pass Meta review, send a test, schedule or send, credits, results and errors.

A WhatsApp campaign sends one marketing message to the contacts in your lists and segments. You manage WhatsApp campaigns in [Campaigns → WhatsApp](https://ai.textyess.com/campaigns). A campaign has three steps: **Recipients**, **Content** and **Review**. Meta must approve the message before you can test, schedule or send the campaign. After the campaign starts to send, a fourth step, **Results**, shows what happened. For campaigns that AI suggests, see [AI campaigns](/campaigns/ai-campaigns). For reusable templates in the Inbox, see [WhatsApp templates](/campaigns/whatsapp-templates).

## Create a WhatsApp campaign

To create a campaign, open [Campaigns → WhatsApp](https://ai.textyess.com/campaigns).

1. Click **Create**. If you have no campaigns yet, click **Create new campaign**.
2. If the panel shows two options, click **Start from scratch**.
3. Enter the **Campaign name**.
4. Select the **Language** of your message.
5. Click **Save**.

The campaign opens on the **Recipients** step with the status **Draft**. Your customers do not see the campaign name in the message. When **UTM tracking** is on, the name is the utm\_campaign value of your button links.

If the window **New Meta API for marketing messages** opens, click **Enable Marketing Messages API** and follow the steps in your Meta Business Manager. Then click **I've accepted the terms** and confirm.

## Choose the language of a WhatsApp campaign

You select the **Language** when you create a campaign in **Campaigns → WhatsApp**. The campaign pages have no field to change it later. To use another language, create a new campaign.

The language also decides who gets the campaign. By default, a contact gets the campaign only when the country of the phone number matches the language. For example, **Italian (IT/CH)** reaches numbers from Italy and Switzerland, and **English (US)** reaches only numbers from the United States. If you select **Other**, the campaign does not go to numbers from Italy, France, Portugal, Spain, Germany, Poland, Romania, Hungary, the Netherlands or Switzerland.

To send to every country, turn on **Send to all countries** in the **Recipients** step. If 5% or more of your recipients have a number from another country, the window **Send to all countries?** opens when you click **Continue**. Click **Skip them** or **Send to all countries**.

## Choose the audience of a WhatsApp campaign

You choose who gets the message in the **Recipients** step of a campaign in **Campaigns → WhatsApp**.

1. Under **Include**, select one or more lists or segments. You must select at least one.
2. Under **Exclude**, select the lists or segments to leave out.
3. To make a new list, open the selector and click **Create new list**. Then click **Fixed list** or **Smart list**.
4. Click **Continue**.

The selector shows only segments that are ready. A contact who is in two lists counts once and gets one message. To create and manage lists and segments, see [Lists and segments](/contacts/lists-and-segments).

## See how many contacts a WhatsApp campaign reaches

In the **Recipients** step of a campaign in **Campaigns → WhatsApp**, the **Recipients** card shows the count, for example "1,250 unique recipients". This count leaves out contacts without a WhatsApp-reachable number and contacts that your filters exclude. Each contact counts once, also when the contact is in more than one list.

If the exact count takes too long, the card shows "About 1,250 recipients". This quick estimate can be a little high. It does not subtract opt-outs, blocked contacts, recently messaged contacts or duplicates.

The **Review** step shows "Estimated N total recipients". Some of these contacts can still be held when the campaign sends. See "Why a contact in the audience did not get a WhatsApp campaign" on this page.

## Skip contacts you messaged recently

In the **Recipients** step of a campaign in **Campaigns → WhatsApp**, use **Skip recently messaged**. Enter a number of days. The campaign leaves out every contact that you already messaged in that number of days. Enter **0** to skip nobody. This is the default.

The **Review** step then shows, for example, "Skipping contacts messaged in the last 7 days." Use this setting when you send a similar campaign again. It stops a second message to the contacts who got the first one.

## Who does not get a WhatsApp campaign

When a campaign from **Campaigns → WhatsApp** sends, TextYess leaves out these contacts:

* Contacts with no phone number.
* Contacts in a list or segment under **Exclude**.
* Contacts who opted out, for example with the stop button or a STOP message. These contacts are on your blacklist.
* Contacts that you blocked in the Inbox.
* Contacts who unsubscribed from your WhatsApp marketing.
* Contacts whose phone number is from a country that does not match the campaign language, unless **Send to all countries** is on.
* Contacts messaged within the days of **Skip recently messaged**.
* If your number is also used in the WhatsApp Business app: contacts imported from the app who did not opt in.

A campaign does not need an opt-in from each contact. An opt-out or an unsubscribe stops it.

## Why a contact in the audience did not get a WhatsApp campaign

Some contacts in the audience of a campaign from **Campaigns → WhatsApp** do not get the message for these reasons:

* The contact got another outbound message from you in the last 3 hours, for example a campaign or an automation message. Two campaign messages so close together read as spam.
* Your team handles the contact's conversation in the Inbox. After a takeover, campaigns hold this contact for up to 48 hours, or until the AI is active again.
* You ran out of outbound credits during the send.
* The message uses the first name, the contact has no first name, and the variable has no fallback text.
* The number is not on WhatsApp or cannot receive messages.
* Meta's daily sending limit of your number was reached.

The **Results** step lists these contacts under **Held for you** or **Why messages failed**.

## Delivery options of a WhatsApp campaign

The **Delivery options** card in the **Recipients** step of a campaign in **Campaigns → WhatsApp** has three switches:

* **Smart sending** (on by default): if Meta pauses your template during the send, TextYess holds the remaining messages and tries again later. When the switch is off, those messages fail.
* **UTM tracking** (on by default): when you send the campaign to review, TextYess adds UTM parameters to the button links. To set the values, click **Edit settings**. The **UTM tracking** card is on the [Organization settings page](https://ai.textyess.com/organization-settings).
* **Send to all countries** (off by default): the campaign goes to every selected contact, also when the phone number is from a country that does not match the campaign language.

## Choose the type of a WhatsApp campaign

In the **Content** step of a campaign in **Campaigns → WhatsApp**, select one of three types:

* **Classic**: one message with an optional image, video or PDF, a footer and buttons.
* **Carousel**: a message with up to 10 cards that customers swipe. Each card has an image, a short text and a link button.
* **Limited offer**: an offer card with your discount code and a live countdown to the end of the offer.

Fill in the content and click **Continue**. The campaign goes to the **Review** step. The phone preview next to the form shows how the message looks in WhatsApp. On a small screen, switch between **Edit** and **Preview**.

## Write the message of a WhatsApp campaign

In the **Content** step of a campaign in **Campaigns → WhatsApp**, type your text in the **Message** field. A **Classic** message can have up to 1,024 characters. The counter under the field shows how many you used.

Use the toolbar above the field for bold, italic, strikethrough and emoji. Emoji are allowed in the message, but not in the button text or the footer.

To get a draft text from AI, click **Generate with AI** under the message:

1. Answer **What is the campaign about?** and **Who is the target audience?**
2. If you offer a coupon, describe it.
3. Click **Generate**.

AI writes the text in the campaign language. Read and change the text before you continue.

## Add the first name of the contact to a WhatsApp campaign message

In the **Message** field of a campaign in **Campaigns → WhatsApp**, click **Variables** under the text and select **First name**. First name is the only variable for campaign messages.

1. Enter the **Fallback text (required)**. A contact with no first name sees this text instead, for example "Friend". It can have up to 60 characters.
2. Click **Insert**.

You can also type `{{` in the message and select **First name**. Then open **Variables** again and add the fallback.

A contact with no first name and no fallback does not get the message. The **Review** step warns you how many recipients this affects. To include them, add a fallback in the **Content** step.

## Message rules that Meta rejects

When you click **Continue** in the **Content** step of a campaign in **Campaigns → WhatsApp**, the dashboard checks the message against Meta's rules. It shows an error when the message:

* Starts or ends with a variable.
* Has two variables with no text between them.
* Uses the same variable twice.
* Has a tab character.
* Has more than 4 spaces in a row.
* Starts or ends with a blank line.

Change the text and click **Continue** again. These rules exist because Meta rejects templates that break them.

## Add an image, video or PDF to a WhatsApp campaign

In the **Content** step of a **Classic** campaign in **Campaigns → WhatsApp**, use **Media (optional)**. Click **Upload** or drag a file into the box. A campaign can have one file:

* **Image**: JPEG or PNG, up to 5 MB, and up to 2048 pixels on the longest side.
* **Video**: up to 16 MB. If needed, your browser converts the video for WhatsApp before the upload. Wait until "Preparing your video" ends. **Continue** stays off until then.
* **PDF**: up to 64 MB.

To change the file, click the pencil icon. To remove it, click the bin icon. A **Limited offer** campaign must have an image or a video. Each **Carousel** card has its own image.

## Can I send a GIF in a WhatsApp campaign?

No. The image of a WhatsApp campaign in **Campaigns → WhatsApp** must be a JPEG or PNG file. A GIF or WEBP image is refused with the error "Image must be in JPEG or PNG format". To show motion, upload a short video instead. Videos up to 16 MB are allowed.

A campaign also does not accept audio files, or documents that are not PDF. For these, the error is "File must be an image, video, or PDF".

## Send a PDF with a preview image

When you add a PDF to a campaign in **Campaigns → WhatsApp**, the option **Send the PDF with a preview** appears. It is off by default.

WhatsApp does not show a preview of a PDF that a campaign sends. With the option on, TextYess sends the first page of your PDF as the campaign image. It also adds a button that opens the file, with a label in the campaign language, for example "Open the PDF". With the option off, the PDF goes as a plain attachment.

A **Limited offer** campaign cannot carry a PDF. Use an image or a video for it.

## Generate a campaign image with AI

Shopify stores with a connected store can create a campaign image with AI. In the **Content** step of a **Classic** or **Limited offer** campaign in **Campaigns → WhatsApp**, click **Generate with AI** next to **Upload**. Write the message first, because the image is built from it.

1. Under **Feature a product**, select up to 4 products, or none for a brand image.
2. Optional: under **Add a note**, describe the mood, for example "warm summer mood".
3. Select an **Aspect ratio**: **Landscape**, **Square** or **Portrait**.
4. Click **Generate visual**.
5. Click **Use this visual**, or click **Regenerate** for a new one.

The dialog shows how many images you can still generate today.

## Add a button to a WhatsApp campaign

In the **Content** step of a **Classic** campaign in **Campaigns → WhatsApp**, select one **Button**:

* **None**: no extra button.
* **Quick reply**: tapping the button sends a reply in the chat.
* **Link**: tapping the button opens a web page.

Enter the **Button text**: up to 25 characters, with no emoji. For a link, enter the **Button link**. It must be a full web address, for example [https://yourshop.com](https://yourshop.com). If you type it without https\://, TextYess adds it. The link cannot contain a variable, and it cannot be a WhatsApp link (wa.me or whatsapp.com).

Next to this button, a campaign can also have the stop button and a discount code copy button. When **UTM tracking** is on, the link opens with UTM parameters added.

## What happens when a customer taps a quick reply button

For a **Quick reply** button in a campaign in **Campaigns → WhatsApp**, choose an option under **When tapped**:

* **Let the assistant reply**: your AI agent answers the customer.
* **Start a flow**: an automation starts. Select it in **Flow to start**. The list shows only published flows that start with the **Campaign Button Tapped** trigger. To create one, click **Build one**.

The button text cannot be a word that unsubscribes the contact, such as STOP or UNSUBSCRIBE. In that case, the dashboard shows "This label would unsubscribe contacts who tap it. Choose a different label."

## Add a stop button to a WhatsApp campaign

In the **Content** step of a campaign in **Campaigns → WhatsApp**, find **Add a stop button (strongly suggested)**. Select **Yes, I want to add a stop button**. The option is on by default.

The campaign then shows a **STOP** button. A contact who taps it goes on your blacklist. Your campaigns then leave this contact out. The stop button lowers spam reports. Too many spam reports can get your WhatsApp account banned.

A **Limited offer** campaign cannot have a stop button. Write "Reply STOP to opt out" in its message, so that contacts can still unsubscribe.

## What happens when a customer writes STOP

A contact goes on your blacklist when the contact sends you a WhatsApp message that is only STOP or UNSUBSCRIBE, in capital or small letters. A message that contains one of these phrases also does it: "stop messaging", "stop texting", "stop sending", "unsubscribe", "opt out", "remove me", "don't contact", "no more messages", "stop messages", "stop texts".

A sentence that only contains the word "stop", for example "what is the bus stop", does not opt the contact out. Campaigns from **Campaigns → WhatsApp** leave out every contact on the blacklist.

## Add a discount code copy button to a WhatsApp campaign

In the **Content** step of a **Classic** campaign in **Campaigns → WhatsApp**, select **Add discount code copy button**. Then enter the **Discount code**.

* The code can have up to 15 characters.
* Use only letters and numbers. Meta rejects spaces, hyphens and other symbols.

WhatsApp shows a fixed **Copy code** button. Customers tap it to copy the code. The button works on mobile only. The campaign sends the code as you type it, so make sure that the code exists in your store.

## Add a footer to a WhatsApp campaign

In the **Content** step of a **Classic** campaign in **Campaigns → WhatsApp**, type a short text in **Footer**. The footer shows under the message, for example "For questions feel free to contact us".

* The footer can have up to 60 characters.
* It cannot contain emoji or line breaks, because Meta rejects the template.

**Carousel** and **Limited offer** campaigns have no footer.

## Create a carousel campaign

In the **Content** step of a campaign in **Campaigns → WhatsApp**, select **Carousel**.

1. Write the **Message** that shows above the cards.
2. For each card, upload an **Image**: JPEG or PNG, up to 5 MB, up to 2048 pixels.
3. Write the **Card message**: up to 160 characters, with no line breaks.
4. Enter the **Button text** (up to 25 characters) and the **Button link**.
5. Click **Add card** for the next card.
6. Click **Continue**.

A carousel has 1 to 10 cards, and each card needs an image. A carousel has no footer and no image above the message. You can edit a carousel only while it is a **Draft**.

## Create a limited-time offer campaign

In the **Content** step of a campaign in **Campaigns → WhatsApp**, select **Limited offer**. WhatsApp shows an offer card with a countdown above your message.

1. Upload an image or a video. The offer needs one. A PDF is not possible.
2. Enter the **Offer title**, up to 16 characters.
3. Set **Offer ends** to a date and time in the future.
4. Enter the **Discount code**, with letters and numbers only.
5. Write the **Message**, up to 600 characters.
6. Enter the **Button text** and the **Button link**.

This type has no stop button, no quick reply button and no footer. You cannot send or schedule the campaign after the offer ends. A scheduled send after the end of the offer is refused.

## Add a follow-up message to a WhatsApp campaign

Shopify stores can add a follow-up message to a **Classic** or **Limited offer** campaign. In the **Content** step of the campaign in **Campaigns → WhatsApp**, turn on **Add a follow-up message**.

1. Select the **Time delay**: 12h, 24h, 48h (recommended) or 72h.
2. Write the **Follow-up message**.
3. Optional: enter a **Button text** and a **Button link**.

After the delay, the follow-up goes to the contacts who got the campaign but did not reply and did not order. Meta reviews the follow-up together with the campaign. Each follow-up message uses one outbound credit. To stop the follow-up before it sends, click **Cancel follow-up** on the **Review** step.

## Send a WhatsApp campaign to Meta for review

Meta must approve the message of every campaign before it can go out. In the **Review** step of a campaign in **Campaigns → WhatsApp**, click **Send to review**. The status changes to **In review**.

Meta usually answers in a few minutes, but it can take up to 24 hours. TextYess checks the answer for you. When Meta approves the message, the status changes to **Approved**. Then you can test, schedule or send the campaign.

If your plan has no outbound messages or your subscription is not active, **Send to review** opens the plans page. If WhatsApp is not connected, it opens **WhatsApp Integration**.

## What the campaign score on the Review step means

The **Score** row on the **Review** step of a campaign in **Campaigns → WhatsApp** grades your campaign out of 10. AI calculates it. Click the score to see the criteria and what you can improve. A score of 7 or more shows in green.

The score is advice only. It does not stop you from sending the campaign to review or from sending it.

## WhatsApp campaign statuses before the send

The **Status** column in **Campaigns → WhatsApp** shows these statuses before a campaign sends:

| Status | Meaning |
| - | - |
| **Draft** | You did not send the campaign to Meta review yet. |
| **In review** | Meta is reviewing the message. |
| **Approved** | Meta approved the message. You can test, schedule or send. |
| **Rejected** | Meta refused the message. |
| **Scheduled** | The campaign sends at the date and time that you set. |
| **Error during creation. Try again** | The campaign cannot continue. Duplicate it. |

## WhatsApp campaign statuses during and after the send

The **Status** column in **Campaigns → WhatsApp** shows these statuses after a campaign starts:

| Status | Meaning |
| - | - |
| **In progress** | The campaign is sending. |
| **Delayed (Smart Sending)** | Meta paused the template during the send. Sending is on hold. |
| **Sent** | The campaign finished. |
| **Incomplete** | The campaign stopped before the end, for example when the outbound credits ran out. |
| **Failed** | Most or all of the messages did not go out. The **Results** step gives the reason. |
| **Cancelled** | You stopped the campaign. |

For a campaign that started to send, click its status to open the **Results** step.

## WhatsApp campaign stuck In review

A campaign in **Campaigns → WhatsApp** stays **In review** while Meta reviews its message. This usually takes from a few minutes to 24 hours. TextYess checks Meta's answer automatically.

To check the answer now:

1. Open the actions menu (three dots) at the end of the campaign row.
2. Click **Send 'In Review' again**.

TextYess asks Meta for the current result and updates the status. This does not send the campaign again. If the campaign is still **In review** after 24 hours, open the **Help** menu at the top of the dashboard and click **Contact support**.

## WhatsApp campaign rejected by Meta

When Meta refuses the message of a campaign in **Campaigns → WhatsApp**, the status is **Rejected**. Point to the status to read the next steps. If Meta refuses the message when you click **Send to review**, an error message also shows Meta's reason. You cannot edit a rejected campaign. To fix it:

1. Open the actions menu (three dots) at the end of the campaign row.
2. Click **Edit & resubmit**. TextYess creates an editable copy and opens it.
3. Change the content that Meta refused.
4. Click **Send to review** on the copy.

Before you change the text, read Meta's template guidelines. If you think the rejection is wrong, request a review in **Account Quality** in your Meta Business Manager. If the campaign has a follow-up, the status tells you which of the two messages Meta refused.

## Edit a WhatsApp campaign

What you can change in a campaign in **Campaigns → WhatsApp** depends on its status:

* **Recipients** step (name, audience, delivery options): in **Draft**, **In review**, **Approved** and **Scheduled**. These changes do not need a new Meta review.
* **Content** step: in **Draft** and **Approved**. If you change the content of an **Approved** campaign, it goes back to **Draft** and needs a new Meta review. A **Carousel** can change only in **Draft**.
* After the campaign starts to send, you cannot change it.

To change the content of a **Scheduled** campaign, click **Unschedule** first. The campaign goes back to **Approved**.

## Send a test of a WhatsApp campaign to yourself

After Meta approves a campaign in **Campaigns → WhatsApp**, you can send a test to your own phone.

1. Open the campaign and go to the **Review** step.
2. In the **Test** row, click **Send test**.
3. Enter your **Phone number**.
4. Select the **Country code of the phone number**.
5. If the message uses the first name, enter a **First name**.
6. Click **Send now**.

The test goes only to the number that you enter. If the campaign has a follow-up, the campaign message and the follow-up are both sent at once. You can send more than one test. Before Meta approves the campaign, the **Test** row shows "Available once Meta approves your campaign."

## Schedule a WhatsApp campaign

In the **Review** step of an **Approved** campaign in **Campaigns → WhatsApp**:

1. Click **Schedule**.
2. Select the date and the time. They use the time zone of your browser.
3. Click **Schedule**.

The status changes to **Scheduled**. You cannot schedule a campaign in the past. To change the time, click **Unschedule**, then schedule again. The **Schedule** window warns you if your outbound credits are too few now. The send uses the credits that you have when it starts.

If the send cannot start within 10 minutes of the scheduled time, the campaign fails with "This scheduled campaign didn't start on time, so it wasn't sent." Duplicate it to send again.

## Send a WhatsApp campaign now

In the **Review** step of an **Approved** campaign in **Campaigns → WhatsApp**, click **Send now**. The window **Start this campaign?** opens. It warns you when you do not have enough outbound credits, or when the campaign goes past the daily WhatsApp limit of your number.

Click **Send now** to start. If the window warns you, the button shows **Send anyway** or **Continue & Send**. The status changes to **In progress**, and the **Results** step updates while the campaign sends.

Before the send, TextYess can show two other windows: a ban risk warning, and a check of your recipient lists. Both are explained on this page.

## How many credits a WhatsApp campaign uses

Each message that a campaign in **Campaigns → WhatsApp** sends uses one outbound credit. A carousel is one message. A follow-up message uses one more credit for each contact who gets it.

Contacts that the campaign leaves out or holds do not use credits. If WhatsApp refuses a message at sending, TextYess gives the credit back. If WhatsApp accepts a message but cannot deliver it later, the message still uses its credit.

To see the credits you have left, click **Usage** at the top right of the dashboard. For your plan and its limits, see [Plan and billing](/plan-and-billing).

## Not enough credits for a WhatsApp campaign

When you send or schedule a campaign in **Campaigns → WhatsApp**, the dialog compares your recipients with your outbound credits. If you have too few, it shows **Not enough credits for every recipient** and tells you what happens:

* If your plan can bill extras, the campaign sends to everyone. The extra messages go on your next invoice at the extra-message price. Extras have a limit for each period. Past it, the other contacts do not get the message.
* If not, the campaign reaches as many contacts as your credits cover, then stops. You are not charged for the others.

Extras need payment by card or SEPA Direct Debit, an active paid plan, and no free trial. See [Plan and billing](/plan-and-billing).

## Daily WhatsApp sending limit and campaigns

Meta limits how many messages your WhatsApp number can send in 24 hours. Click **Usage** at the top right of the dashboard to see this limit and the messages that you sent today.

When you send a campaign in **Campaigns → WhatsApp**, the window **Start this campaign?** warns you if the campaign goes past the limit. It shows the maximum, the messages you already sent in the last 24 hours, and the contacts of the campaign.

If the limit is reached during the send, the remaining messages are not sent. The **Results** step lists them under **Why messages failed**.

## What happens to contacts who are not on WhatsApp

A campaign in **Campaigns → WhatsApp** sends to every phone number in its audience. If a number is not on WhatsApp, WhatsApp does not deliver the message.

In the **Results** step, these messages show under **Why messages failed**, in the group **Didn't deliver**, as **Undeliverable**. The note says: "Most often the number isn't on WhatsApp or can't receive messages."

If WhatsApp accepted the message for sending, the message uses an outbound credit, also when it is not delivered. To get the numbers, click **Export CSV** under **Failed contacts**.

## Stop a WhatsApp campaign that is sending

You can stop a campaign in **Campaigns → WhatsApp** while its status is **In progress** or **Delayed (Smart Sending)**.

1. Open the actions menu (three dots) at the end of the campaign row and click **Stop campaign**. You can also click **Cancel campaign** on the **Review** step.
2. In the window **Cancel campaign**, click **Cancel campaign**.

The status changes to **Cancelled**. Messages already sent stay sent. The other contacts do not get the message. You cannot undo this or continue the campaign. Deleting a campaign does not stop a send that is in progress.

## Can I restart a stopped or failed WhatsApp campaign?

No. A campaign in **Campaigns → WhatsApp** with the status **Cancelled**, **Incomplete** or **Sent** cannot start again. A **Failed** campaign can start again only when an exclude list caused the failure. In that case, the **Results** step shows **Repair & resend**. These campaigns failed before any message went out.

To send a campaign again, click **Duplicate** in the actions menu. The copy goes to the whole audience again. It does not know who got the first campaign. To leave those contacts out, set **Skip recently messaged** to the number of days since the first send.

## Duplicate, rename or delete a WhatsApp campaign

In [Campaigns → WhatsApp](https://ai.textyess.com/campaigns), open the actions menu (three dots) at the end of a campaign row:

* **Duplicate** creates a copy named "Copy of" and the campaign name. The copy is a **Draft** with the same audience, content, media and follow-up. It needs a new Meta review.
* **Rename** changes the name. You cannot rename a campaign while it sends.
* **Delete** removes the campaign. You cannot undo this. If the campaign is scheduled, the scheduled send is cancelled. TextYess also deletes its message template at Meta.

To stop a campaign that is sending, use **Stop campaign**, not **Delete**.

## See the results of a WhatsApp campaign

After a campaign in **Campaigns → WhatsApp** starts to send, it gets a **Results** step. To open it, click the campaign, or click its status in the list. The **Results** step shows:

* **Return**: ROAS, revenue and cost.
* **Orders**, **Average order**, **Conversion rate**, **Cost per order** and **Revenue per recipient**.
* **Breakdown**: sent, delivered, read and ordered.
* **Opted out**: the share of the audience that opted out. Aim to stay under 1%.
* **Why messages failed**, **Failed contacts** and **Held for you**, with **Export CSV**.

The campaign list also shows **Open rate**, **CR**, **Orders**, **Revenue** and **ROAS**. For results of all your channels, see [Performance](/analytics).

## Why a WhatsApp campaign failed

When a campaign in **Campaigns → WhatsApp** has the status **Failed**, the **Results** step shows **Why this campaign failed**. The possible reasons are:

* Your account is suspended. Contact support.
* The limited-time offer ended before the send.
* An exclude list did not refresh, or its source was deleted. Click **Repair & resend** or **Review recipients**.
* A scheduled campaign did not start on time. Duplicate it.
* Most messages, or all messages, did not go out. Read **Why messages failed** below the banner.
* The campaign stopped before any message went out. Nobody got the message. Duplicate it to send again.

## Error messages for media in a WhatsApp campaign

When you add a file to a campaign in **Campaigns → WhatsApp**, these errors can show:

* "File must be an image, video, or PDF": use a JPEG or PNG image, a video or a PDF.
* "Image must be in JPEG or PNG format": save the image as JPEG or PNG.
* "File size must be under 5MB": the limit for images. Videos have 16MB and PDFs have 64MB.
* "Image dimensions must not exceed 2048px on the longest side": make the image smaller.
* "Image must be 8-bit", or "PNGs must be in RGB or RGBA": save the image as a JPEG.
* "Video must use the H.264 codec": export the video again as MP4 (H.264).
* "This browser cannot prepare videos": update your browser or use another computer.

## Error messages when you send or schedule a WhatsApp campaign

These errors can show when you send or schedule a campaign in **Campaigns → WhatsApp**:

* "You must add a list to the campaign": add a list or segment under **Include** in the **Recipients** step.
* "You don't have enough contacts to send this campaign": the audience has 0 recipients. Change the lists or segments. The **Review** step also shows "This campaign will reach 0 recipients."
* "You cannot schedule a campaign in the past": select a later time.
* "The offer has already ended": change **Offer ends** in the **Content** step. The campaign then needs a new Meta review.
* "There was an error. Try again or contact our support": the schedule failed. Try again.
* "This account has been suspended. Contact support to restore access."

## "Error during creation. Try again" on a WhatsApp campaign

In [Campaigns → WhatsApp](https://ai.textyess.com/campaigns), a campaign with the status **Error during creation. Try again** cannot be edited, tested or sent. To continue:

1. Open the actions menu (three dots) at the end of the campaign row.
2. Click **Duplicate**. The copy is a **Draft** named "Copy of" and the campaign name.
3. Open the copy and make sure that the content is correct.
4. Click **Send to review**.

You can then delete the old campaign. When Meta refuses a new campaign at review, its status is **Rejected**, not this status. See "WhatsApp campaign rejected by Meta" on this page.

## Warning: Potential WhatsApp Ban Risk

Before you send or schedule a campaign in **Campaigns → WhatsApp**, TextYess can show **Warning: Potential WhatsApp Ban Risk**. The warning tells you why Meta can mark the campaign as spam:

* You send to a large group without previous sending history.
* Many of your recent messages failed, and you target a large group.
* You send messages at a high rate.
* The audience had failed campaigns in the last 48 hours.

To lower the risk, send to a smaller group or leave more time between campaigns. Click **Proceed** to continue, or **Cancel**.

## Recipient lists that need repair before you send

When you click **Send now** on a campaign in **Campaigns → WhatsApp**, TextYess checks the health of your recipient lists.

If a list failed to sync, or its source segment was deleted, the window **This campaign can't be sent yet** opens. Click **Repair** next to the list, or click **Go to recipients** to change it. When the lists are healthy, click **Send**.

If an exclude list is empty, the window **Some lists need a second look** opens. An empty exclude list filters out nobody. Click **Send anyway** or **Review recipients**.

## Why you cannot create or send WhatsApp campaigns

In **Campaigns → WhatsApp**, you cannot create, review or send campaigns in these cases:

* Meta restricted your account for a policy violation. A banner shows the date when the restriction ends.
* Your account is suspended. If the cause is an unpaid subscription, sending starts again when the payment succeeds.
* Your plan has no outbound messages, or your subscription is not active. **Send to review** opens the plans page.
* WhatsApp is not connected. **Send to review** opens **WhatsApp Integration**.
* Your plan does not include the WhatsApp channel. The window **WhatsApp Channel Required** opens.

To change your plan, see the [Plan page](https://ai.textyess.com/organization-settings/plan).

## Start a WhatsApp campaign from the campaigns library

Shopify stores can start a campaign from a ready template. In [Campaigns → WhatsApp](https://ai.textyess.com/campaigns), click **View templates**. The [Campaigns library](https://ai.textyess.com/campaigns/library) opens.

Click a card, for example **Increase Repurchase Rate** or **Abandoned Checkout Recovery**. TextYess builds the audience from your Shopify customers. It creates a draft campaign with a message, a button and a stop button, and opens it on the **Review** step. Make sure that the content is correct, then click **Send to review**.

If no customer matches, the error is "No customers match this template audience."


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.