custom
Free text with variables, header and buttons. It is the most used model and the only fully open one: nothing here is written by Meta, and no field depends on a catalog, a payment or a flow.
Nine ideas to start from
Drag the strip sideways. These nine are starting points, not a catalog: they are all the same
custom, and what changes is which components go in. You combine whichever you want — a header in any format, or none; a footer, or none; up to ten buttons, or none.1. Promotion with an image
1. Promotion with an image
example. Bold is WhatsApp’s *asterisk*, and the paragraphs are \n — only the message accepts line breaks. At send time, a media header requires the image parameter: the one at creation is just the sample Meta reviews.2. Cart recovery
2. Cart recovery
3. Welcome with a video
3. Welcome with a video
4. Appointment reminder
4. Appointment reminder
2388299.5. Billing with a PDF
5. Billing with a PDF
6. Store pickup, with a map
6. Store pickup, with a map
8. Satisfaction survey
8. Satisfaction survey
9. Order confirmation
9. Order confirmation
It is this page’s full payload: text header with a variable, message, footer and the three free button types. It sits complete in the creation JSON, with the send JSON next to it.
How it works
You write the text once, mark what changes per customer as a variable, and Meta approves the mold. At send time, each variable gets the value for that dispatch. It is the model for everything that isn’t commerce, authentication or a promotion with its own structure: order confirmation, status update, billing, appointment reminder, re-engagement.At creation and at send time
Fields in this model
Full JSON
Two JSON payloads: one creates the template, and Meta approves it once. The other sends the message, and goes on every dispatch, with that send’s values in the variables marked with braces.1. Create the template
POST /whatsapp/businesses/{wabaId}/templates — see API reference.
2. Send it once approved
POST /v1/channels/{channelId}/messages — see Send template.
What Meta rejects here
- A variable opening or closing the header or message text.
- A variable without an example.
- Short text with too many variables.
- A quick reply in the middle of the other buttons.
- A button address without
httporhttps, and a phone without the country code.