Skip to Content
This guide has been rewritten for the new Raion Hub.See what changed →
MessagingCreate a WhatsApp message template

Create a WhatsApp message template

A campaign can only send a template that Meta has reviewed and approved — there is no free-text send. This page builds one. Expect about 15 minutes to write it, and however long Meta takes to answer; the template’s status pill changes on its own when it does.

Before you start — you need a WhatsApp Business number connected on the Integrations page, Message Templates access on that account (or workspace ownership), the wording you want to send, and a real example of every value that changes from person to person.

Steps

Open the template editor

In the sidebar, under Messaging, click Templates, then click New Template.

Messaging → Templates. Templates belong to a WhatsApp account — check the account chip before you start.

The editor fills the screen: the form on the left, a live WhatsApp preview on the right. On a phone it is a sheet, and Preview opens the bubble on its own.

Name it, and choose a category and language

Name is how you will find the template later. It is forced to lowercase as you type, and anything that is not a letter, a number or an underscore becomes an underscore — so Appointment Reminder becomes appointment_reminder.

A template can never be renamed. Name is read-only once the template exists. If you need a different name, duplicate it under the new name instead — see Change, copy or delete a template.

Category is the choice Meta cares about most. The ⓘ beside it opens Choosing a category:

CategoryWhat belongs in it
MarketingPromos, offers, announcements.
UtilityUpdates tied to an existing order or account — reminders, confirmations, alerts.
AuthenticationOne-time codes for login or verification.

Miscategorising is the single most common reason Meta rejects a template — filing a promotion as Utility to dodge marketing limits, for instance. Pick the category that matches the content, not the one with fewer restrictions. The other common rejections are Missing example values., Prohibited content. and Near-duplicate templates.

Language is a searchable list of 68 languages, defaulting to English. Regional variants are separate languages to Meta, so English and English (UK) are two different templates.

Authentication templates use a completely different form — if that is what you need, follow Create a one-time code template instead.

Add a header, if you want one

Header (optional) is a three-way choice: None, Text, or Image / video / doc (it reads Media on a narrow screen).

Text gives you a single line capped at 60 characters, with formatting buttons and the ability to insert a variable as a chip. A header variable needs an example value.

Do not format a text header. Meta’s own documentation says not to use markdown characters in a text header, so a bold or italic header may be rejected at review. The formatting buttons are there, but the risk is yours.

Image / video / doc gives you a dropzone. What it accepts:

FamilyFormatsLargest file
ImagesJPG or PNG5 MB
VideosMP4 or 3GP16 MB
DocumentsPDF, DOC, DOCX, XLS, XLSX, PPT, PPTX or TXT100 MB

A file of the wrong type is refused on the spot, in two sentences — what it is, then what to use instead. For example: WhatsApp doesn’t accept ZIP files as a template header. Pick a JPG or PNG image, an MP4 or 3GP video, or a PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX or TXT document. An empty file gets its own message: “<filename>” is empty (0 KB). Pick a file with content in it.

The preview on the right is what a recipient sees, with your example values filled in.

Write the body

Body is the message. Up to 1,024 characters, and you can format it with the four buttons above the field — Bold, Italic, Strikethrough and Monospace — which wrap your selection in WhatsApp’s own markers: * for bold, _ for italic, ~ for strikethrough and three backticks for monospace. The body is the one part WhatsApp is documented to format. There is an emoji picker too, and a live character count.

Meta has three rules about the body that are easy to trip over:

  • A variable cannot be the very first or the very last thing in the message.
  • The body cannot be only variables — there has to be wording around them.
  • No more than ten emoji, and never three line breaks in a row.

Put each person’s own details into the message

Press Insert field for the two ways to add a value that changes per person.

The first choice in the menu is Blank placeholder / Fill in at send time — a value you will type when you send a campaign. It appears as Placeholder 1 and opens straight away so you can type its example.

Everything below that is your database’s own fields, searchable through Search fields…. Pick one and a chip drops into the text showing the field’s real name, with its example value filled in for you.

