Configuration

WhatsApp Message Templates Meta Approves

WhatsMCP Engineering
Oct 6, 2026 · 8 min read

On the WhatsApp Business API, you can't just message a customer whenever you like. To start a conversation — or to pick one up again more than 24 hours after the customer last wrote — you need a message template that Meta has reviewed and approved. Get templates right and your agent can send order updates, reminders and follow-ups all day. Get them wrong and they bounce back as Rejected, or get quietly re-categorized as marketing and cost more.

This guide explains how WhatsApp message templates work, the rules Meta reviews them against, the most common reasons they're rejected, and ten examples you can adapt. It finishes with how to create and send templates from an AI agent through WhatsMCP.

Anatomy of a WhatsApp message template: optional text header, body with numbered variables, optional footer and up to ten buttons

What a template is — and when you need one

A template is a pre-written message with placeholders — Hi {{1}}, your order {{2}} has shipped — that Meta approves once and you then send many times with different values. You need one when:

  • You message first. Any conversation your business starts needs a template.
  • The 24-hour window has closed. You can reply freely for 24 hours after the customer's last message; after that, only a template can re-open the conversation.

Inside an open 24-hour window, ordinary replies are fine and no template is needed. (Meta charges per message either way under its own pricing — including replies inside the window since 1 October 2026.)

The three categories

Every template has a category, and Meta checks that the content matches it.

  • Utility — follows up on something the customer did or asked for, or something essential to them: order and delivery updates, appointment reminders, account and billing notices. It must be non-promotional.
  • Marketing — anything that promotes: offers, announcements, re-engagement, newsletters, "we miss you".
  • Authentication — one-time verification codes.

Mixed content counts as marketing. An order update that ends with "use code SAVE10 on your next order" is a marketing template, whatever category you pick. Meta re-categorizes templates both at review and in recurring checks of approved ones, and it tells you when it does. If you think it got it wrong, you can ask Meta for a category review.

WhatsMCP's wa_create_template creates Utility and Marketing templates. Its answer includes the category Meta actually assigned, which can differ from the one you asked for.

The three WhatsApp template categories — utility, marketing and authentication — with examples, and the rule that mixed content is treated as marketing

Anatomy and limits

Part Required Limits
Name Yes Lowercase letters, digits and underscores, e.g. order_update
Language Yes One template per language, e.g. en_US, pt_BR; Meta doesn't translate
Header No Text up to 60 characters, at most one variable
Body Yes Up to 1,024 characters, variables {{1}}, {{2}}, …
Footer No Up to 60 characters, no variables
Buttons No Up to 10: quick replies, up to 2 URL buttons, 1 phone-number button

Meta also supports media headers (image, video, document) and named variables like {{first_name}}; WhatsMCP's template tools use text headers and numbered variables.

Variables: the rules that cause most rejections

Variables are where most templates fail review. Meta's own rules:

  1. Number them in order. {{1}}, {{2}}, {{3}} — no gaps, no skipping, braces matched.
  2. Don't start or end the body with a variable. {{1}}, your order has shipped and Your code is {{1}} are "dangling" and get rejected. Add words around them: Hi {{1}}, your order has shipped.
  3. Keep the text-to-variable ratio sensible. A short message that is mostly placeholders reads as a blank cheque and gets rejected. Give each variable real context.
  4. No special characters in variables. #, $ and % inside the placeholder itself are rejected.
  5. Provide sample values. Meta's reviewers read them. Make them realistic: Ada and #10422, not test and xxx.

Good habits beyond the rules: don't put two variables right next to each other, and at send time keep values on one line — no line breaks or long runs of spaces.

Common rejection reasons

  • Variable formatting — dangling, out-of-order or unmatched variables (above).
  • Wrong category — promotional content submitted as utility.
  • Asking for sensitive data — full card numbers, full national ID numbers and the like. Partial values ("card ending 4242") are fine.
  • Abusive or threatening content — including legal threats and public shaming.
  • Policy violations — content against WhatsApp's Commerce or Business policies.
  • Duplicates — the same wording as a template you already have.

Review usually takes up to 24 hours. If a template is rejected, fix the cause and submit it again, or appeal if you believe Meta got it wrong. With WhatsMCP, wa_list_templates shows the rejected template with Meta's rejected_reason; create the corrected version under a new name. (A deleted template's name can't be reused for a while.)

After approval: quality and pausing

Approved templates are watched. If customers block you or report messages sent with a template, its quality rating drops, and Meta can pause it — for a few hours the first and second time, then disable it. The fix is the template, not the volume: make it more relevant, send it only to people who expect it, and give them an easy way to opt out.

A WhatsApp message template's life cycle: draft with wa_create_template, Meta review, approved, send with wa_send_message and variables

Ten templates you can adapt

