Best practices for creating WhatsApp templates
WhatsApp templates are the only way to initiate conversations with customers outside the 24-hour service window. Meta reviews them before approving, and a rejection can mean days of delay in your communications. This guide brings together the rules, common mistakes, and practical tips to get your templates approved on the first try.
1. Choose the Right Category
This is the most common mistake and the leading cause of rejections. Meta classifies templates into two categories, and the content must match exactly the one you select.
Category | Use | Examples |
📣 Marketing | Product promotions, offers, announcements with explicit user opt-in. | Discounts, product launches, event invitations |
⚙️ Utility | Transactional messages: confirmations, updates, non-promotional alerts. | Booking confirmation, appointment reminder, fraud alert |
Notice: Rule Change Since April 2025Meta can automatically reclassify a Utility template to Marketing if it detects warm, open-ended, or slightly promotional language. This may increase the cost per conversation. If you want a template to remain as Utility, write it as a direct alert or notification, not as a conversation. |
Practical rule for choosing the category:
- Does the message promote something or invite the user to buy/engage? → Marketing
- Does the message inform about something the user already initiated or requested? → Utility
2. Format Errors That Cause Automatic Rejection
Meta’s review system works partially through automation. The following format errors trigger immediate rejection without human review.
Variables (Parameters)
- **Wrong format: **Always use {{system_variables}} (always with double curly braces). A single pair like {example} or (example) will be rejected.
- **Variable at the start or end: **Never begin or end a message with a variable. E.g.: ❌ {{guest-name}}, your reservation is ready. ✅ Hello {{guest-name}}, your reservation is ready.
- **Consecutive variables: **You cannot have two variables together without text between them: ❌ {{guest-name}}{{reservation-id}}
- **Template too generic: **"Hello {{guest-name}}." will be rejected. Add enough context for Meta to understand the purpose.
Correct Utility template example*Hello {{guest-name}}, your reservation #{{reservation-id}} has been successfully confirmed. Your check-in date is {{checkin-date}}.* |
Text and Content
- Do not use shortened links (bit.ly, tinyurl). The URL must lead directly to your business domain.
- Avoid spelling and grammar mistakes. The reviewer detects them and may reject for low quality.
- Do not use emojis in the header or footer, only in the body and sparingly.
- Do not request sensitive data: full card numbers, passwords, complete banking details.
- Avoid threatening language, false urgency, or misleading claims.
❌ Words that trigger automatic rejection in Utility templates"free", "discount", "offer", "exclusive", "promo", "act now". These are Marketing words. Using them in a Utility template generates rejection. |
3. Template Names: Small Detail, Big Impact
The template name is one of the factors Meta evaluates. Follow these rules:
- Only lowercase letters, numbers, and underscores ( _ ). Maximum 512 characters.
- Use descriptive names that reflect the purpose: order_confirmation_en, appointment_reminder_v2
- If a template is rejected, you must create a new one with a different name. The original name stays blocked for 30 days.
- You can create multiple templates with the same name in different languages; each one counts toward your limit.
Recommended naming examples*support_ticket_created | marketing_promo_summer_2025 | utility_shipment_confirmed | marketing_discount_july* |
4. Always Include Parameter Examples
When a template has variables, you must include real example values when creating it. The review team uses these examples to understand the context and decide whether to approve it. If examples are generic or empty, approval is slower or the template may be rejected.
- Use real and representative values, not placeholder text like "asd" or "123".
- Examples must reflect the actual use case of the template.
- For templates with multimedia content (image/video/document), you must upload a sample file.
❌ Bad examples{{1}} → "John"{{2}} → "123"{{3}} → "tomorrow" | ✅ Good examples{{1}} → "Maria Garcia"{{2}} → "ORD-48291"{{3}} → "March 15, 2025" |
5. Maintaining the Quality of Active Templates
Getting a template approved is not the end of the process. Meta continuously monitors how users interact with the messages you send. Low quality can pause or deactivate your template.
Quality statuses to watch
- **High quality: **Few or no negative feedback. Ideal situation.
- **Medium quality: **Several users blocked or reported the message. Act soon.
- **Low quality: **The template may be paused. Review and correct the content or audience.
- **Paused: **Cannot be sent. Requires immediate action.
- **Disabled: **Repeated negative feedback. The template cannot be recovered.
How to maintain high quality
- Only send templates to users who gave explicit opt-in for that type of message.
- Do not send the same marketing template repeatedly to the same users.
- Personalize messages as much as possible using relevant variables.
- Review why users block or report; adjust content or frequency accordingly.
- Monitor the WhatsApp Manager dashboard and set up status update webhooks.
6. Best Practices for Writing Content
Template content must be clear, direct, and understandable without additional context.
- The purpose of the message must be obvious from the first sentence.
- Use variables to personalize, not to hide the real purpose of the message.
- If you include call-to-action (CTA) buttons, make them clear and relevant.
- Avoid overly broad templates with many parameters: the more variables, the higher the risk of rejection.
- For Utility templates, write like an alert: precise, informative, no frills.
- For Marketing templates, always include the value for the customer and the type of communication.
About Marketing messages since July 2025WhatsApp updated its pricing model to charge per message (not per conversation). This makes keeping Utility templates correctly categorized more important than ever for cost control. |
7. What to Do if a Template Is Rejected
Rejection is not final. Follow these steps:
- Review the rejection code in WhatsApp Manager to understand the exact reason.
- Create a new template with a different name (the rejected name stays blocked for 30 days).
- Fix the problem: review category, variable format, prohibited content, and examples.
- If you believe the rejection was Meta’s error, you can appeal through WhatsApp Business Support.
- If the template has been in “Under review” status for more than 48–72 hours, open a support ticket.
Common rejection codesTAG_CONTENT_MISMATCH: the language or category does not match the content.INVALID_FORMAT: variables are incorrectly formatted.POLICY_VIOLATION: content that violates WhatsApp policies.DUPLICATE_TEMPLATE: an identical template already exists in the account. |
Checklist Before Submitting a Template
Before clicking "Submit for Review", confirm each item:
- The category matches exactly the purpose of the message.
- Variables use the correct format (double curly braces: {{variable_name}}).
- No variable appears at the beginning or end of the message.
- There are no consecutive variables without text between them.
- The template name uses only lowercase letters and underscores.
- I included real and representative example values for each variable.
- The content does not include shortened URLs.
- URLs point to my company’s own domains.
- I am not requesting sensitive financial or personal data.
- I am not using marketing words (free, discount, offer) in a Utility template.
- The purpose of the message is clear without needing external context.
- If it includes multimedia, I uploaded a valid sample file.
Source: WhatsApp Business Platform — Meta Developers Documentation | Updated January 2026
Updated on: 03/03/2026
Thank you!