Animation

A chip carries the field's real name — no numbered token to count or type.

Click any chip to open its settings: Linked field (which database field it reads, or Not linked) and Example value (placeholder e.g. John Doe). It says Enter to commit, or, while the example is still empty, Needs an example before you can submit.

Chip colour is the whole signal. Amber means the chip still has no example value; grey means it is fine. The test is the example, not whether the chip is linked to a field — a linked field whose sample came back empty is amber too.

A chip with a small @ in front of it reads from the database, so every recipient gets their own value. A chip without it is a literal that everyone receives identically.

Every variable needs an example value before you can submit. Meta’s reviewers read the example; your recipients never see it.

Footer (optional) is one line of up to 60 characters — e.g. Powered by Raion Hub. It has the same four formatting buttons, but Meta documents no footer formatting either way, so markdown here may simply not render.

Add buttons, if you want them

Buttons (optional) offers four tiles:

TileWhat it does
Quick replyA one-tap reply, like “Yes”
CallDials a phone number
Visit a linkOpens a website
Copy a codeCopies an offer code

Each button you add gets a label field (Button label) plus its own second field — a URL (https://raiontech.io), a phone number (+60123456789) or an offer code (e.g. SAVE20). A tile greys out once you hit its limit.

LimitValue
Quick reply buttons10
Visit a link buttons2
Call buttons1
Copy a code buttons1
Buttons in total10
Characters in a button label25
Characters in an offer code20

Only the first three buttons show in WhatsApp. Anything past three hides behind a See all options list on the recipient’s phone, so put the button you most want tapped first.

Check it, then submit it

Check before submitting runs a dry run against your draft. It never blocks you — it is advice.

  • A clean draft returns No advisories — this looks ready. Meta still reviews every new template.
  • Otherwise you get N advisories to review before submitting and a list, each row naming the thing and what to do about it.

Advisories never stop a submission — they are the problems Meta is likely to raise.

When you are happy, press Submit for review. The toast reads Template submitted for review. and the template appears in the list with an amber Pending review pill.

Wait for Meta

The list updates itself — you do not need to reload. When Meta answers, the pill flips to Approved or Rejected on its own.

An Approved template can back a campaign straight away. See Send a WhatsApp campaign, or use the Use in a campaign icon on the template’s own row.

If something goes wrong

What you seeWhyWhat to do
Submit for review is greyed outSomething in the draft is certain to be rejectedRead the issue count beside the button and fix what it names
Every variable needs an example value before you submit.At least one chip is amberClick each amber chip and fill Example value
Give the template a name. or Add your message body.A required field is still emptyFill it in and press again
The body can't be only variables. Add some wording around them.The message is nothing but chipsWrite words around them
Meta rejects more than two line breaks in a row. Remove the extra empty lines.Three or more blank lines somewhere in the bodyDelete the extra blank lines
Body has N emoji. Meta allows 10.Too many emoji in the bodyRemove some
Body is N characters. Meta allows 1024.The body is too longShorten it — the count above the field is live
Header is N characters. Meta allows 60.The text header is too longShorten it
Your header variable needs an example value.The header has a variable with no exampleClick the header chip and fill in its example
Upload a header image, video, or document.The header is set to media with no fileDrop a file on the dropzone, or set the header back to None
Add the offer code for your “Copy a code” button.A Copy a code button has a label but no codeFill in the offer code field on that row
Name can use lowercase letters, numbers and underscores only.The name holds something other than lowercase letters, numbers and underscoresClear the field and type the name again, letting the editor convert it
Meta did not accept this templateMeta refused the submission. Its own sentence sits beneath, naming the fieldFix what it names and submit again
Connect a WhatsApp account firstNo WhatsApp Business account is connectedClick Go to Integrations and connect one
Message Templates isn't in your planYour plan does not include the WhatsApp channelAn owner can click View plans; anyone else asks an owner to upgrade
No Message Templates accessYou have no template permission on any WhatsApp accountAsk a workspace owner or an admin to grant it

Next

Last updated on