- No subscription
- Unlimited connected accounts
- Pay only when you publish
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.
From a WhatsApp Business number to a scheduled broadcast
Sign in with Meta, choose or create a WhatsApp Business account and its phone number, then pick the accounts to connect to PostPulse.
Upload a CSV file or add numbers one by one, up to 1,000 contacts per list. Numbers that opted out are skipped automatically.
Pick a message template approved by WhatsApp, fill in its parameters, then choose a contact list and a time.
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.
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.
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.
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.
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.
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.
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.
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" }]
}]
}'Everything a WhatsApp broadcast needs — already built
Each capability maps to a real field or endpoint. No roadmap items.
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.
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.
scheduledTime on the same POST /v1/posts as social posts. Broadcasts sit in the same calendar, sent from any number of the account.
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.
Sent, delivered, read, failed and opted out per broadcast, with the most frequent WhatsApp errors.
A broadcast fires the same post and publication events as posts to other platforms once it completes or fails.
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.
Pick the number, list and template from dropdowns in the n8n node, or let an agent schedule the broadcast through the MCP server.
Your first WhatsApp broadcast, two timelines
Both columns assume you know your stack. Only one has you doing Meta onboarding and message plumbing.
- Week 1 · Create a Meta app and a business portfolio · start business verification
- Week 1–2 · Build Embedded Signup · token exchange · webhook subscription per account
- Week 2–3 · Record App Review screencasts for two permissions · wait · Access Verification
- Week 3–4 · Template payloads · header media upload · batched sending under 80 messages/s
- Week 4–5 · Status webhooks · opt-out list · delivery reporting
- Week 6+ · Onboard customers — 10 new businesses a week until every check passes
- Minute 0 · Sign up · 10 free credits
- Minute 3 · Connect a WhatsApp Business account with Meta
- Minute 6 · Upload a contact list from a CSV file
- Minute 8 ·
POST /v1/posts— an approved template scheduled - 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.
| Field | Description |
|---|---|
contactListId | The contact list to send to, from GET /v1/accounts/{id}/whatsapp/contact-lists |
templateName | The name of an approved message template, from GET /v1/accounts/{id}/whatsapp/templates |
templateLanguage | The language of the template, for example en |
headerParameter | The value of the text header variable, up to 60 characters (only when the template has one) |
bodyParameters | The values of the body variables by key, for example {"1": "20%"} or {"discount": "20%"} |
buttonParameters | The 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.
- Or $48 / year per account
- Unlimited posts
- REST API · n8n · Make · MCP
- Fully branded, native UX
- Idle accounts are free
- Startup fee waiver available
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.
| Capability | PostPulse | Native 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 PostPulse | Build and maintain yourself |
| Template variables and header media | ✓ Filled from the template's keys | Build the components array, upload media first |
| Scheduling | ✓ scheduledTime field | Build your own queue and scheduler |
| Sending a whole list | ✓ Batches, opted-out numbers skipped | One request per message, under 80 messages/s |
| Delivery statuses | ✓ Summary endpoint + post webhooks | Signed status webhooks you store and count |
| Opt-outs | ✓ Account-wide, STOP applied automatically | Your own list and webhook handling |
| Contact lists | ✓ CSV upload in the app, API for the rest | Your 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 · Pinterest | WhatsApp only |
| WhatsApp message fees | Billed by Meta to your WhatsApp Business account | Billed by Meta to your WhatsApp Business account |
What to know about WhatsApp in PostPulse
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 charges for template messages to the payment method in your WhatsApp Manager, not through PostPulse.
Message only people who agreed to receive WhatsApp messages from your business. You confirm this for every contact you add.
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.