Skip to content
ONPADDocs

Docs / Get started

Your first template

Writing a message template, the field limits, and getting it approved by Meta.

View as Markdown

A template is a message Meta approved in advance. You need one to write to anybody who has not messaged you in the last 24 hours — which includes every campaign you will ever send.

This page walks through creating one. For why they exist at all, see WhatsApp Business API.

Create it

Open Templates and choose Create template.

Name

Lowercase letters, numbers and underscores only, at least 3 characters. order_shipped works; Order Shipped does not.

The name is an identifier, not something customers see. Pick something you will recognise in a list a year from now.

Category

Pick the one that describes the message honestly:

  • Marketing — offers, announcements, anything promotional.
  • Utility — about something the customer already did: an order update, a reminder, a receipt.
  • Authentication — one-time passcodes only.

Choosing Utility for a promotional message does not make it cheaper. Meta re-categorises templates it disagrees with, and often rejects them.

Authentication is a special case. Meta writes the wording itself — the body becomes {{1}} is your verification code. and you cannot change it, add a header, a footer or your own buttons. That is Meta's rule, not a limitation of ONPAD.

Language

Pick the language the template is written in. Supported: English (en, en_US, en_GB), Hindi, Bengali, Marathi, Tamil, Telugu, Gujarati, Spanish, Portuguese (Brazil), French, German, Italian, Arabic, Indonesian, Turkish, Russian, Chinese (Simplified), Japanese and Korean.

The language must match the text. A Hindi message submitted as English is a common rejection reason.

The parts of a template

Header — optional

One of:

  • Text — up to 60 characters. Can contain one variable.
  • Image, Video or Document — uploaded as a sample when you submit.
  • Location
  • None

Body — required

Up to 1,024 characters. This is the message.

Variables are written {{1}}, {{2}} and so on, and are filled in when the message is sent:

Hi {{1}}, your order {{2}} has shipped and should arrive by {{3}}.

For every variable you must give a sample value of up to 100 characters. Meta reads the samples to understand what the template does — a template whose samples are a, b, c is much more likely to be rejected than one with Priya, #10482, Friday.

Variables cannot sit next to each other ({{1}}{{2}}) and the body cannot begin or end with one. Meta rejects both.

Up to 60 characters. Small grey text under the message. Good place for "Reply STOP to opt out".

Buttons — optional

Up to 10 buttons in total. Every label is up to 40 characters.

  • Quick reply — the customer taps and the label comes back to you as their reply. Up to 10 of them.
  • Website — opens a URL. Up to 2, and the URL must be https://.
  • Phone — dials a number. One per template.
  • Copy code — gives the customer a coupon code to copy. One per template, and Meta writes the label itself.

See Templates for the full rules.

Submit it

Saving submits the template to Meta. The status then moves through:

  • Pending — with Meta, awaiting review. Usually minutes, sometimes up to 24 hours.
  • Approved — ready to use in campaigns and the API.
  • Rejected — see below.

ONPAD keeps the status in sync with Meta, so the Templates list shows the current state.

If it is rejected

Rejection is normal, especially the first time. The usual causes:

It reads like spam. Lots of capitals, several exclamation marks, "FREE!!!", urgency pressure.

Wrong category. A promotional message submitted as Utility.

Poor sample values. Placeholders like xxx or test give Meta nothing to review.

Language mismatch. Text in one language, submitted as another.

A URL Meta cannot verify, or a link shortener it does not trust.

Asking for sensitive information — card numbers, passwords, government ID numbers.

Fix the wording and submit again. There is no penalty for resubmitting, and no queue position to lose. Repeated rejections of the same kind can affect your account standing, so change something meaningful between attempts rather than resubmitting the same text.

A good first template

Keep it simple and obviously legitimate:

Name:     welcome_message
Category: Utility
Language: en_US
Body:     Hi {{1}}, thanks for getting in touch with Sunrise Store.
          We have saved your number and will keep you updated.
Sample:   Priya
Footer:   Reply STOP to opt out

That one is approved quickly and is enough to test the whole path end to end.

Next

Your first message — sending the template you just had approved.

Still stuck?

Ask ONPAD, the assistant inside your workspace, can answer questions about your own data — how a specific campaign performed, why one message failed, what your limits are right now.

Ask ONPAD in your workspaceEmail support@onpad.in