WhatsApp Campaigns
Launch targeted WhatsApp messaging campaigns using Meta-approved message templates. Reach your customers with promotional messages, transactional alerts, notifications, and authentication codes — with real-time delivery and engagement tracking.
Overview
WhatsApp campaigns allow you to send messages to your contacts using templates that have been approved by Meta. The campaign system supports scheduled sends, contact targeting via segments or uploaded lists, dynamic template variables, and per-message delivery status tracking. Each campaign deducts from your plan’s WhatsApp message balance on a per-recipient basis.
When a customer messages your business first, you have a 24-hour window to reply with free-form messages (not requiring templates). After this window closes, you can only send template-based messages. Campaigns always use templates, which means you can send them to any opted-in contact regardless of the last interaction time.
You may only send WhatsApp messages to customers who have explicitly opted in to receive WhatsApp communications from your business. Sending unsolicited messages violates Meta’s policy and can result in your phone number being restricted or banned. Maintain opt-in records and include an opt-out mechanism in your messages (e.g., “Reply STOP to unsubscribe”).
Template Categories and When to Use Them
WhatsApp templates belong to one of three categories, each suited for different campaign types:
Marketing
Marketing templates are for promotional content, offers, and engagement that is not directly triggered by a customer action.
Marketing template messages cost 3 credits per message (a 3x multiplier is applied to the base rate). Utility and authentication templates cost 1 credit per message. Plan your campaign budget accordingly — a 1,000-recipient marketing campaign will consume 3,000 WhatsApp credits.
Use cases:
- New product announcements and launches
- Seasonal promotions and discount offers
- Newsletter digests and content updates
- Loyalty program promotions
Example:
Hi
{{1}}, we have an exclusive 20% off on our new{{2}}collection! Shop now and save.
Marketing campaigns have the highest risk of being perceived as spam. Ensure your opt-in list is fresh and your template content provides clear value to the recipient. High block or report rates on marketing messages can degrade your phone number quality rating faster than other categories.
Utility
Utility templates are for transactional, account-related, or service updates directly related to a customer’s interaction with your business.
Use cases:
- Order confirmations and shipping updates
- Appointment reminders and confirmations
- Account activity alerts (login, password change)
- Payment receipts and billing notifications
- Back-in-stock alerts (with prior opt-in)
Example:
Hi
{{1}}, your order #{{2}}has been shipped via{{3}}. Track your package here:{{4}}
Utility templates generally have the highest engagement rates because recipients expect them and find them valuable.
Authentication
Authentication templates are specifically for sending one-time passcodes (OTPs) for account verification, login, and transaction authorization.
Use cases:
- Two-factor authentication (2FA)
- Account login verification codes
- Transaction confirmation codes
Example:
{{1}}is your verification code for{{2}}. Do not share this code with anyone.
Authentication templates have strict formatting rules set by Meta. The message must include the OTP variable, must not contain marketing or promotional content, and the OTP must expire after a short period. Misuse of the authentication category (e.g., sending marketing content under it) can result in template rejection or account restriction.
Creating a WhatsApp Campaign
Step-by-Step
- Navigate to WhatsApp → Campaigns and click Create Campaign.
- Enter a Campaign Name — choose something descriptive that you can identify later in analytics (e.g., “Diwali Sale 2026 - Batch 1”).
- Select a Message Template from the dropdown. Only approved templates appear here. The template’s body and variables are displayed for review.
- Fill in Template Variables for each dynamic field in the template (e.g.,
{{customer_name}},{{order_id}}). See “Template Variables Best Practices” below. - Select Target Contacts — choose from existing contact lists, apply segment filters, or upload a CSV file of phone numbers.
- Configure Schedule — choose to send immediately or set a future date and time. Ensure the scheduled time falls within appropriate hours per Meta’s messaging guidelines.
- Review the Budget estimate (total messages x cost per message) and confirm.
- Click Launch Campaign to start, or Save as Draft to continue later.
Campaign Settings
| Setting | Description |
|---|---|
| Template | Choose an approved message template from your WABA synced library. |
| Template Variables | Dynamic values injected into the template at send time. Variables are validated against the template schema to prevent errors. |
| Contacts | Recipients — selected from CRM contact lists, filtered by segments, or uploaded via CSV. |
| Schedule | Immediate launch or scheduled for a specific date and time (timezone-aware). |
| Batch Size | Control how many messages are sent per batch cycle. Smaller batches reduce rate-limit pressure. |
| Budget | Estimated credit cost = contact count × message cost per recipient. Actual cost is displayed post-completion. |
Batch Sizing Recommendations
Meta enforces rate limits on WhatsApp API messaging. Your phone number’s messaging tier determines how many messages you can send per second. To avoid throttling:
| Phone Number Tier | Messages/hour (approx.) | Recommended Batch Size |
|---|---|---|
| Unverified / Tier 1 | 100–1,000 | 20–50 per batch |
| Tier 2 (1K–10K quality) | 10,000 | 200–500 per batch |
| Tier 3 (10K–100K quality) | 100,000 | 1,000–2,000 per batch |
| Tier 4+ (100K+) | 1,000,000+ | 5,000–10,000 per batch |
Higher quality ratings (low block/report rates) unlock higher tiers automatically. Check your current tier in Meta Business Manager → WhatsApp → Phone Numbers.
Sending too many messages too quickly can cause Meta to throttle your connection, resulting in delayed delivery or failed sends. Voxvaani automatically paces messages within reasonable limits, but setting an appropriate batch size helps ensure smooth delivery.
Template Variables Best Practices
Template variables allow you to personalize each message for every recipient. Follow these guidelines for best results:
Variable Mapping
- Match data to variables precisely. If your template has
{{1}}and{{2}}, ensure your contact list provides values in the correct order. - Consistent naming. When creating templates in Meta, use descriptive variable names like
{{customer_name}}instead of generic{{1}}. This makes mapping easier during campaign setup. - Fallback values. Provide fallback text for optional variables (e.g., “Valued Customer” if the customer name is missing).
Example: Personalized Offer Campaign
Template in Meta:
Hi {{customer_name}},
We noticed you browsed {{product_category}} recently. Get {{discount_percent}}% off your first {{product_category}} purchase!
Use code: {{promo_code}} at checkout.
Offer ends: {{expiry_date}}.
Reply STOP to opt out.Variable mapping for each contact:
| Contact | customer_name | product_category | discount_percent | promo_code | expiry_date |
|---|---|---|---|---|---|
| +919876543210 | Priya | Electronics | 15 | ELEC15JUL | July 31, 2026 |
| +919876543211 | Rahul | Books | 10 | BOOK10JUL | July 31, 2026 |
Validation Rules
- Variables must not contain URLs, line breaks, or special formatting.
- Variables are validated client-side to catch obvious errors before the campaign launches.
- Campaigns with invalid variable data for a contact will show a Failed status for that specific message, while valid messages continue sending.
Campaign Lifecycle
Campaigns progress through defined stages from creation to completion:
| Stage | Description |
|---|---|
| Draft | Campaign created but not yet launched. You can edit all settings, change templates, and modify the contact list. |
| Scheduled | Campaign set to launch at a future date/time. Appears in the campaign list with a countdown. You can cancel or reschedule. |
| Running | Campaign is actively sending messages. Progress bar shows X/Y messages sent. You can pause a running campaign. |
| Paused | Manually paused. Remaining messages are not sent until resumed. Use this to review performance mid-campaign. |
| Completed | All messages attempted (successfully or not). Final delivery and read statistics are available. Completed campaigns can be relaunched to new contacts. |
| Failed | Campaign encountered a critical error (e.g., invalid template, token expiry). Review the error log and correct the issue before relaunching. |
Managing Campaigns
Campaign List
| Column | Description |
|---|---|
| Name | Campaign name assigned during creation. |
| Status | Current stage: Draft, Scheduled, Running, Paused, Completed, or Failed. |
| Progress | X/Y messages attempted. A progress bar shows visual completion percentage. |
| Delivered | Percentage of attempted messages successfully delivered by Meta. |
| Read | Percentage of delivered messages that the recipient opened. |
| Actions | Context-sensitive actions: Launch, Pause, Resume, Relaunch, Delete, View Report. |
Actions on Active Campaigns
- Pause: Temporarily halt message sending. Remaining messages are queued but not dispatched until resumed.
- Resume: Continue sending the remaining messages in the campaign.
- Relaunch: Create a new campaign run using the same template and contact list (for recurring campaigns).
- View Report: Open detailed analytics for this specific campaign including per-contact delivery status.
Troubleshooting
Messages Not Sending
Symptom: Campaign is running but no messages are being delivered, or all messages show as Failed.
Possible Causes and Solutions:
- Template Not Approved: Verify the selected template’s status in WhatsApp → Templates. If it is pending or rejected, Meta will not permit sending. Submit the template for approval or select an approved one.
- Token Expired: Your Meta access token may have expired. Go to WhatsApp Suite → WhatsApp Settings in the sidebar and reconnect if needed.
- Contact Not Opted In: If a contact has not opted in or has revoked consent, Meta will reject the message. Verify your opt-in records.
- Invalid Phone Numbers: Phone numbers must be in international format (e.g.,
+919876543210). Numbers with incorrect formatting will fail. - Rate Limiting: Your phone number may be throttled by Meta. Check your messaging tier and account health.
Low Delivery Rate
Symptom: Campaign completes but the delivery rate is significantly below 100%.
Possible Causes and Solutions:
- Invalid Contacts: The contact list may contain numbers that are not on WhatsApp, are deactivated, or belong to users who have blocked your business. Clean your contact list regularly.
- Quality Rating Issues: If your phone number has a low quality rating, Meta may restrict message delivery. Improve your rating by sending higher-quality, opted-in content.
- Template Content Issues: If recipients are reporting your messages as spam, delivery rates will degrade. Review your template content for relevance and value.
Template Variables Not Populating
Symptom: Messages display raw variables (e.g., {{customer_name}}) instead of actual values.
Possible Causes and Solutions:
- Missing Variables: The campaign form may not have all required variables filled. Every variable in the template must have a corresponding value.
- Variable Format Mismatch: The variable name in your contact data does not match the template variable name exactly. Names are case-sensitive.
- Invalid Characters: Variable values containing disallowed characters (URLs, emoji, line breaks in header variables) will be rejected. Strip these before launching.
Campaign Shows “Running” but Progress Is Stuck
Symptom: The progress indicator has not updated for several minutes.
Possible Causes and Solutions:
- Background Processing Delay: Large campaigns may have brief gaps between batch processing. Wait 5–10 minutes before investigating further.
- Rate Limiting: Meta may be throttling your messages. The system automatically retries, but there may be delays.
- Connection Interruption: Reconnect your Meta account if the token has expired mid-campaign.
Tips
- Test your campaign with a small group of internal numbers (3–5 contacts) before sending to your full list. Verify variable rendering and link functionality.
- Schedule campaigns during your audience’s active hours. Avoid late-night sends per Meta’s policy.
- Include an opt-out instruction in every marketing template (e.g., “Reply STOP to unsubscribe”). This is both a best practice and a Meta policy requirement for marketing messages.
- Monitor the Read Rate metric to gauge the effectiveness of your message content. High delivery but low read rates suggest your template preamble needs improvement.
- Use Pause to halt a campaign if you notice errors or need to fix template issues. You can resume once resolved without losing progress on already-sent messages.