Back to setup

Campaigns

Variables and buttons

Variables let one template carry different wording from one send to the next, sample content gets it through Meta's review, and buttons give people something to tap — the rest of the builder is covered in Create a template.

1

Variables are placeholders you fill in at send time

A variable is a placeholder like {{name}} that sits in the template body and gets its value when you build a campaign around it. Add Variable, above the message box, opens Select attribute, and whatever you pick drops in at your cursor: a Contact field such as name, phone or source, a Shopify order field when a store is connected, or any Custom attribute you keep on your contacts. What that choice does is name the placeholder rather than tie it to anyone's record — the campaign wizard later asks you for one value per placeholder, and that value is what every recipient of that send receives. So variables are how a single approved template covers many sends — this month's offer code, this week's city — rather than how each person gets their own name. Shopify fields are the exception: they aren't read off the contact either, but your Commerce automations fill them in per order, so they only make sense on templates those automations send. If the field you want doesn't exist yet, Go to contacts in the dialog takes you off to create it, and a media header carries its own Add Variable that appends a variable to the Media URL instead.
2

The six rules Meta enforces on variables

Meta reviews a template once and then re-uses that decision for every send, so the reviewer has to be able to read your body as a real message with the sample values dropped in — a body that is mostly placeholders, or one that opens on {{1}}, tells them nothing about what you will actually send. That is where these rules come from, and the builder applies them as you type rather than letting a rejection be how you find out: the structural ones appear in red under the message box, and the missing-sample one under Sample Content once a submit has been blocked. Save as draft ignores them all so you can leave a template half-finished, but Save and submit refuses to go through until every rule passes.
  • A variable can't be first — open with static text.
  • A variable can't be last — close with static text.
  • Two variables can't sit next to each other — put text between them.
  • Numbered variables like {{1}} must run in order from 1, with no gaps.
  • Most of the message must be static text, not placeholders.
  • Every variable needs a sample value.
3

Sample content is what Meta actually reviews

Every variable in the body adds a row under Sample Content, and those values are what the reviewer really reads — Meta judges the template on the message with your samples filled in, so a realistic value earns you a cleaner approval than a placeholder like "xxx". The same values drive the live preview beside the builder, and they don't have to be exact — a plausible name or order number is enough, up to 200 characters each. Empty sample fields only turn red once a submit has been blocked, so the builder doesn't nag you mid-edit.
4

Buttons and website click tracking

Buttons (Recommended) is on by default — the Enable buttons switch turns the whole section off — and you can add up to 10 buttons per template in any mix. Visit Website sends people to a link you set as Static or Dynamic, and it needs a valid URL before Save and submit will go through; Copy offer code puts a coupon on the recipient's clipboard in one tap, with its button text fixed by WhatsApp and only the code — up to 15 characters — yours to fill in; WA Voice Call lets them ring you inside WhatsApp; and Quick replies are tap-to-reply buttons that can carry an On click action — Start chatbot, Send message or Send template — which is what turns a broadcast into a conversation. Button text caps at 25 characters and no two buttons may share the same text. WA Voice Call and Copy offer code can each be added only once. Add a Visit Website button and Enable website click tracking appears below it — a PRO feature that tells you who clicked, at the cost that WhatsApp may show customers a branded link that redirects to your site; keep Default URL (Recommended), or set a Custom label of up to 16 characters — the custom label is one-time.