How to Schedule WhatsApp Messages for a Campaign

It is 11:30 PM on the night before Eid-ul-Fitr, or perhaps three days before Diwali. Your warehouse in Lahore or Bangalore is packed with inventory. You have a list of 4,350 customers who bought from your store last year. You want them to receive a personalized discount code at exactly 9:00 AM tomorrow.
You do not want to wake up at 8:00 AM on a holiday to manually click "send" on dozens of broadcast lists. You cannot do it anyway because WhatsApp broadcast lists limit you to 256 contacts who must have your number saved. You need to schedule this campaign, go to sleep, and let the system do the work.
This guide explains how to set up a scheduled WhatsApp campaign that actually lands in the inbox without getting your business phone number permanently banned.
The Two Paths: Unofficial Automation vs. Official Cloud API
Before you spend money or write code, you must understand the two ways to schedule WhatsApp messages. One is a shortcut that usually ends in disaster. The other is the official method approved by Meta.
1. Unofficial Automation (Chrome Extensions and Desktop Apps)
These tools work by emulating a human user. You install a browser extension, link your personal or business WhatsApp via QR code, upload a CSV file, and the software clicks the "send" button rapidly using automation scripts.
This is a bad idea. WhatsApp uses machine learning algorithms to detect automated behavior. If your account sends 300 messages in ten minutes with identical intervals, their system flags it. You will be logged out, and your screen will show this error: "This account is not allowed to use WhatsApp due to spam." Getting your number unbanned can take days, and often, the decision is permanent. If you run a real business, do not risk your primary phone number on these tools.
2. The Official WhatsApp Cloud API
This is the legitimate method. You connect your phone number directly to Meta's servers. There is no physical phone sending the messages; everything happens through API calls. You can schedule 10,000 or 100,000 messages to go out at a specific second, and Meta will queue and deliver them.
To use this, you must use pre-approved message templates. You cannot send raw, unapproved text to open a conversation. You must also pay Meta a fee for every conversation started.
| Feature | Unofficial Extensions | Official Cloud API |
|---|---|---|
| Risk of Ban | Extremely High (often within 24 hours) | Virtually Zero (if you follow template guidelines) |
| Setup Time | 5 minutes | 1 to 2 hours (requires Meta Business verification) |
| Cost | Cheap or free ($10–$30/month) | Meta conversation charges + platform fees |
| Phone Requirements | Phone must be switched on and online | Phone can be switched off or broken |
How the Costs Work
Meta does not charge per message. They charge per 24-hour conversation. If you send a scheduled campaign message and the customer replies four times, you only pay for one conversation.
The rates depend on the recipient's country code and the category of the message. Meta divides messages into Utility, Authentication (OTPs), and Marketing. Campaigns almost always fall under Marketing.
For example, if you are sending a marketing campaign to customers in India, the cost is approximately INR 0.72 to 0.80 per conversation. For Pakistan, it is about PKR 4.50 to 5.20. Because exchange rates and Meta's rate cards change, you should always check the live rates directly on the Meta Developer Pricing Page before launching a large campaign.
Step-by-Step Guide to Scheduling a Campaign
If you choose the official route, here is the exact sequence to set up and schedule your first campaign.
Step 1: Set Up Your Meta Developer Account
Go to developers.facebook.com and log in with your Facebook account. Create a new App, select "Business" as the type, and add the WhatsApp product to your app. You will need to link your Meta Business Suite account. If you do not have one, the setup wizard will guide you through creating it.
Step 2: Register and Verify Your Phone Number
You need a phone number that is not currently active on a personal WhatsApp or WhatsApp Business app. If you want to use your current number, you must delete your existing WhatsApp account first.
During setup, Meta will send a 6-digit verification code via SMS or voice call to this number. Once verified, this number is hosted on Meta's cloud servers.
Step 3: Create and Submit a Message Template
You cannot schedule a campaign with a message like: "Hey! We have a sale today." Meta will block the API call. You must design a template in your WhatsApp Manager dashboard and submit it for approval. Approval usually takes anywhere from two minutes to an hour.
Your template must look like this to get approved:
"Hi {{1}}, we are offering a {{2}} discount on our entire collection this weekend. Use code {{3}} at checkout. Tap below to shop now!"
The numbers in double curly brackets are variables. You will replace these variables with actual customer names, discount percentages, and coupon codes when you launch the campaign.
Crucial requirement: Meta now forces you to include an "Opt-out" button (like "Stop Promotions") on all marketing templates. If you do not include this, your template may be rejected instantly.
Step 4: Choose Your Scheduling Tool
Meta's basic developer console does not have a "Schedule Campaign" button. It only gives you the raw API endpoint. You have two ways to solve this:
- The Developer Route: You can write a custom script in Node.js or Python. You store your contact database in PostgreSQL or MySQL, set up a server on a VPS like DigitalOcean, and use a task scheduler like Celery or a simple Linux Cron Job to trigger your script at the desired time.
- The No-Code Route: If you do not want to write code, you can use a software-as-a-service provider. For example, our platform, WA Link, acts as a bridge. You connect your official WhatsApp Cloud API to our dashboard, upload your contact list, and set the date and time. While WA Link handles the scheduling, queueing, and reporting, we do not bypass Meta's rules. You still need an active Meta Developer account and must pay Meta their per-conversation fee.
Step 5: Format Your Contact List Correctly
The absolute most common reason scheduled campaigns fail in Pakistan and India is bad phone number formatting. The API requires the country code without any plus signs, spaces, or leading zeros.
- Incorrect: +92-300-1234567
- Incorrect: 03001234567
- Incorrect: 00919876543210
- Correct: 923001234567 (for Pakistan)
- Correct: 919876543210 (for India)
If your CSV file contains even one space or a "+" sign in the phone number column, the API call for that row will return Error 100: Invalid parameter and that customer will not receive your message.
Three Critical Mistakes to Avoid
Even with official setups, things can go wrong. Watch out for these three pitfalls.
1. Ignoring Your Quality Rating
When you send a scheduled campaign to 5,000 people, some will click "Block" or "Report Spam" because they forgot they bought from you, or they are just annoyed.
WhatsApp monitors this ratio. If your block rate goes above 3%, your phone number's Quality Rating will drop from "High (Green)" to "Medium (Yellow)" and then "Low (Red)". If it hits Red, Meta will limit your sending capacity. You might find your daily limit dropped from 10,000 messages to 250 messages, ruining your campaign mid-way.
2. Timezone Mismatches
If your scheduling server is located in the US (which is common for cloud hosting like AWS or DigitalOcean), its default timezone is UTC. If you schedule your campaign for "09:00 AM" without explicitly converting the timezone to PKT (UTC+5) or IST (UTC+5:30), your campaign will go out at 2:00 PM or 2:30 PM local time. Always double-check which timezone your scheduler is reading.
3. Variable Mismatch Failures
If your approved template has three variables: {{1}}, {{2}}, and {{3}}, your CSV or database must provide exactly three values for every single contact. If you accidentally leave the third column blank for a contact, Meta's API will reject the request with Error 132001: Template param count mismatch.
Frequently Asked Questions
Can I schedule messages on the standard WhatsApp Business mobile app?
No. The free WhatsApp Business mobile app does not have a native campaign scheduling feature. You can only schedule "Away Messages" to send automatically when someone messages you outside of business hours. For bulk campaigns, you must use the Cloud API.
What happens if my phone is switched off when the campaign is scheduled to run?
If you are using the official WhatsApp Cloud API, your campaign will send successfully even if your physical phone is switched off, broken, or has no internet connection. This is because the messages are sent directly from Meta's cloud servers, not from your physical device.
How many messages can I schedule to send at once?
This depends on your Meta messaging tier. New accounts start at Tier 1, which allows you to send messages to 1,000 unique customers in a rolling 24-hour period. As you send high-quality messages, Meta automatically bumps you to 10,000, then 100,000, and finally unlimited messages per day. You can check your current tier limit in your WhatsApp Manager under the "Limits" tab.
Why did my template get rejected by Meta?
The most common reasons for template rejection are spelling mistakes, missing variable placeholders, aggressive sales language without a clear opt-out button, or categorizing a marketing message as "Utility" to try and get a cheaper rate. Ensure your template has a clear "Stop Promotions" button and does not sound like a phishing attempt.