WhatsApp · Template broadcasts · Contact lists · Scheduling

Scheduled WhatsApp broadcasts to your contact lists

PostPulse sends approved message templates from your WhatsApp Business number to your contact lists, on a schedule — from the app, the REST API, n8n or an AI agent. PostPulse passed Meta App Review, so you connect and send. 10 free credits on signup, no card.

No Meta App Review on your side Scheduling and delivery reports built in No credit card to test
Numbers from the last 12 months · see live stats →
11+
WhatsApp posts shipped
15,657+
Total posts published
across all 11 platforms
11
Platforms — one API
How it works

From a WhatsApp Business number to a scheduled broadcast

1. Connect your WhatsApp Business account

Sign in with Meta, choose or create a WhatsApp Business account and its phone number, then pick the accounts to connect to PostPulse.

2. Build contact lists

Upload a CSV file or add numbers one by one, up to 1,000 contacts per list. Numbers that opted out are skipped automatically.

3. Schedule template messages

Pick a message template approved by WhatsApp, fill in its parameters, then choose a contact list and a time.

Native WhatsApp Cloud API · the actual cost

The 6 things you'd build yourself

Each item below is real work the WhatsApp Cloud API hands you before the first broadcast goes out. PostPulse handles all of them.

01

Meta app and Tech Provider status

Even for your own number you create a Meta app, a system user and its token, and register the phone number. To send for other businesses you also become a Tech Provider: business verification, App Review of two WhatsApp permissions, then Access Verification — and until all three pass, you can onboard only 10 new businesses a week.

PostPulse passed App Review and Access Verification — connect and send.
02

Embedded Signup and tokens

Your users connect through Embedded Signup: a configuration ID, a code-for-token exchange, subscribing your app to the webhooks of every WhatsApp Business account, and reacting when an account is removed, disabled or restricted.

Connect with Meta inside PostPulse; tokens and webhooks are ours.
03

Template payloads

A template message is a components array that must match the approved template: the header variable, positional or named body variables, the endings of dynamic URL buttons, and header media uploaded to Meta first. One mismatch and Meta rejects the message.

Fill the template's variable keys; PostPulse builds the message and uploads header media.
04

No scheduling, one message per call

The Cloud API sends one message per request, right now. A broadcast means your own queue and scheduler, batching under the 80 messages per second a number allows, and retries.

Set scheduledTime; PostPulse sends the list in batches.
05

Delivery arrives by webhook

A send call only says "accepted". Sent, delivered, read and failed arrive later as signed webhooks — up to 1,000 updates per request, retried for up to 7 days — so you check signatures and store statuses idempotently before you can count anything.

One call returns delivered, read and failed counts with the top errors.
06

Opt-outs and consent

You keep the opt-out list yourself: STOP replies, people who turn off marketing messages in WhatsApp, and people who ask to stop in other words — across every list and number of the account. And you need consent for every contact you message.

STOP and WhatsApp opt-outs apply account-wide; every upload confirms consent.
Minutes to your first WhatsApp broadcast

One API call schedules the broadcast

Take the number from GET /v1/accounts/{id}/chats, the template and the contact list from their endpoints, then schedule. PostPulse fills the template, sends the list in batches and counts the statuses WhatsApp reports.

# Approved templates and contact lists of the WhatsApp account
curl https://api.post-pulse.com/v1/accounts/731/whatsapp/templates \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
curl https://api.post-pulse.com/v1/accounts/731/whatsapp/contact-lists \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

# Schedule the broadcast: one number (chatId), one list, one template
curl -X POST https://api.post-pulse.com/v1/posts \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduledTime": "2026-12-01T10:00:00Z",
    "isDraft": false,
    "publications": [{
      "socialMediaAccountId": 731,
      "platformSettings": {
        "type": "WHATSAPP",
        "contactListId": 42,
        "templateName": "weekly_offer",
        "templateLanguage": "en",
        "bodyParameters": { "1": "20%", "2": "Sunday" }
      },
      "posts": [{ "chatId": "106540352242922" }]
    }]
  }'
What you ship on day one

Everything a WhatsApp broadcast needs — already built

Each capability maps to a real field or endpoint. No roadmap items.

Template broadcasts

Text, image or video headers, positional or named variables, quick reply, URL and phone buttons — including URLs with a dynamic ending. PostPulse uploads the header media to Meta for you.

Contact lists

Up to 1,000 contacts per list: CSV upload in the app or up to 1,000 per API request. Numbers are normalized to the international format; invalid and duplicate numbers are reported back.

Scheduling

scheduledTime on the same POST /v1/posts as social posts. Broadcasts sit in the same calendar, sent from any number of the account.

Pre-flight validation

The template must still be approved, every variable filled without new lines or tabs, the header media of the right type and size, and the list must have someone to message — or the request returns 400 with the reason.

Delivery summary

Sent, delivered, read, failed and opted out per broadcast, with the most frequent WhatsApp errors.

Webhooks

