Perfect WhatsApp Template Preparation Guide
One of WhatsApp Business API's most critical features is that templates you'll use for automation and broadcast messages must be pre-approved by Meta. The template approval process can be one of the most challenging and frustrating steps for many businesses. This guide offers strategies to maximize your templates' chances of first-time approval.
What is a WhatsApp Template?
A template message is a pre-prepared message format approved by Meta. These templates:
- Allow you to send messages to users outside the 24-hour rule
- Can contain variables and be personalized
- Are divided into different categories (Marketing, Service, Verification)
- Approval process varies between 1 hour and 48 hours
- Can be corrected and resubmitted when rejected
1. Category Selection: The Most Critical Step
Meta divides templates into 3 main categories. Wrong category selection is rejection reason number 1.
π’ Marketing
When to use:
- Product or service promotions
- Discount and campaign announcements
- New product launches
- Seasonal offers (Black Friday, New Year, etc.)
- Cross-sell and up-sell opportunities
- Catalog and collection promotions
Cost: Generally more expensive than other categories (varies by country)
Examples:
β
Hello {{1}}! Your exclusive 20% discount code this week: {{2}}
Campaign valid until December 31.
β
{{1}}, our new winter collection is out! πΏ
Free shipping on first 100 purchases.
Check it out now: {{2}}
Precautions:
- Don't use overly sales-oriented language
- Avoid aggressive phrases like "BUY NOW!", "LAST CHANCE!"
- Consider offering opt-out option
π One-Time Password (Authentication - OTP)
When to use:
- Login verification codes
- Password reset links
- Two-factor authentication (2FA)
- One-time PIN codes
- Account confirmation messages
Cost: Generally the cheapest category
Examples:
β
{{1}} Your WhatsApp verification code: {{2}}
Do not share this code with anyone.
Code will expire in 10 minutes.
β
To reset your password, click the link below:
{{1}}
If you didn't make this request, ignore this message.
Precautions:
- Use only for verification purposes
- Don't add marketing content
- Include security warnings
- Specify code validity period
π οΈ Utility (Service)
When to use:
- Order confirmations
- Shipping tracking notifications
- Appointment reminders
- Invoice and payment notifications
- Account status updates
- Reservation confirmations
- Flight/hotel check-in information
Cost: Medium level pricing
Examples:
β
Hello {{1}}, your order ({{2}}) has been shipped.
Tracking number: {{3}}
Estimated delivery: {{4}}
Shipping tracking: {{5}}
β
{{1}}, your appointment is coming up! β°
Date: {{2}}
Time: {{3}}
Location: {{4}}
For cancellation or changes: {{5}}
Precautions:
- Focus on transactional information
- Will be rejected if you add marketing content
- Should be sent after a user-triggered action
β Common Category Mistakes
| Wrong | Correct | Why? |
|---|---|---|
| Discount code in order confirmation (Utility) | Only order info (Utility) | Marketing prohibited in Utility |
| Welcome message in OTP category | OTP code only | OTP is for verification only |
| Invoice in Marketing category | Invoice is Utility | Transactional info not marketing |
2. Variable Usage: Detailed Guide
Variables ({{1}}, {{2}}, {{3}} etc.) allow you to personalize your templates. However, incorrect usage is a rejection reason.
Variable Rules:
- Must be sequential:
{{1}},{{2}},{{3}}(You cannot skip) - Sample data required: You must provide realistic examples for each variable
- Must be clear: What it will contain should be obvious
- Don't overuse: Maximum 5-7 variables is ideal
β Wrong Usage Examples:
β Hello {{1}}, your order is {{2}}.
Example: Hello John, your order is ready.
Problem: "Ready" is too vague. "Shipped?" or "Being prepared?" unclear.
β Campaign for {{1}}!
Example: Campaign for Product!
Problem: "Product" word is too general. Which product?
β {{1}} {{2}} {{3}} {{4}} {{5}} {{6}} {{7}} {{8}}
Problem: Too many variables, unreadable.
β Correct Usage Examples:
β
Hello {{1}}, your order number {{2}} has been sent via {{3}} shipping company.
Estimated delivery date: {{4}}
Sample Data:
{{1}} = John Smith
{{2}} = #12345
{{3}} = FedEx
{{4}} = December 15, 2023
Why correct: Each variable is clear, understandable, and realistic.
β
{{1}}, {{2}} product has {{3}}% off!
Old price: ${{4}}
New price: ${{5}}
Campaign valid until {{6}}.
Sample Data:
{{1}} = Sarah Johnson
{{2}} = iPhone 15 Pro
{{3}} = 15
{{4}} = 999
{{5}} = 849
{{6}} = December 31, 2023
Why correct: All information is specific and valuable to the user.
Variable Types and Best Practices:
| Variable Type | Example | Caution |
|---|---|---|
| Name | John Smith | Just name or full name, don't add "Dear" |
| Date | December 15, 2023 | Keep format consistent (15.12.2023 or December 15, 2023) |
| Time | 14:30 | 24-hour format preferred |
| Price | $1,299.99 | Be clear about currency and formatting |
| Order No | #ORD-12345 | Add prefix (# or ORD-) |
| Product Name | iPhone 15 Pro 256GB | Full and clear product name |
| URL | https://site.com/order/12345 | Full URL, don't use shorteners |
3. Grammar, Spelling, and Professionalism
Meta uses AI-powered systems to analyze your templates. Low quality, error-ridden templates are automatically rejected.
Writing Rules:
β Things to Do:
- Use punctuation correctly
- Pay attention to spelling
- Leave space between paragraphs
- Use periods at sentence ends
- Use a professional tone
β Things Not to Do:
- Merged words like "howareyou"
- Spelling errors
- Sentences without commas where needed
- Abbreviations like "thx", "hi"
- Unnecessary letter repetition like "Heeeello"
β Rejected Examples (Real Cases):
β hi {{1}} ur order is ready shipped tracking no {{2}}
Problems:
- "hi" instead of "Hello"
- "ur" instead of "your"
- No punctuation
- Unreadable
β HELLO {{1}}!!! WE HAVE A GREAT CAMPAIGN!!! LOOK NOW!!!
Problems:
- All caps
- Excessive exclamation marks
- Spam appearance
β Hi {{1}} got smth special 4 u click link: {{2}}
Problems:
- Informal abbreviations
- "smth" instead of "something"
- "4 u" instead of "for you"
- Unprofessional
β Approved Examples:
β
Hello {{1}},
Your order number {{2}} has been prepared and delivered to {{3}} shipping company.
Tracking number: {{4}}
Estimated delivery: {{5}}
For shipping tracking: {{6}}
Thank you!
β
Dear {{1}},
Reminder for your appointment on {{2}}:
Date: {{3}}
Time: {{4}}
Address: {{5}}
To cancel or postpone your appointment, please call us at least 24 hours in advance: {{6}}
See you soon!
4. Button (CTA - Call to Action) Usage
You can add 3 types of buttons to your templates:
1. URL Buttons (Website)
Static URL:
Button: "View Product"
URL: https://www.sitename.com/product/campaign
Dynamic URL (Recommended):
Button: "Track Order"
URL: https://www.sitename.com/order/{{1}}
Example: https://www.sitename.com/order/12345
2. Phone Buttons
Button: "Call Us"
Phone: +1 212 555 0100
3. Quick Reply Buttons
Button 1: "Yes, I'm interested"
Button 2: "No, thank you"
Button 3: "Remind me later"
Important: You can add maximum 3 buttons.
5. Adding Media (Optional)
You can add the following to your templates:
- Image: Product images, banners
- Video: Product demonstrations (max 16 MB)
- Document (PDF): Invoice, catalog, user manual
Caution: When you add media, the sample file you upload will be reviewed by Meta. Inappropriate content will be rejected.
6. Template Approval Process and Timelines
Approval Times:
- Fast approval: 5-30 minutes (simple templates)
- Normal approval: 1-24 hours (most templates)
- Slow approval: 24-48 hours (complex or risky content)
Approval Statuses:
- Pending: Waiting in review queue
- Approved: Ready to use
- Rejected: Correction required
Rejection Reasons (Meta's official list):
- Policy violation: Policy violation (prohibited content)
- Low quality: Low quality (spelling errors)
- Wrong category: Wrong category selection
- Misleading content: Misleading content
- Abusive language: Offensive language
- Unclear variables: Unclear variables
7. Template Optimization Tips
Keep It Short and Concise:
- Ideal template length: 100-300 characters
- Maximum: 1024 characters
- Every sentence should carry value
Personalization:
- Always use the user's name
- Reference their past behaviors
- Consider regional and cultural differences
A/B Testing:
- Create 2-3 different variations for the same message
- Test which performs better
- Replicate successful templates
8. Emergency Rescue Plan for Rejected Templates
Was your template rejected? Don't panic:
Step 1: Read the rejection reason (usually vague, but gives a clue)
Step 2: Review the entire checklist above:
- Is category correct?
- Are there spelling errors?
- Are variable examples clear?
- Does it look like spam?
- Is there prohibited content?
Step 3: Make corrections and wait 24 hours
Step 4: Resubmit
Step 5: If rejected again, try a very different format
Conclusion: Checklist for Approval Guarantee
- Correct category selected (Marketing/Service/OTP)
- All variables sequential and with examples
- No spelling errors, correct spelling
- No aggressive sales language
- No excessive caps, emojis, or exclamation marks
- Link is clear and trustworthy (no shorteners)
- No prohibited content
- Buttons (if any) are clear and understandable
- Media (if any) is appropriate and quality
- Opt-out option (for marketing templates) available
- Professional and friendly tone
Final Advice: Send the template to yourself and read it from a user's perspective. The answer to "How would I feel if I received this message?" should be positive.