Quick Answer: WhatsApp template messages are pre-approved message formats required to contact customers outside the 24-hour conversation window. Submit templates through Meta Business Manager, wait 24-48 hours for approval, then use them for notifications like order updates, appointment reminders, and marketing campaigns.
You cannot message WhatsApp customers whenever you want. Meta restricts unsolicited business messages to protect users from spam.
Template messages are the solution. Pre-approved message formats let you send important notifications even when customers have not messaged recently.
This guide covers everything: template categories, approval process, formatting rules, and examples that get approved.
What Are Template Messages?
Template messages (formerly called HSM - Highly Structured Messages) are pre-written message formats that Meta reviews and approves before you can send them.
Why They Exist:
WhatsApp has a 24-hour customer service window. After a customer messages you, you have 24 hours to respond freely. After 24 hours, you can only contact them using approved templates.
This prevents businesses from spamming customers who did not explicitly opt-in to communications.
Template Categories
Meta categorizes templates by purpose. Category affects pricing and approval criteria.
1. Utility Templates
Purpose: Transaction-related information customers expect to receive.
Examples:
- Order confirmations
- Shipping updates
- Delivery notifications
- Appointment reminders
- Payment receipts
- Account alerts
Approval Rate: High (95%+) if content matches category
Cost: Lowest per-conversation rate
2. Authentication Templates
Purpose: One-time passwords and verification codes.
Examples:
- Login verification codes
- Two-factor authentication
- Password reset codes
- Account verification
Approval Rate: Very high (98%+) with standard format
Cost: Low per-conversation rate
3. Marketing Templates
Purpose: Promotional content and offers.
Examples:
- Product announcements
- Sale notifications
- Promotional offers
- Newsletter content
- Re-engagement campaigns
Approval Rate: Lower (70-80%) - stricter review
Cost: Highest per-conversation rate
4. Service Templates
Purpose: Customer service follow-ups.
Examples:
- Support ticket updates
- Feedback requests
- Service completion notifications
Approval Rate: High (90%+)
Cost: Free for first 1,000 conversations/month
Template Structure
Every template has these components:
┌─────────────────────────────────────┐
│ HEADER (optional) │
│ Text, Image, Video, or Document │
├─────────────────────────────────────┤
│ BODY (required) │
│ Main message text with variables │
│ Example: "Hi {{1}}, your order │
│ {{2}} has shipped!" │
├─────────────────────────────────────┤
│ FOOTER (optional) │
│ Small text, often disclaimers │
├─────────────────────────────────────┤
│ BUTTONS (optional) │
│ Quick Reply or Call-to-Action │
└─────────────────────────────────────┘
Variables
Use {{1}}, {{2}}, {{3}} etc. for dynamic content:
Template: "Hi {{1}}, your order {{2}} will arrive on {{3}}."
Sent: "Hi Sarah, your order #12345 will arrive on Dec 5."
Variable Rules:
- Maximum 1,024 characters per variable
- Cannot contain only emojis or special characters
- Must provide sample values during submission
Creating Templates
Step 1: Access Template Manager
- Go to Meta Business Manager
- Navigate to WhatsApp Manager
- Select your WhatsApp Business Account
- Click "Message Templates"
- Click "Create Template"
Step 2: Choose Category
Select the most accurate category. Miscategorization leads to rejection.
| If Your Message Is About... | Choose Category |
|---|---|
| Order/shipping updates | Utility |
| Appointment reminders | Utility |
| Payment confirmations | Utility |
| Login codes | Authentication |
| Promotional offers | Marketing |
| Sale announcements | Marketing |
| Feedback requests | Service |
Step 3: Write Template Content
Header Options:
- None
- Text (60 characters max)
- Image
- Video
- Document
Body Requirements:
- 1-1024 characters
- At least one variable recommended
- Clear, professional language
Footer:
- Optional
- 60 characters max
- Good for "Reply STOP to unsubscribe"
Buttons:
- Quick Reply (up to 3): Customer taps to send predefined response
- Call-to-Action (up to 2): Opens URL or phone dialer
Step 4: Provide Samples
Meta requires example content for each variable:
Template: "Your verification code is {{1}}. Valid for {{2}} minutes."
Sample: "Your verification code is 847293. Valid for 10 minutes."
Step 5: Submit for Review
Click "Submit" and wait. Review typically takes:
- Utility/Authentication: 24 hours or less
- Marketing: 24-48 hours
- Complex templates: Up to 72 hours
Approval Best Practices
Do This (Gets Approved)
Clear Purpose:
✅ "Hi {{1}}, your appointment at {{2}} is confirmed for {{3}} at {{4}}. Reply YES to confirm or RESCHEDULE to change."
Professional Tone:
✅ "Order Update: Your order {{1}} has shipped via {{2}}. Track at {{3}}"
Opt-Out Included (Marketing):
✅ "{{1}}, we have a special offer for you! Get 20% off your next purchase. Use code {{2}} at checkout. Reply STOP to unsubscribe."
Avoid This (Gets Rejected)
Vague Content:
❌ "Hi {{1}}, we have something for you. Click here: {{2}}"
Rejection reason: Unclear purpose
Aggressive Marketing:
❌ "BUY NOW!!! {{1}} - MASSIVE SALE - DON'T MISS OUT!!!"
Rejection reason: Spam-like content
Wrong Category:
❌ Submitting "Get 20% off" as Utility template
Rejection reason: Marketing content in wrong category
Missing Context:
❌ "{{1}}"
Rejection reason: No fixed content, cannot review
Template Examples by Use Case
Order Confirmation
Category: Utility
Header: Text - "Order Confirmed ✓"
Body: "Thank you for your order, {{1}}!
Order #{{2}}
Items: {{3}}
Total: {{4}}
Estimated delivery: {{5}}
Track your order anytime by replying TRACK."
Buttons:
- Quick Reply: "Track Order"
- URL: "View Order Details" → {{6}}
Appointment Reminder
Category: Utility
Header: Text - "Appointment Reminder"
Body: "Hi {{1}}, this is a reminder for your appointment:
📅 Date: {{2}}
⏰ Time: {{3}}
📍 Location: {{4}}
Reply CONFIRM to confirm or RESCHEDULE to change your appointment."
Buttons:
- Quick Reply: "Confirm"
- Quick Reply: "Reschedule"
Shipping Update
Category: Utility
Header: Image - [Delivery truck image]
Body: "Great news, {{1}}! Your order is on the way.
🚚 Carrier: {{2}}
📦 Tracking: {{3}}
📅 Expected delivery: {{4}}
Track your package:"
Buttons:
- URL: "Track Package" → {{5}}
Authentication Code
Category: Authentication
Body: "{{1}} is your verification code. This code expires in 10 minutes. Do not share this code with anyone."
Marketing Promotion
Category: Marketing
Header: Image - [Product image]
Body: "Hi {{1}},
We thought you would love this: {{2}} is now {{3}} off!
This offer expires {{4}}. Use code {{5}} at checkout.
Reply STOP to unsubscribe from promotions."
Buttons:
- URL: "Shop Now" → {{6}}
Feedback Request
Category: Service
Body: "Hi {{1}}, thank you for your recent purchase!
We would love to hear about your experience. Your feedback helps us improve.
How would you rate your experience?"
Buttons:
- Quick Reply: "Excellent"
- Quick Reply: "Good"
- Quick Reply: "Could be better"
Handling Rejections
Common Rejection Reasons
| Rejection Reason | Fix |
|---|---|
| "Content not allowed" | Remove promotional language from utility templates |
| "Unclear purpose" | Add context explaining what the message is for |
| "Spam-like content" | Remove excessive punctuation, caps, urgency |
| "Missing opt-out" | Add unsubscribe option for marketing templates |
| "Incorrect category" | Resubmit with correct category |
| "Sample content issue" | Provide realistic sample values |
Appeal Process
If you believe rejection was wrong:
- Review Meta's template guidelines
- Modify template to address stated reason
- Resubmit as new template
- If still rejected, contact Meta Business Support
Template Management
Naming Convention
Use clear, searchable names:
Good: order_confirmation_v2
Good: appointment_reminder_24hr
Good: marketing_seasonal_sale_dec25
Bad: template1
Bad: new_template
Bad: test
Version Control
When updating templates:
- Create new version (e.g.,
order_confirmation_v3) - Test new version with small audience
- Update integrations to use new template
- Keep old version active during transition
- Delete old version after full migration
Quality Rating
Meta tracks template performance:
- Green (High Quality): Low block/report rate
- Yellow (Medium Quality): Some negative signals
- Red (Low Quality): High block rate, may be paused
Maintain green rating by:
- Only messaging opted-in customers
- Keeping content relevant and expected
- Respecting unsubscribe requests immediately
Implementation with Oxaide
Managing templates across multiple use cases requires organization. Oxaide handles template complexity:
- Pre-built templates: Common use cases ready to deploy
- Approval tracking: Monitor template status across accounts
- Variable management: Dynamic content injection from your data
- Analytics: Track delivery, read, and response rates per template
Our WhatsApp pilot program includes template setup and approval as part of the done-for-you service.
Key Takeaways
- Templates are required for messaging outside 24-hour window
- Choose correct category - miscategorization leads to rejection
- Include opt-out for marketing templates
- Provide clear samples during submission
- Monitor quality rating to avoid template pausing
- Test before scale - verify templates work before bulk sending
Templates are the foundation of proactive WhatsApp business communication. Get them right, and you can reach customers with order updates, reminders, and promotions that drive engagement without risking account restrictions.