A WhatsApp campaign can fail long before you click Send.
Sometimes the problem is an incorrectly formatted phone number. Sometimes it’s a CSV column that wasn’t mapped. Sometimes a contact is marked inactive when they should actually be unsubscribed. And sometimes everything looks perfectly fine in your dashboard, only for Meta to block or throttle the campaign.
If you use WhatsApp for marketing, customer communication, or bulk campaigns, getting your contacts and campaign settings right is just as important as writing a good message.
Here are 23 things to check before sending your next WhatsApp campaign.
Part 1: Contact Upload — The Stuff That Breaks Delivery Before a Campaign Even Starts
1. Don't leave a leading 0 after the country code
09876543210 is not the same as +919876543210.
This is particularly common with Indian phone numbers exported from Excel or a CRM. The leading 0 is a trunk prefix and should not be retained when you're storing an international WhatsApp number.
A safe format is:
+919876543210
Always make sure your numbers include the correct country code and are formatted consistently before uploading them.
2. Excel can silently ruin your phone numbers
Long phone numbers can be converted by Excel into scientific notation such as:
9.87654E+10
That isn't a WhatsApp number anymore.
Before working with phone numbers in Excel, format the entire phone column as Text. Better still, export your contacts directly from your CRM rather than copying and pasting numbers through spreadsheets.
3. Upload a CSV, not an Excel file
Your contact import should be a CSV file.
An .xlsx file, an Excel export from Google Sheets, or a semicolon-separated CSV can result in failed imports or incorrectly mapped columns.
For the safest import, export your file as:
CSV UTF-8, comma-separated
4. Map the Phone column — Name is optional
The phone number is the one field you absolutely need.
If the Phone column isn't mapped during import, those rows can be skipped.
Don't assume a column named Mobile, WhatsApp, or Contact will automatically be recognised as the phone field. Check the mapping before completing the import.
A name is useful for personalisation, but it isn't required to create the contact.
5. Re-uploading the same number updates the contact
Importing a number that already exists doesn't necessarily create a second contact.
The existing contact can be updated and new tags can be added.
That's useful when you're enriching your database over time, but it can also be dangerous if you accidentally upload outdated information and overwrite existing contact data.
Always review your CSV before importing it.
6. Status accepts only the expected values
When importing contact status, use the exact supported values:
activeinactiveunsubscribed
Don't assume variations such as Active, Opted out, or Do not disturb will be interpreted correctly.
If the status isn't recognised, the contact can remain active — which means they may still be included in campaigns.
7. Inactive does not mean opted out
This is an important distinction.
An inactive contact can still receive messages.
If someone has explicitly asked you to stop messaging them, they need to be treated as unsubscribed.
In other words:
Inactive ≠ Opted out
Don't use an inactive status as a substitute for consent management.
8. Tags are comma-separated
If you're importing multiple tags, use commas:
VIP, Lead
Not:
VIP; Lead
And not:
VIP | Lead
There's another detail that is easy to miss: when you target multiple tags, the audience is widened using OR logic.
For example, selecting:
VIP + Lead
can target contacts who have either the VIP or Lead tag, rather than only contacts who have both.
So adding more tags can actually increase your audience.
9. Custom fields need to be imported
Want to personalise a campaign using a customer's company, city, order ID, or another custom field?
Those fields need to exist on the contact.
If your template uses variables such as {{1}} or {{2}}, make sure the corresponding custom fields are imported and mapped before running the campaign.
Otherwise, missing values can result in a blank placeholder or a fallback such as -.
10. Landlines, VoIP numbers, and numbers without WhatsApp won't deliver
Having a correctly formatted phone number doesn't guarantee that WhatsApp can deliver a message to it.
Landlines, unsupported VoIP numbers, and mobile numbers that don't have WhatsApp can fail delivery.
After a failed send, a contact may be marked unreachable and excluded from future campaigns until their status changes.
Cleaning your contact list before sending can therefore save both messaging quota and frustration.
11. Don't include your own WhatsApp number
Your business's connected WhatsApp number should not be included as a campaign recipient.
Sending a campaign to the same number that is connected as the sender can result in a Meta error.
Before importing your list, filter your own business number out.
12. Check Created, Updated, and Skipped after every import
A successful import doesn't necessarily mean every row was imported.
Always check the import summary:
- How many contacts were created?
- How many were updated?
- How many were skipped?
Rows can be skipped because of missing phone numbers, invalid data, or contact limits on your plan.
A campaign can look ready to send while a significant portion of your intended audience never made it into the database.
Part 2: Before You Hit Send
Your contact list is clean. Great.
Now there are a few more things to check before launching the campaign.
13. Templates must be approved — and available on the active WhatsApp account
A template that's pending, rejected, or paused can't be used for a campaign.
If you've connected multiple WhatsApp numbers, also make sure you're working with the active WhatsApp account.
It's surprisingly easy to prepare a campaign using one account while the actual sending account is another.
14. Map every template variable
Suppose your template says:
Hi {{1}}, your order is ready.
If {{1}} is mapped to the contact's name but the contact doesn't have a name, the recipient may see a fallback such as -.
Set a sensible fallback such as:
Hi there
And make sure names and custom fields are imported before launching the campaign.
15. Media templates need campaign-time media
For image, video, or document templates, the sample media you submitted during template creation is primarily there for Meta's review.
When you actually run a campaign, make sure the campaign has its required header media attached.
Depending on the template, this can mean a JPEG, PNG, MP4, or PDF that also complies with Meta's applicable size and format limits.
16. Meta's messaging limit is different from your Samvad quota
There are two different limits to keep in mind.
Meta has its own messaging limits, while your Samvad plan has its own monthly messaging quota.
These are not the same thing.
As your WhatsApp account builds quality and eligibility, Meta can increase the number of unique recipients you can message within its applicable limits.
So if you attempt a very large campaign, you may not be able to reach your entire audience immediately even if your Samvad plan has enough monthly quota.
17. Check your Meta payment method and display name
Connecting a WhatsApp number isn't the final step.
Your WhatsApp Business Account also needs the necessary Meta billing/payment setup, and your business display name needs to meet Meta's requirements.
If either isn't properly configured, your messages can be blocked even though the number itself appears connected.
18. Quality matters more than simply sending more messages
Sending more messages isn't automatically better.
Blocks, reports, poor engagement, and messaging people who didn't actually opt in can hurt your WhatsApp quality.
Lower quality can eventually lead to restrictions, throttling, or paused templates.
And repeatedly attempting to message unreachable or opted-out contacts only makes the situation worse.
A clean, opted-in audience is more valuable than a huge database.
19. Inbox conversations aren't the same as campaign messages
There is an important difference between replying to someone in your Inbox and starting a campaign.
Free-form replies are generally available within WhatsApp's 24-hour customer-care window after a customer messages you.
Outside that window, you need to use an approved template to initiate or continue the conversation.
Campaigns therefore rely on approved templates rather than ordinary free-form messages.
Part 3: The Compliance Rules People Skip — and Meta Doesn't
Technical configuration is only half the story.
You also need to make sure you're allowed to message the people on your list.
20. You need explicit opt-in for marketing messages
Before sending marketing templates, customers should have clearly agreed to receive WhatsApp communications from your business.
That opt-in could happen through:
- A website form
- A checkout checkbox
- A QR code
- SMS
- Another clearly communicated consent mechanism
Buying a database or scraping phone numbers isn't a substitute for consent.
A bigger contact list isn't useful if those contacts never agreed to hear from you.
21. Make your unsubscribe instruction clear
If your campaign tells customers:
Reply STOP to unsubscribe
then make sure your process is configured to handle that instruction correctly.
Don't hide the unsubscribe mechanism.
Customers should have a clear and simple way to stop receiving marketing messages, and your system should honour that request.
22. Know the difference between Marketing and Utility
A template's category needs to match its actual purpose.
For example, a message presented as an "order update" but containing promotional content may not qualify as a utility message.
Similarly, don't try to disguise marketing content as transactional communication.
And when you're directing customers to a website from a marketing template, use the appropriate URL button rather than treating the message body like a generic link dump.
23. Country restrictions can still stop delivery
A perfectly formatted number doesn't guarantee delivery.
Meta can restrict messaging to particular destination countries or corridors depending on the WhatsApp Business Account and applicable policies.
So if a number looks completely valid but a message still won't deliver, the problem may not be your CSV at all.
The 60-Second Pre-Campaign Checklist
Before you hit Send, quickly verify:
Contacts
- ✓ Numbers include the correct country code
- ✓ No unnecessary leading
0 - ✓ Phone numbers weren't converted by Excel
- ✓ File is CSV UTF-8
- ✓ Phone column is mapped
- ✓ Duplicate imports are intentional
- ✓ Status values are valid
- ✓ Unsubscribed contacts are excluded
- ✓ Tags are correctly formatted
- ✓ Custom fields are imported
- ✓ Unreachable numbers are understood
- ✓ Your own business number is excluded
- ✓ Import totals have been reviewed
Campaign
- ✓ Template is approved
- ✓ Correct WhatsApp account is active
- ✓ Variables are mapped
- ✓ Fallback values are configured
- ✓ Required media is attached
- ✓ Meta messaging limits are considered
- ✓ Your plan quota is sufficient
- ✓ Meta payment and business details are configured
- ✓ Account quality is healthy
Compliance
- ✓ Recipients have opted in
- ✓ Unsubscribe requests are respected
- ✓ Marketing and utility messages are categorised correctly
- ✓ Destination countries are supported
Final Thought
WhatsApp campaign delivery isn't just about writing the right message.
It's about having the right contacts, the right data, the right template, the right account configuration, and the right consent — all at the same time.
Most campaign problems become much easier to solve when you check these things before you press Send.
So before your next campaign goes out, take 60 seconds and run through this list.
It could be the difference between a campaign that reaches your audience and one that quietly skips half of it.