All of these follow the rules above: numbered variables, no variable at the start or end, realistic examples.

1. Order shipped — Utility

Hi {{1}}, good news: your order {{2}} has shipped and should arrive by {{3}}. Reply to this message if you have any questions.

2. Delivery window — Utility

Hi {{1}}, your delivery is booked for {{2}}. Reply here if that time doesn't work and we'll find another slot.

3. Appointment reminder — Utility

Hello {{1}}, this is a reminder of your appointment on {{2}} at {{3}}. Reply YES to confirm or NO to reschedule.

Buttons: quick replies Confirm and Reschedule.

4. Payment received — Utility

Thanks {{1}} — we've received your payment of {{2}} for invoice {{3}}. No action is needed.

5. Payment due — Utility

Hi {{1}}, invoice {{2}} for {{3}} is due on {{4}}. You can view and pay it using the link below.

Button: URL View invoice.

6. Support ticket update — Utility

Hi {{1}}, there's an update on your support request {{2}}: {{3}}. Reply to this message to continue the conversation.

7. Missed call follow-up — Utility

Hi {{1}}, sorry we missed your call earlier. Reply here and we'll pick it up straight away.

8. Back in stock — Marketing

Good news, {{1}}! {{2}} is back in stock. Tap below to see it before it sells out again.

Button: URL Shop now. Footer: Reply STOP to unsubscribe.

9. Re-engagement — Marketing

Hi {{1}}, it's been a while! Here's {{2}} off your next order with us, valid until {{3}}.

Footer: Reply STOP to unsubscribe.

10. Event invitation — Marketing

Hi {{1}}, you're invited to {{2}} on {{3}}. Tap below to save your place.

Button: URL Register.

Creating and sending templates from an AI agent

With your Business number connected to WhatsMCP, your agent can do the whole loop in plain language — in Claude, ChatGPT or any MCP client.

Create:

"Create a utility template called order_shipped in English: 'Hi {{1}}, good news: your order {{2}} has shipped and should arrive by {{3}}. Reply to this message if you have any questions.' Examples: Ada, #10422, Friday."

Behind it is one wa_create_template call:

wa_create_template({
  "account_id": "acct_…",
  "name": "order_shipped",
  "language": "en_US",
  "category": "UTILITY",
  "body": "Hi {{1}}, good news: your order {{2}} has shipped and should arrive by {{3}}. Reply to this message if you have any questions.",
  "body_examples": ["Ada", "#10422", "Friday"],
  "buttons": [{ "type": "QUICK_REPLY", "text": "Track my order" }]
})

Check: wa_list_templates lists every template with its status — PENDING while Meta reviews, then APPROVED or REJECTED with a reason — plus how many variables each one needs.

Send:

wa_send_message({ "account_id": "acct_…", "to": "447700900111",
                  "template": "order_shipped", "template_language": "en_US",
                  "template_variables": ["Ada", "#10422", "Friday"] })

Tidy up: wa_delete_template removes a template — one language, or every language of the name.

An AI agent's template workflow in WhatsMCP: wa_create_template, wait for Meta's review with wa_list_templates, then wa_send_message with template variables

Checklist before you submit

  • The category matches the content — no promotions in a utility template.
  • Variables are numbered in order and none starts or ends the body.
  • Every variable has words around it, and the examples are realistic.
  • No request for full card numbers, ID numbers or passwords.
  • Header and footer are under 60 characters; the body under 1,024.
  • Marketing templates tell people how to opt out.
  • The name is lowercase with underscores and says what the template is for.

FAQ

How long does template approval take?

Meta says review takes up to 24 hours, and it's often much faster.

Can I edit an approved template?

In WhatsApp Manager you can edit approved templates a limited number of times (Meta allows about one edit a day and ten a month), and an edit goes back to review. With WhatsMCP, the simplest path is to create a new version under a new name.

Why did my utility template become marketing?

Because something in it reads as promotional. Remove offers, discount codes and "check out our new…" language, or accept the marketing category.

Do I need a template to reply to a customer?

Not within 24 hours of their last message. After that, yes.

Can I use templates on a Personal WhatsApp number?

No. Templates are part of the WhatsApp Business API. A Personal number doesn't use them — see Personal WhatsApp vs WhatsApp Business API.

Get started

Create a WhatsMCP workspace and connect your Business number — your first Business plan starts with a 7-day free trial — and let your agent draft, submit and send templates for you.

About WhatsMCP Engineering

Engineering Team at WhatsMCP. The team building WhatsMCP's MCP server and SIP bridge — the people who wrote the code these posts describe.

Related posts

AI Agents
Oct 5, 2026

Connect WhatsApp Business API to Claude

AI Agents
Oct 5, 2026

Personal WhatsApp vs WhatsApp Business API