WhatsApp message templates: how to create and get them approved by Meta
HSM templates (Highly Structured Messages) are the only messages your company can send to a customer who hasn't messaged you in the last 24h. Without a template you can't send a reminder, run a campaign, or update an order status. Here's the complete guide to creating them without rejection.
What HSM templates are
They're messages pre-approved by Meta that your company can send at any time. Each template has:
- Name: unique identifier, snake_case, no spaces (e.g.,
appointment_reminder). - Body: fixed text with variables
{{1}}, {{2}}that you substitute at send time. - Category: UTILITY, MARKETING, or AUTHENTICATION.
- Language: en_US for English, pt_BR for Portuguese, etc.
Once approved by Meta (typically 1-3 business days), you can send to any contact — that opens a 24h window for regular messages afterwards.
Categories: which to choose
UTILITY (transactional)
Meta cost: ~$0.016/conversation. Use for:
- Order confirmations ("Your order #1234 was confirmed")
- Appointment reminders ("Reminder: appointment tomorrow at 2pm")
- Shipping updates ("Your order is out for delivery")
- Payment status ("Payment approved, $19.40")
Rule: must be a response to a customer action. Customer placed an order → you confirm. Customer booked an appointment → you remind them.
MARKETING (promotional)
Meta cost: ~$0.07/conversation. Use for:
- Promotions ("Black Friday: 30% off the annual plan")
- Reactivation ("It's been 30 days. Want to come back?")
- Launches ("New items in the collection")
- Seasonal campaigns ("Back to school: kit for $39.80")
Rule: requires opt-in. The customer must have agreed to receive promotions. Otherwise, Meta takes the template down and lowers your quality rating.
AUTHENTICATION (codes)
Meta cost: ~$0.02/conversation. Use for 2FA codes and login OTPs. Most restricted category — usually only software/banking companies use it.
The 7 Meta rules for approval
- Valid technical name: only a-z, 0-9, underscore. No spaces, no accents. Max 60 chars.
- Body up to 1024 characters.
- Sequential variables:
{{1}}, {{2}}, {{3}}. Skipping numbers gets rejected. - No unfulfillable promises: "Guaranteed approval in 1 minute" gets rejected.
- No generic terms like "WhatsApp": using the word WhatsApp in the name or body gets rejected.
- Correct category: don't try to classify a promotion as UTILITY to pay less — Meta detects and rejects.
- No suspicious shortened links: bit.ly, tinyurl. Use your own domain.
Most common rejection reasons
- "Generic content": text too vague. "Hi, how are you?" gets rejected. You have to show business context.
- "Promotional content in utility": trying to send marketing as utility. Meta auto-categorizes.
- "Spam-like": excessive use of emojis, ALL CAPS, exaggerated offers.
- "Misleading": false promise or contradiction with your business category.
8 ready-to-copy templates
These 8 cover 80% of typical SMB scenarios. Replace bracketed items with real data.
UTILITY (transactional)
order_confirmed: "Hi {{1}}! Your order #{{2}} was confirmed. Total: $ {{3}}. ETA: {{4}}. Thanks for choosing us!"appointment_reminder: "Hi {{1}}, reminder of your appointment tomorrow at {{2}} for {{3}}. Can you confirm?"order_shipped: "Hi {{1}}! Order #{{2}} has shipped. Tracking: {{3}}. ETA: {{4}} business days."service_ready: "Hi {{1}}, your {{2}} is ready for pickup. Open until {{3}}. See you!"
MARKETING (promotional)
weekly_promo: "Hi {{1}}! This week's promo: {{2}}. Valid until {{3}}. To order, just message us here!"customer_winback: "Hi {{1}}, it's been a while. How about scheduling your next {{2}}? I have slots open this week."abandoned_cart: "Hi {{1}}, I noticed you were interested in {{2}} but didn't finish. Can I send you the link with {{3}}% off?"trial_class: "Hi {{1}}! How about a free trial class with us? Available: {{2}}. Want to schedule?"
Shortcut: create 3 templates for your niche in 1 click
MercaBot has a "Suggest templates for my vertical" button that automatically creates the 3 most-used templates covering reminder + promotion + winback for pizzeria, salon, clinic, gym, retail, auto shop, real estate, course (or generic). Templates already formatted for Meta rules — you just review and approve.
Ready-to-use templates in the dashboard, in 30 seconds
Connect your WhatsApp Business, click "Suggest templates", and MercaBot creates 3 HSM templates for your niche ready for Meta approval.
Try it free →