TL;DR
Message templates are messages pre-approved by Meta that you can send even outside the 24-hour window, including to large campaigns. In this article you will learn what a message template is, how it differs from a regular session message, the three message categories (Marketing, Utility, Authentication), Meta’s rules for naming, wording, parameters, and language, and the practices that get a template approved on the first try.
Background: Why Message Templates Exist at All
WhatsApp is built to keep a personal channel between people, so Meta requires that every message a business initiates toward a customer who is not in an active conversation pass pre-approval. This mechanism prevents spam while letting businesses communicate with customers in a stable, predictable way. A message template is essentially a piece of text a business wrote, submitted to Meta for review, and got approved to send again and again.
The 24-Hour Window and the Difference Between a Message Template and a Session Message
This is the single difference you need to remember, and everything else follows from it. When a customer sends a message to a business, a conversation window of 24 hours opens. Within the window, the business can reply with any message type: free-form text, media, interactive messages. Outside the window, or if the customer has never contacted the business, you can only send approved message templates.
| Attribute | Session Message | Message Template |
|---|---|---|
| When you can send | Only within the 24-hour window from the customer’s last message | Any time, including outside the window |
| Consent required (opt-in) | No, the customer already reached out | Yes, if it is a Marketing message outside the window |
| Meta pre-approval required | No | Yes |
| Freedom of wording | Free-form text | Fixed text with custom parameters |
| Meta billing | Free or by Service category in certain countries | By category: Marketing, Utility, or Authentication |
The practical implication: any action the business initiates, such as an appointment reminder, an order confirmation, or a recurring campaign, must be based on a message template. A session message is only for handling incoming inquiries.
The Three Message Template Categories
Meta requires every message template to be classified into one of three categories. The category affects cost, how quickly the template is approved, and the likelihood of rejection.
Marketing
The broadest category and also the most expensive. Used for anything that generates demand: promotions, launches, win-back messages to inactive customers, surveys, abandoned-cart messages, and generally any message meant to encourage the customer toward a commercial action.
Example:
“Hi {{1}}, our new collection just dropped 🎉 25% off for anyone who orders in the next three days with code NEW25. Details: {{2}}”
Rules unique to Marketing:
- Emojis, links, buttons, media, and multiple CTAs are allowed.
- A Meta limit: up to 10 emojis per message.
- Opt-in from the customer is required before sending for the first time. See Importing and uploading contacts for how to collect consent.
Utility
Service messages that relate to an action the customer has already taken. Order confirmation, shipment tracking, appointment reminder, payment confirmation, account alerts. Lower cost than Marketing.
Example:
“Hi {{1}}, your order #{{2}} has shipped and will arrive on {{3}}. Track it: {{4}}”
Rules unique to Utility:
- The message must relate to a real event the customer initiated (an order, a meeting, an account event).
- No marketing content, not even one sentence. “And don’t forget this week’s sale!” at the end of a shipment-tracking message reclassifies it as Marketing, at a higher cost.
- Media is allowed if it is essential to the service (a packing list as a PDF, a product image). A marketing banner will not be approved.
Authentication
The narrowest category. Only for OTP codes, login confirmations, password resets. In Israel and several other countries, Authentication conversations are especially cheap or completely free.
Example:
“Your code is {{1}}. Don’t share it with anyone.”
Rules unique to Authentication:
- The message body must use Meta’s fixed template. You cannot write free-form text in this category, only choose a ready-made format.
- The code itself passes through a parameter ({{1}}) and is limited to 15 characters.
- No links, images, emojis, or marketing content.
- You can add a single button to copy the code or autofill it.
The Misclassification That Costs Money
This is the most common mistake. If a Utility or Authentication message contains even one marketing element, Meta will reclassify it as Marketing. Even if 90 percent of the content is service-related, the single commercial element breaks the classification and raises the cost. The simple rule is to split messages by a single purpose. A shipment-tracking message should not contain a reminder about a sale. An OTP message should not contain a request for a rating.
Types of Message Templates by Structure
In addition to its category, a message has a structure. The difference between type and category: category is determined by purpose (marketing, service, verification); type is determined by the visual components. A single message can combine several components, each optional except the body.
- Body (required). The main text of the message. Up to 1,024 characters including parameters.
- Header (optional). One of the options: short text (up to 60 characters, can include one parameter), an image (JPG / PNG), a video (MP4), a document (PDF), or a location. A text header does not support formatting.
- Footer (optional). Short text up to 60 characters, no parameters, no emojis. Common use: an opt-out instruction (“To stop receiving messages, reply ‘STOP'”).
- Buttons (optional). Up to 10 buttons per message, mixed across three types: Quick Reply (a quick response that returns to the system and the chatbot), URL CTA (opens a website), Phone CTA (places a call). If there are more than three buttons, only the first two are shown directly and the rest are collected under “See more”.
Naming, Wording, and Parameter Rules
The rules are enforced in two stages. First, Mumble and Meta check the format automatically (name, parameter format), and only if that passes does the message continue to content review. Format errors are rejected immediately.
The Template Name
- Maximum length in Mumble: 30 characters.
- Lowercase English letters only, numbers, and underscores.
- No spaces, capital letters, Hebrew, or special characters.
- The name must be unique within the account; you cannot save two templates with the same name.
Valid examples: order_shipped_v2, cart_recovery, otp_login. Invalid examples: Appointment Reminder, Order Shipped, order-shipped.
The Message Body
- Maximum length: 1,024 characters, including parameters. Each
{{n}}counts as one character in the API’s length check. - One language only in the message body. You cannot mix Hebrew and English in the same message.
- No line break inside a parameter.
- No Tab inside a parameter.
- No 4 or more consecutive spaces inside a parameter.
- In Marketing, a maximum of 10 emojis per message.
Parameters
Parameters are variables that let you personalize the message for each customer. In Meta the parameters are positional, not named, and you write them as {{1}}, {{2}}, {{3}}, in sequence with no gaps.
- The message body cannot begin or end with a parameter. You need at least one word before and after.
- No two adjacent parameters (
{{1}}{{2}}). Text between them is required. - The ratio of parameters to text matters. A short message with many parameters will be rejected. For example, “{{1}}, order {{2}} for {{3}} was sent to {{4}}, tracking: {{5}}” is likely to be rejected, because there is almost no fixed text.
Valid example:
“Hi {{1}}, your order {{2}} has shipped and will arrive by {{3}}.”
Invalid example (begins with a parameter):
“{{1}}, your order has shipped.”
Language and Multilingual Messages
Every message template is defined for a single language. For a business that talks to customers in both Hebrew and English, you need to create two separate templates, each with the same base name but in a different language. Meta does not translate automatically, and any attempt to put two languages in the same message will lead to rejection.
A common practice: write the main message in Hebrew, submit it for approval, then create a second copy in English with matching parameters.
The 250-Template Cap per Account
Meta limits each WABA (WhatsApp Business Account) to 250 message templates. In Mumble, one account is linked to one WABA, so in practice the limit is 250 message templates per Mumble account. There is no additional cap added by Mumble.
The recommendation is not to approach the cap. A small set of well-maintained templates is better than 200 templates no one remembers which flow they belong to. If you reach the cap, delete old templates that have not been sent for a long time.
Best Practices for First-Time Approval
In most cases, Meta approves a message within minutes to 24 hours. The time and the chance of approval improve when you follow these rules.
- Choose the category by the message’s real purpose. If the customer did not initiate the action (an order, appointment, event), it is not Utility. If it has even a link to the catalog, it is not Utility. When in doubt, choose Marketing. Better to pay more than to be rejected.
- Split messages by purpose. One message = one purpose. Don’t combine service with marketing. An order-confirmation message should not contain “and by the way, we have a sale”.
- Add the context in the message body. Instead of “{{1}}, your order has shipped”, write “{{1}}, your order from ColorShop has shipped”. This information helps Meta understand the category.
- Use clear URLs. Don’t send shortened links (bit.ly, tinyurl). Meta treats them as a phishing risk. Use the business’s own domain.
- Don’t mention WhatsApp or Meta as brands. “Download your WhatsApp” or “Meta is sending you” may be rejected.
- Don’t request sensitive information. Full credit card numbers, ID numbers, and bank account details are rejected automatically. The last four digits are fine.
- Use Mumble’s opt-out word list. On a Quick Reply button in Marketing, there is a selector of approved opt-out words (for example “STOP”). Words from the selector automatically update the customer’s subscription status. A free-form word acts as text only.
- Don’t send duplicates. Two messages with identical body and footer count as the same message. The second one will be rejected.
Troubleshooting Common Issues
The Message Was Rejected with the Reason “Incorrect category”
Meta decided that the category you chose does not match the content. The common cause: a message with marketing content that was marked as Utility. You cannot edit a message in Mumble. Delete the rejected one and create a new one with the Marketing category, or split the marketing element into a separate message.
The Message Was Rejected with the Reason “Formatting error”
A technical problem with the parameter rules. Check: Does the message begin or end with a parameter? Are there two adjacent parameters? Was content with a line break or consecutive spaces entered into a parameter? Fix the wording and create a new message.
The Message Was Approved but After a Week Its Status Changed to Paused
Meta paused the message temporarily because of negative feedback from recipients, such as a high rate of blocks or spam reports. Reduce the sending volume until the message returns to high quality, or create a new version with softer wording.
I Reached 250 Templates and Can’t Create a New One
Delete old templates from the message templates page. The Approved, Rejected, and Pending statuses are all included in the count. Deleting frees space immediately.
I Want to Send the Same Message in Hebrew and English
Create two separate templates, each in its own language, with the same content and matching parameters. When sending, choose the template by the customer’s language (based on a custom field or a list).
Related Articles
- Creating a message template in Mumble, step by step
- Statuses and rules for message templates
- Full WhatsApp campaign guide
- Variables and post-send actions
- Meta documentation: Message Templates Guidelines
- Meta documentation: WhatsApp Business Pricing
- Message template library
The Bottom Line
One message template = one purpose, one category, one language. When the category is right, the name is valid, the wording doesn’t mix marketing and service, and the parameters are in the right place, the template is approved on the first try. When you’re rejected, delete and create a new one. There’s no need to edit the rejected one; in Mumble you cannot edit a message after it’s created.