Fetchply Docs
Integrations and channels

WhatsApp campaigns

Send approved marketing broadcasts to customers who gave permission, with recipient checks and delivery reports.

Campaigns let you send one approved marketing message to up to 1,000 recipients. You can send now or schedule it once, then review each recipient's result.

Image uploads are limited during heavy editing. If the uploader asks you to wait, reuse an existing campaign image or try again later.

Campaigns are available in enabled workspaces during the initial rollout. They work with both a WhatsApp Cloud API connection and a supported WhatsApp Business App coexistence connection. Messages sent from Fetchply use the official WhatsApp Business Platform in both cases. Fetchply does not automate the phone app's broadcast lists; traditional broadcast lists are unavailable on coexistence numbers.

Before you start

  • Connect WhatsApp in Integrations. The number and business account must be in good standing.
  • Have an approved template in Fetchply or WhatsApp Manager. Marketing templates require an approved unsubscribe quick-reply button; utility and authentication templates do not.
  • Have evidence that each recipient agreed to receive messages from the named business. For marketing campaigns, explicit marketing consent is required.
  • Check WhatsApp's Business Messaging Policy and the rules that apply to your business and recipients. Campaigns do not support regulated-industry exceptions.

Official APIs do not guarantee that an account will avoid restrictions. Complaints, blocks, misleading content and policy violations can still lead to limits or bans. Start with a small, engaged audience. Manual messages sent in the Business App are outside Fetchply's campaign controls.

Choose how the campaign sends

Every campaign uses one of two options, chosen in the How to send step. Both send one private message per person, and both cost the same at WhatsApp's published rates.

  • Optimized delivery. WhatsApp decides the best moment to deliver each message, which usually means more people read it. Only promotional templates can be used, and your WhatsApp account must have marketing messages turned on. If WhatsApp cannot optimise a particular message it still delivers it the ordinary way.
  • Standard sending. Sends right away with no extra setup on WhatsApp. Use it for order updates, reminders and one-time codes, or when optimized delivery is not available on your account.

Which one you can use depends on the type of template you picked:

Template typeOptimized deliveryStandard sendingNeeds an unsubscribe button
Promotional (marketing)YesYesYes
Order or account update (utility)NoYesNo
One-time code (authentication)NoYesNo

Switching the option clears a template that the new option cannot use, so you never launch a campaign with a message that will be rejected.

Promotional campaigns always need proof that each person agreed to marketing from the named business. Order updates and one-time codes do not, but anyone who has asked you to stop is left out of every campaign regardless of type.

Create and review a campaign

  1. Open your agent, then Customers → Campaigns → Create campaign. The editor opens as a panel on the right, with its steps listed down the side so you can jump straight to any of them. A dot marks a step that still needs something and a tick marks one that is ready.
  2. Name the campaign and pick how it sends: Optimized delivery or Standard sending.
  3. Add phone numbers, choose Contacts, or import a CSV. Use full international phone numbers with + and the country code. A CSV may also provide a two-letter country code for local numbers.
  4. Choose the approved template and language. Fill every placeholder. Use {name} to insert each recipient's name; recipients missing a required name or value are excluded. For marketing templates, select the approved unsubscribe button explicitly.
  5. For image-header templates, upload a JPEG or PNG up to 5 MB. Images are resized if needed. Text templates, image headers, quick replies, and static website or phone buttons are supported. Carousels, video headers and dynamic links are not supported.
  6. Send now or select Schedule once, a local date and time, and an IANA time zone such as Asia/Karachi.
  7. Select Review campaign at the top of the panel. The review appears at the end of the same panel and is added to the step list as Review and send. Check who is included and excluded, the personalised values, how it sends, your remaining campaign recipients, and the Estimated WhatsApp charge broken down by destination. Confirm the permission, location and policy checks, then launch.

Drafts can be edited. After launch, recipients and the message are fixed: Duplicate the campaign to change them. Pausing or cancelling stops remaining work, but cannot recall messages WhatsApp already accepted.

The campaign list shows counts for drafts, scheduled campaigns, campaigns currently sending, and messages WhatsApp has confirmed as delivered. Each row carries its own status, its send time and time zone, how many recipients it has, and a bar showing how far delivery has got. Rows using standard sending are marked Standard. Edit or Results sits at the end of the row; Duplicate, Pause, and Cancel campaign are under the row's More actions menu. Cancelling asks you to confirm first, because it cannot be undone.

