WhatsApp Message Templates
Manage WhatsApp message templates approved by Meta. Templates define the exact structure, dynamic variables, and interactive elements of your outbound messages — and are required for any proactive (business-initiated) communication.
Overview
WhatsApp Business API requires businesses to use pre-approved message templates for initiating conversations with customers. Each template defines:
- Header (optional) — Text, image, video, or document at the top of the message.
- Body — The main message text with
{{placeholder variables}}for personalization. - Footer (optional) — Static text at the bottom of the message.
- Buttons (optional) — Quick reply buttons or call-to-action buttons (URL, phone number).
- Category — Marketing, Utility, or Authentication (determines Meta’s review criteria).
Voxvaani syncs templates from your connected WABA and surfaces them in the campaign builder, automation rule builder, and template management page.
Templates are only required for proactive (business-initiated) messages. If a customer messages you first, you have a 24-hour window to reply with any free-form text (no template needed). After the 24-hour window closes, you must use an approved template to resume the conversation.
Any modification to an approved template — even a minor text change — resets its status to “Pending” and requires Meta to re-review and re-approve it. The template is unavailable for use during the re-review period. Plan template edits carefully and keep a backup of your original approved template text.
Template Categories with Use Cases
Meta classifies templates into three categories. Each category has different review criteria and use-case expectations.
Marketing
Purpose: Promotional content, offers, product announcements, and engagement campaigns that are not prompted by a specific customer action.
Review Criteria: Meta checks for clear brand identity, value proposition, and opt-out language. Marketing templates are scrutinized for compliance more closely than utility templates.
Use cases:
- Flash sale announcements
- Seasonal offers and coupon codes
- New product or feature launches
- Event invitations and reminders
- Loyalty program updates
- Re-engagement campaigns for inactive customers
Sample Template:
Header: [Image: Product Banner]
Body: Hi {{1}}, our annual sale is here! Get up to {{2}}% off on all {{3}} products. Use code {{4}} at checkout. Offer valid till {{5}}. Reply STOP to unsubscribe.
Footer: Voxvaani Communications
Buttons: Shop Now [URL], Contact Us [Phone]Marketing templates must include an opt-out mechanism. Add “Reply STOP to unsubscribe” or equivalent language in the body or footer. Templates without opt-out instructions are frequently rejected by Meta.
Utility
Purpose: Transactional, account-related, or service updates that are triggered by or relevant to a customer’s recent activity with your business.
Review Criteria: Meta expects utility templates to deliver essential information. The message should be concise and directly related to a transaction or account event.
Use cases:
- Order confirmation and e-receipts
- Shipping status and tracking number delivery
- Appointment booking confirmation and reminders
- Payment confirmation and invoice links
- Account change alerts (email change, password reset notification)
- Ticket/case updates for support interactions
- Back-in-stock alerts (with prior customer request)
Sample Template:
Header: ORDER CONFIRMED
Body: Thank you, {{1}}! Your order #{{2}} for {{3}} has been confirmed. Estimated delivery: {{4}}. Track your order: {{5}}
Footer: Voxvaani Team
Buttons: Track Order [URL], View Invoice [URL]Utility templates typically have the highest delivery and read rates because recipients expect and value the information.
Authentication
Purpose: One-time passcodes (OTPs) for account verification, login, and transaction authorization.
Review Criteria: Meta enforces strict rules for authentication templates — the message must be solely for sending a verification code, contain no marketing content, and the code must expire after a short period.
Use cases:
- Account login verification (2FA)
- New device or browser authorization
- Password reset verification codes
- High-value transaction confirmation codes
- Account registration phone verification
Sample Template:
Header: VERIFICATION CODE
Body: {{1}} is your Voxvaani verification code. This code expires in 10 minutes. Do not share this code with anyone.
Footer: Voxvaani Security
Buttons: None (or Copy Code)Never include promotional text, URLs, or secondary calls-to-action in authentication templates. Meta may reject the template or flag your WABA for audit. Authentication templates have the strictest enforcement of any category.
Syncing Templates
Templates must be synced manually from your connected Meta WABA. There is no automatic sync — you must trigger it yourself.
Manual Sync
- Navigate to WhatsApp → Templates.
- Click Sync Templates.
- The system fetches all templates from your connected WABA and updates the list with current statuses. Sync typically completes within 60 seconds.
Meta typically takes 24–48 hours to review a template submission. During peak periods (holiday seasons, major sales events), review times can extend to 72 hours or more. Submit templates well in advance of your planned campaign date. If a template has been pending for more than 5 days, check its status in Meta Business Manager and consider re-submitting if it was returned with feedback.
Template Status
| Status | Description |
|---|---|
| Approved | Template has passed Meta’s review. It can be used in campaigns, automation rules, and manual sends. |
| Pending | Template is under review by Meta. It cannot be used until approved. Newly created or re-submitted templates go to this status. |
| Rejected | Meta found the template non-compliant. A rejection reason is usually provided in Meta Business Manager. You must address the issue and re-submit. |
| Paused | Template was approved but has been temporarily disabled, often due to quality issues or policy updates from Meta. Review account health. |
A rejected template does not disappear from Voxvaani — it remains visible with the “Rejected” badge so you can identify which templates need attention. You cannot use a rejected template in campaigns. Correct the issue in Meta Business Manager and re-submit for review.
Template Details
Each template card or row in Voxvaani displays:
- Name — The template identifier as set in Meta Business Manager. Names are case-sensitive and unique within a WABA.
- Category — Marketing, Utility, or Authentication.
- Status — Current approval state with color-coded badge (green = Approved, yellow = Pending, red = Rejected, orange = Paused).
- Language — The language code the template was created for (e.g.,
en,en_IN,hi). - Body Content — The full message text with
{{variable}}placeholders highlighted. - Components — Header type (text/image/video/document/none), button count and types, footer text.
- Last Updated — Date and time the template was last modified in Meta.
Creating Templates from Meta Business Manager
Templates are created and managed in Meta’s platform, not in Voxvaani. To create a new template:
- Go to Meta Business Manager and navigate to WhatsApp → Template Manager.
- Click Create Template.
- Select the Category: Marketing, Utility, or Authentication.
- Choose the Language for the template.
- Name your template — Use a clear, descriptive name that reflects its purpose (e.g.,
order_confirmation_en,diwali_offer_2026). Template names must be lowercase with underscores and cannot contain spaces. - Build the message:
- Header (optional): Choose text or media type. For text headers, keep it under 60 characters.
- Body: Write the message text. Use double curly braces for variables:
{{1}},{{customer_name}}, etc. See character limits below. - Footer (optional): Add static text (max 256 characters).
- Buttons (optional): Add up to 2 buttons for URL links or phone number call-to-actions.
- Preview the template on a simulated phone screen.
- Click Submit to send the template for Meta’s review.
After submission, monitor the template status in Meta. Once approved, sync it to Voxvaani using the Sync Templates button.
Use Meta’s template preview feature to see exactly how your message renders on a mobile device before submitting. Check for variable placement, button alignment, and overall readability. Templates that look cluttered or confusing on mobile are more likely to be rejected.
Template Best Practices
Character Limits
| Component | Max Characters |
|---|---|
| Template Name | 512 characters (lowercase, underscores only) |
| Header Text | 60 characters |
| Body Text | 1,024 characters |
| Footer Text | 256 characters |
| Button Text | 25 characters per button |
Variable Naming
- Use descriptive variable names that indicate the content:
{{customer_name}},{{order_id}},{{tracking_url}}. - If using positional variables, ensure the numbering matches across all language variants of the same template.
- Do not use the same variable name twice in a single template unless both instances should have the same value.
CTA Buttons
- URL Button — Links to a webpage. The URL must belong to your verified business domain. Use dynamic URL variables for tracking:
https://example.com/track/{{order_id}}. - Phone Button — Dials a phone number. Use this for “Call Us” CTAs.
- Quick Reply Buttons — Pre-filled responses the user can tap. Up to 3 quick reply buttons. Useful for surveys, confirmations, and branching flows.
Button best practices:
- Keep button text short and action-oriented: “Track Order”, “Shop Now”, “Confirm Appointment”.
- Place the most important action first (left-most button on mobile).
- Do not overload with buttons — one or two well-chosen CTAs outperform three vague options.
Content Guidelines
- Be concise. WhatsApp is a personal messaging space. Long messages are less likely to be read.
- Front-load key information. The most important detail should appear in the first line or header.
- Include your brand name in the header or body so recipients immediately recognize the sender.
- Test across devices. Preview your template in Meta’s simulator for both iOS and Android.
- Avoid spam triggers. Excessive capitalization, multiple exclamation marks, urgency phrases (“ACT NOW!”), and repeated special characters can trigger automated rejection.
Common Template Rejection Reasons
| Reason | What It Means | How to Fix |
|---|---|---|
| Promotional content in Utility | A Utility template contains marketing language. | Remove all promotional text and resubmit under Marketing if applicable. |
| Missing opt-out | A Marketing template lacks an unsubscribe mechanism. | Add “Reply STOP to unsubscribe” in the body or footer. |
| Misleading content | The template promises something that is not delivered. | Ensure the message accurately reflects what the recipient receives. |
| Poor grammar or typos | Spelling or grammatical errors in the template. | Proofread carefully and re-submit. |
| Invalid variable formatting | Variables are formatted incorrectly (e.g., {1} instead of {{1}}). | Use double curly braces {{ }} for all variables. |
| URL in body text | Raw URLs are placed directly in the body instead of using URL buttons. | Move links to CTA buttons and use descriptive text. |
| Non-compliant media | Header image/video violates Meta’s content policy. | Replace with policy-compliant media. |
| Privacy concerns | Template requests sensitive information (passwords, credit card numbers) inside WhatsApp. | Remove any request for sensitive data from the template. |
Using Templates in Campaigns
When creating a WhatsApp Campaign or setting an automation response:
- Select a template from the dropdown (only approved templates are listed).
- Fill in the required variables for each dynamic placeholder. The system validates your input against the template schema — missing or malformed variables trigger a warning.
- Preview the rendered message before launching the campaign.
For bulk sending with per-contact variable values, prepare a CSV or use your Voxvaani contact list with the appropriate fields mapped to template variables.
Troubleshooting
Template Sync Fails
Symptom: Clicking “Sync Templates” produces an error or no templates appear.
Possible Causes and Solutions:
- WABA Connection Issue: Your Meta token may have expired or the connection may be broken. Go to WhatsApp Suite → WhatsApp Settings in the sidebar and reconnect your Meta account.
- No Templates in WABA: Your WABA may have zero templates, or all templates may be in Pending/Rejected status. Create and submit at least one template in Meta Business Manager.
- Permission Scope: Ensure the connected Meta account has
whatsapp_business_managementpermission. Re-authenticate if permissions have changed. - Rate Limit on Meta API: If you have a very large number of templates (hundreds), Meta may throttle the fetch. Wait a few minutes and try again.
Template Not Appearing in Campaign Dropdown
Symptom: A template is visible on the Templates page but does not appear as a selection option in the campaign builder.
Possible Causes and Solutions:
- Template Status: Only “Approved” templates appear in the campaign dropdown. Check the template status on the Templates page.
- Language Mismatch: The template language may not be supported. Confirm the template language code is one that your WABA supports.
- Stale Sync: The templates page may show a cached version. Click Sync Templates to refresh the data.
- Component Issues: Templates with rejected components (e.g., a header image that was later flagged) may be partially disabled. Check the template details in Meta Business Manager.
Template Rejected by Meta
Symptom: Template shows “Rejected” status.
Possible Causes and Solutions:
- Review Meta’s Rejection Reason: Log into Meta Business Manager → Template Manager and click on the rejected template to see the specific rejection reason.
- Address the Issue: Fix the content, category, or formatting based on the rejection reason (see the “Common Template Rejection Reasons” table above).
- Re-submit: Edit the template in Meta and re-submit for review. Rejection does not prevent re-submission.
- Alternative Approach: If a specific template keeps getting rejected, consider creating a new template with different wording rather than repeatedly editing the same one.
Template Works But Variables Render Incorrectly
Symptom: Messages in a campaign display {{customer_name}} as literal text instead of the actual value.
Possible Causes and Solutions:
- Variable Not Filled: The campaign form must have a value for every variable in the template. Empty variables render as their placeholder text.
- Variable Name Mismatch: The variable name in your template (e.g.,
{{customer_name}}) must exactly match the field name in your contact data. Check for case sensitivity and spelling. - Nested Variables: Avoid using variables within variables (e.g.,
{{order_{{id}}}}). Meta does not support nested variable syntax.