All guides

WhatsApp templates: approval, categories and the 24-hour window

Two rules explain almost every WhatsApp message that failed to send. Both are Meta’s, both are fixed, and both are easier to design around than to argue with.

7 min read

Rule one: you cannot start a conversation freely

If your business sends the first message, or replies outside the window described below, it must use a template Meta has reviewed and approved in advance. There is no exception for transactional content, internal testing or a message the customer explicitly asked for.

A template has a fixed structure — an optional header, a body, an optional footer, and buttons — with variables in named positions. You submit it, Meta reviews it, and it comes back approved or rejected. Approval is not instant and rejection is not always explained in detail, which is why building templates against the real limits before submitting saves days rather than minutes.

The limits worth knowing before you write

  • Body: up to 1024 characters. Long enough for most things, short enough to catch people pasting an email.
  • Header and footer: 60 characters each, and headers reject formatting characters and line breaks.
  • Buttons: up to 25 characters of text each, with limits on how many may be URL buttons and phone buttons.

None of these are negotiable and all of them are checkable before submission. A builder that validates as you type turns a two-day rejection loop into an inline warning.

Marketing or utility is a pricing decision, not a label

Templates are submitted under a category, and the category changes both how Meta reviews the message and how the resulting conversation is priced. Marketing covers promotions, offers and anything designed to generate business. Utility covers messages about a specific transaction the customer already has with you — an order, a booking, an account.

Choosing utility for a promotional message to save money is the most common reason a template is rejected, and repeat attempts affect how your account is treated. Write the message you actually intend to send, then pick the category that honestly describes it.

Authentication is a third category with its own component model for one-time codes. It behaves differently enough that many platforms, including this one, treat it as a separate piece of work.

Rule two: the 24-hour customer service window

When a customer messages you, a window opens. Inside it you may reply freely, in your own words, as many times as the conversation needs. When it closes — twenty-four hours after their last message, not after yours — free-form replies stop being permitted and you are back to approved templates.

The practical consequence is that a reply written on Friday afternoon and sent on Monday morning will fail, and it will fail at send time rather than while it was being typed. Any system worth using checks the window when the reply is composed and again when it is dispatched.

Note that this window is a WhatsApp, Messenger and Instagram DM rule. Telegram and public comment replies have no equivalent limit, so a shared inbox that applies one rule to every channel is either blocking replies it should allow or allowing ones it should block.

Designing around both rules

  • Keep a small set of approved templates for the conversations you start, and treat approval as a lead time rather than a step.
  • Put the reply window in front of whoever is typing, not in the error they receive afterwards.
  • Check consent at send time, not when the audience was built — the gap between the two is where complaints come from.
  • Expect per-conversation pricing from Meta, and expect marketing conversations to cost more than utility ones.

None of this is difficult once it is in the mechanism. It is only painful when the rules live in a policy document and the software finds out at send time.

Questions these did not answer

Bring the specific one. It is a better demo than the tour.