Early access — pilot stage · sample data / no live messaging yet · pilot enquiry form not yet connected to intake — nothing is sent

Guide · Templates

Get a message template approved — and into use.

Business-initiated WhatsApp messages must use a pre-approved template, so the template is where every campaign and journey actually begins. This guide covers writing one with clean variables, tracking its lifecycle from draft to approved, recovering from a rejection, and retiring templates that should no longer send.

Why templates gate everything

On the WhatsApp Business Platform, a business can reply freely inside a customer service window, but a message the business starts must match a template Meta has reviewed. ConvoTide follows that model exactly: the send API takes a template name, and campaigns and journeys pick from your template registry. A template is not paperwork — it is the unit of approval your whole outbound motion runs on.

Write for variables

Personalisation uses named variables in double braces, like {{order_id}}. The registry highlights every variable as you type and extracts the same names the backend will use at send time — the preview cannot quietly disagree with the send. Three habits prevent most rework:

  • Use descriptive names (order_id, delivery_date) — you will reuse them across templates.
  • Keep variable names unique per template; the platform refuses a duplicate template name outright rather than overwriting one.
  • Write the fallback sentence as if every variable were blank — because one day one will be.

The approval lifecycle

Every template in the registry has exactly three states, and the transitions are enforced by the server, not by politeness:

  1. Draft — editable, and not sendable. Drafts cannot be picked by campaigns or journeys, which is the point: nothing unreviewed goes out.
  2. Approved — usable. Once Meta has reviewed the template content for your business, the template can be selected by campaigns and journeys.
  3. Retired — terminal. A retired template cannot send again and cannot be un-retired; if you need the wording back, create a new template. History cannot be rewritten, which is what makes the audit trail trustworthy.

Attempting an illegal move (approving a retired template, retiring a draft that was never approved) returns an explicit refusal shown on the template’s own row — never a silent success.

When a template is rejected

A rejection is a loop, not a verdict. The workspace keeps a rejection history per template and pairs each row with a recovery suggestion — phrased as a suggestion, because that is what it is. You make the edit in the template studio and resubmit; the rejections surface deliberately has no “apply fix” button, because a suggested fix applied without a human reading the reason is how the same rejection happens twice.

Putting an approved template to work

  • In a campaign: the broadcast flow picks the template by name from approved templates only, then checks audience consent before enqueue. See the preflight guide.
  • In a journey: a send step names its template, and the consent check that precedes it is part of the journey’s contract, not an option.
  • From your own code: the documented send API accepts a template name with an idempotency key, so a retry never becomes a duplicate. Shapes are in the API documentation.

Limits worth knowing

Approval is Meta’s decision, on Meta’s clock. The platform prepares, tracks and recovers, but nobody can guarantee approval or an exact review time — and we will not claim either. Check Meta’s current template documentation for category rules and prohibited content before you draft; both are updated by Meta, not by us.

Content reviewed October 2026 · ConvoTide by Capricorncorp.