Review campaign and Save draft stay at the top of the panel, so they are always reachable however long your recipient list gets. You can Save draft before the audience or template is complete. Review and launch still require eligible recipients and a supported approved message. Imports and image uploads must finish before you can review or send. Changing anything clears an earlier review, so what you confirm is always the campaign that sends.

The panel stays open until you select Cancel or the close button, so a click on the list behind it cannot lose your work. Closing with unsaved changes asks you to confirm first.

After review, Send one test sends to one selected eligible recipient, using the same option the campaign will use. The test number goes through the same phone-number, country and opt-out checks as the campaign, so a number the campaign would skip cannot be tested either. You can send up to 10 tests an hour. A test counts as that person's campaign message for the day: the same number is skipped by any campaign sent in the next 24 hours, so test on a phone that isn't in your audience.

CSV columns

The phone column is required. Optional columns are name, country, region, consent_business, consent_source, consent_at, and consent_wording. Use an ISO date with time zone for consent_at, for example 2026-08-25T10:30:00+05:00.

Personalized template values use columns such as body.1, header.1, or body.first_name for an approved named placeholder. Imports with invalid rows or more than 1,000 recipients fail without silently dropping rows. The combined audience must also fit the 1,000-recipient limit. Duplicate normalized phone numbers are excluded during review.

Permission and opt-outs

Owners and Admins can manage and send campaigns. Other roles need View WhatsApp campaigns, Create and manage WhatsApp campaign drafts, and, separately, Launch, schedule and resume WhatsApp campaigns. Draft-management permission does not authorize sending.

Recipients can reply STOP or UNSUBSCRIBE, use the selected quick-reply button, or stop marketing through WhatsApp's own preference controls. Staff can select Stop marketing beside a recipient in a campaign's results. Opt-outs apply across this account's numbers in the same business portfolio. Importing another list never clears an opt-out. A WhatsApp resume preference does not clear an independent STOP or staff opt-out.

Customer-service conversations can continue after a marketing opt-out. Pausing a campaign does not disable your inbox or ordinary customer replies.

These opt-outs also stop Send a WhatsApp message steps in Automations from messaging the same customer. Review any checkout-recovery messages independently before using them for marketing.

Delivery limits and costs

Fetchply allows at most one campaign message to a recipient in 24 hours and paces dispatch to a safe share of each number's WhatsApp sending speed (about 10 messages a second), leaving room for your normal customer conversations. Your WhatsApp sending limit can be lower than your selected audience and is shared across all business numbers on the same business account. WhatsApp also counts activity outside Fetchply and may impose additional recipient or account limits.

Promotional messages to US recipients are unavailable, whichever option you choose. Order updates and one-time codes can be sent to US recipients. Canadian and other non-US +1 numbers are checked separately. Campaigns exclude Cuba, Iran, North Korea, Syria, Venezuela, and known restricted Ukrainian regions for every type of message. A phone number does not prove a person's current location: you remain responsible for checking their location and applicable restrictions.

Each message WhatsApp accepts uses one campaign recipient from your separate monthly campaign allowance. It does not use an AI message credit. Your Billing page shows the current allowance, add-on balance and campaign-level usage history. If the allowance runs out, remaining recipients wait until you add capacity or the allowance resets.

WhatsApp's own charges are separate and are billed to your WhatsApp business account, not to Fetchply. Before you launch, the review shows an Estimated WhatsApp charge: the most the send can cost, at WhatsApp's published rates, broken down by destination. Real charges are often lower. After delivery, results show how each message was actually billed. See WhatsApp message costs for the full picture.

Understand results

  • Pending: waiting for dispatch, schedule, or safety checks.
  • Accepted / held for quality assessment / paused: WhatsApp accepted the request but delivery is not confirmed. A held message may arrive later.
  • Sent / delivered / read: WhatsApp reported that stage. Some people do not share read receipts.
  • Skipped: excluded by permission, country, frequency, or cancellation checks.
  • Failed: a definite rejection or reported delivery failure. Review its reason; do not repeatedly resend to evade a limit.
  • Uncertain: Fetchply could not confirm acceptance. It does not automatically resend, because the first message might have been accepted. One campaign recipient remains reserved pending reconciliation; contact support with the campaign and recipient details.

Completed means dispatch has finished, not that every message was delivered. Refresh results for later delivery updates.