A broadcast fires the same post and publication events as posts to other platforms once it completes or fails.

Opt-outs

STOP and UNSUBSCRIBE replies and WhatsApp marketing opt-outs land on the account's opt-out list automatically. Mark or unmark a number by hand.

n8n and AI agents

Pick the number, list and template from dropdowns in the n8n node, or let an agent schedule the broadcast through the MCP server.

DIY vs PostPulse · in time

Your first WhatsApp broadcast, two timelines

Both columns assume you know your stack. Only one has you doing Meta onboarding and message plumbing.

DIY · WhatsApp Cloud API
  1. Week 1 · Create a Meta app and a business portfolio · start business verification
  2. Week 1–2 · Build Embedded Signup · token exchange · webhook subscription per account
  3. Week 2–3 · Record App Review screencasts for two permissions · wait · Access Verification
  4. Week 3–4 · Template payloads · header media upload · batched sending under 80 messages/s
  5. Week 4–5 · Status webhooks · opt-out list · delivery reporting
  6. Week 6+ · Onboard customers — 10 new businesses a week until every check passes
PostPulse
  1. Minute 0 · Sign up · 10 free credits
  2. Minute 3 · Connect a WhatsApp Business account with Meta
  3. Minute 6 · Upload a contact list from a CSV file
  4. Minute 8 · POST /v1/posts — an approved template scheduled
  5. Same day · Delivered, read and failed counts for the broadcast

WhatsApp-specific API settings

Set the broadcast in the platformSettings object of the publication (type WHATSAPP). A template with an image or video header takes one attachment: JPG or PNG up to 5 MB, MP4 or 3GPP up to 16 MB.

FieldDescription
contactListIdThe contact list to send to, from GET /v1/accounts/{id}/whatsapp/contact-lists
templateNameThe name of an approved message template, from GET /v1/accounts/{id}/whatsapp/templates
templateLanguageThe language of the template, for example en
headerParameterThe value of the text header variable, up to 60 characters (only when the template has one)
bodyParametersThe values of the body variables by key, for example {"1": "20%"} or {"discount": "20%"}
buttonParametersThe URL endings of dynamic URL buttons by button index, for example {"0": "autumn-2026"}

Simple, usage-based pricing

Private-label is self-serve. White-label is for partners reselling publishing under their own brand.

Private-label · Pay-as-you-go
$0.20/ publication
  • No subscription
  • Unlimited connected accounts
  • Pay only when you publish
White-Label
$200/ mo + $1 / active acct
  • Fully branded, native UX
  • Idle accounts are free
  • Startup fee waiver available

Compare plans in detail →

WhatsApp pricing

One credit per broadcast, whatever the list size

A broadcast to a contact list is one publication: $0.20 on pay-as-you-go, or unlimited for $5 per WhatsApp Business account per month. A broadcast where no message went out is not charged. Meta bills its message fees to your WhatsApp Business account directly.

PostPulse vs. the native WhatsApp Cloud API

What PostPulse handles vs. what you'd build yourself.

CapabilityPostPulseNative WhatsApp Cloud API
Meta App Review and Access Verification✓ Done by us✗ Required to send for other businesses
Embedded Signup, tokens, webhook subscriptions✓ Handled by PostPulseBuild and maintain yourself
Template variables and header media✓ Filled from the template's keysBuild the components array, upload media first
Scheduling✓ scheduledTime fieldBuild your own queue and scheduler
Sending a whole list✓ Batches, opted-out numbers skippedOne request per message, under 80 messages/s
Delivery statuses✓ Summary endpoint + post webhooksSigned status webhooks you store and count
Opt-outs✓ Account-wide, STOP applied automaticallyYour own list and webhook handling
Contact lists✓ CSV upload in the app, API for the restYour own storage and import
n8n node and MCP server for AI agents✓ Included✗ Not available
Same API for 10 social platforms✓ Instagram · TikTok · YouTube · LinkedIn · X (Twitter) · Threads · Bluesky · Facebook · Telegram · PinterestWhatsApp only
WhatsApp message feesBilled by Meta to your WhatsApp Business accountBilled by Meta to your WhatsApp Business account
Before you connect

What to know about WhatsApp in PostPulse

Replies stay in WhatsApp

Replies are not shown in PostPulse. Keep the number in the WhatsApp Business app to read and answer them, or nobody sees them. STOP and UNSUBSCRIBE opt a number out automatically; when someone asks to stop in other words, mark them as opted out in your contact list.

Meta bills the messages

Meta charges for template messages to the payment method in your WhatsApp Manager, not through PostPulse.

Only people who agreed

Message only people who agreed to receive WhatsApp messages from your business. You confirm this for every contact you add.

One seat per account

Each WhatsApp Business account you connect is a separate PostPulse account and uses a seat.

WhatsApp broadcasts · FAQ

Schedule your first WhatsApp broadcast

10 free credits, no card. Connect your WhatsApp Business account, upload a contact list and schedule an approved template — all in under 10 minutes.