Template Categories
Meta requires every template to be assigned to one of three categories. Choosing the right category matters — submitting a promotional message under “Utility” is one of the most common rejection reasons.Creating a Template
1
Open the Templates module
Go to Templates → New Template.
2
Choose a category
Select Marketing, Utility, or Authentication based on the purpose of the message.
3
Enter a template name
Give the template a unique name using only lowercase letters and underscores — for example,
order_confirmation_v1. The name is permanent once submitted and cannot be changed, so choose carefully.4
Select a language
Templates are language-specific. Select the language this version is written in. To send the same message in multiple languages, create a separate template for each language.
5
Compose the message body
Write the message content. Use
{{1}}, {{2}}, {{3}} etc. as placeholders for dynamic variables that will be filled in at send time. Add sample values for each variable — Meta requires them to evaluate the template.6
Add a header (optional)
Optionally add a header above the message body: a short text line, or a media attachment (image, video, or document). Media headers significantly increase engagement rates on marketing templates.
7
Add a footer and buttons (optional)
Add a footer line (often used for opt-out instructions) and interactive buttons — Quick Reply buttons (tap to send a predefined response) or Call-to-Action buttons (phone call or URL link).
8
Submit for approval
Click Submit for Approval. The template status changes to Pending and enters Meta’s review queue.
Template Variables
Variables let you personalize a single template for every recipient. Here’s an example of a Utility template using three variables:{{1}} → First Name) or from campaign-level inputs you define when launching the broadcast. The delivered message looks like:
Approval Status
Common Rejection Reasons
Template contains URLs not on the allow-list
Template contains URLs not on the allow-list
Meta requires all URLs used in templates to be registered in your Meta Business Manager before they can appear in approved templates. Log in to Meta Business Manager, navigate to WhatsApp Manager → Message Templates, and register your domain. Then resubmit the template.
Marketing language in a Utility template
Marketing language in a Utility template
Utility templates must relate directly to a transaction or customer-initiated interaction. If your message contains promotional language (discounts, offers, calls to action encouraging a purchase), it must be submitted as a Marketing template instead.
Missing opt-out language
Missing opt-out language
Meta requires Marketing templates to give recipients a way to opt out of future messages. Add a clear opt-out instruction — such as “Reply STOP to unsubscribe” — to the message footer. Utility and Authentication templates are exempt from this requirement.
Variable values not clear
Variable values not clear
Meta rejects templates where the purpose of a variable is ambiguous — for example, a template where
{{1}} could contain anything. Always provide concrete sample values when submitting (e.g. {{1}} = “Jane”, {{2}} = “10482”). This helps Meta’s reviewers understand the context and intended use of each variable.