Deleting an agent removes its campaigns, recipient reports and uploaded campaign images. It does not refund messages already accepted or whose acceptance is uncertain. Business-wide opt-out records remain so other agents cannot accidentally message those recipients.

Troubleshooting

Campaigns are not enabled

This workspace has not completed the campaign rollout. Contact support. Your existing WhatsApp inbox and order messages are separate.

No eligible recipients

Review each exclusion. Add missing permission evidence, correct country codes or missing placeholder values, and remove restricted recipients. Re-importing an opted-out recipient will not make them eligible.

My template is unavailable

Check its category, approval, format and unsubscribe button in WhatsApp Manager. Paused, disabled or low-quality templates cannot launch. Recently approved or long-unused marketing templates may need time to become available across WhatsApp's sending systems.

A scheduled campaign paused

Fetchply checks permissions, connection, campaign capacity, account standing and template availability again before sending. Resolve the stated reason, then Resume. If the number, business portfolio, billing connection or approved template changed, duplicate the campaign and review it again instead.

A campaign also pauses by itself when WhatsApp rejects a message for a reason that would affect every remaining recipient, for example the template was paused, disabled or no longer matches its approved wording, the WhatsApp account needs attention, or Meta reduced the account's messaging limit because templates were used outside the category they were approved for. That last limit lifts on its own after Meta's enforcement period; check Account quality in WhatsApp Manager before you resume. This stops the rest of your list from failing one by one. Only the recipient that triggered the pause is marked failed; fix the stated problem, then Resume. When WhatsApp is only busy for a moment, Fetchply waits and tries that recipient again instead of pausing.

My campaign allowance is exhausted

Open Billing → WhatsApp campaigns to check the current period and recent usage. Buy a campaign-recipient add-on when available, contact your partner if they manage your plan, or wait for the displayed reset. Definite pre-acceptance failures do not use capacity. An uncertain attempt remains reserved because WhatsApp might have accepted it.

This account is not set up for optimized delivery

Optimized delivery needs marketing messages turned on for your WhatsApp business account. Either switch the campaign to Standard sending, which sends the same message without that step, or turn marketing messages on in WhatsApp Manager and review the campaign again.

If Fetchply cannot confirm either way, the review says so and still lets you launch. Should WhatsApp then refuse the send, switch to standard sending.

The template I want is greyed out

Optimized delivery only accepts promotional templates. To send an order update, a reminder, or a one-time code, change the campaign to Standard sending and the template becomes selectable. Each greyed-out template also shows the reason next to its name.

Promotional messages to US recipients are excluded

WhatsApp does not deliver promotional messages to US phone numbers, and switching how the campaign sends does not change that. To reach US customers, use an order-update or one-time-code template with Standard sending.

Some recipients show no price

Fetchply only prices a recipient when it can match the number to a destination WhatsApp publishes a rate for. Anyone it cannot match is reported as unpriced and left out of the total, rather than shown a guessed figure. Those messages may still be charged. Check that every number is written in full international form, starting with + and the country code.

The review says rates may have changed

WhatsApp can update its rates each quarter. When the rates Fetchply holds are older than the most recent change date, the review adds a reminder to check the current rates. It is a prompt to verify before a large send, not an error, and it does not block launching.

A campaign paused because sending capacity ran out

WhatsApp limits how many different people your business can message in a rolling 24 hours, shared across every number on the same business account. When that limit is reached the campaign pauses on its own to protect your account standing, and the remaining recipients wait. Resume it once the 24-hour window has moved on. WhatsApp counts messages sent outside Fetchply toward the same limit.

My own number was skipped after a test

A test counts as that number's one campaign message for 24 hours. Either wait a day, or test on a phone that isn't in the campaign's audience.

WhatsApp rejected a recipient with error 131049

WhatsApp limited marketing to this person. Fetchply does not retry that recipient automatically and prevents another campaign attempt for at least 24 hours. Waiting is not a guarantee of future delivery; consider whether the person still wants these messages. The same code is used when a promotional message is addressed to a US number.

Can I use the developer API or MCP?

Campaign creation and launch are dashboard-only. Existing order and utility messages remain separate. The legacy manual template sender cannot send marketing templates outside this campaign review flow.

The connection panel's Send test uses a verified utility template or an ordinary message in an open customer-service conversation. If no suitable utility template is available, send a message to the business number from your test phone first, then retry. Marketing tests use Send one test in Campaigns.