Skip to content

WABA templates

Create, sync, and submit WhatsApp Cloud API (Meta) message templates.

8 min read

Open Channel → WABA → Templates.

What this page is for

Meta Cloud API message templates — language, category, header/body/footer/buttons, and Meta approval status.

Only approved templates can start business-initiated conversations outside WhatsApp’s customer service window. Kirisan creates and updates templates on Meta for you; Meta status in the list reflects their review outcome.

Pick a WABA device at the top — templates load and sync for that WhatsApp Business number.

WABA Templates — device picker, search, status filter, and template table

Sample data shown.

Search and filter

Search is field-based — click the search area first, pick which column to search, then type your query.

StepWhat happens
1. Click searchA Search in popup opens — you must choose a field before typing
2. Pick a fieldName, Body, Category, or Language
3. TypeKirisan filters the table as you type (short debounce)

After you pick a field, the search bar shows the field name on the left (for example Name ▼). Click it to switch fields — changing the field clears the query.

Search fieldMatchesMinimum length
NameTemplate name that contains your query3 characters
BodyBody text that contains your query3 characters
CategoryMarketing, Utility, or Authentication that contains your query3 characters
LanguageLocale code (for example en_US) or its label that contains your query3 characters

If you type fewer than three characters, Kirisan waits until the minimum is met and shows a short hint under the search bar.

On the same row as search (to the right):

  • Meta statusAll statuses, Pending, Approved, or Rejected

Click Sync anytime to pull the latest statuses and quality scores from Meta. If you do not see a template, pick the correct device, click Sync, then search again.

Pagination below the table appears when results span more than one page (25 rows per page).

Template list

WABA Templates table — name, language, category, body preview, Meta status, and actions

ColumnMeaning
NameTemplate id on Meta (lowercase letters, numbers, underscores — fixed after create)
LanguageLocale code (for example en_US)
CategoryMarketing, Utility, or Authentication
BodyTruncated body text preview
Meta statusPENDING, APPROVED, REJECTED, and other Meta states
QualityMeta quality rating when available (High, Medium, Low)
ActionsEdit or view (read-only while pending), delete

Rejected rows may show Meta’s reason under the status badge.

Create a template

  1. Select a WABA device, then click New Template.
  2. Set Name, Language, and Category (Meta rules apply — utility for transactional updates, marketing for promotions, authentication for OTP-style messages).
  3. Optionally add a Header (none, text, image, video, or document), required Body, optional Footer, and up to three Buttons (quick reply, URL, or call).
  4. Add {{variables}} in header text, body, or URL buttons if needed. Fill sample values for each logical variable — Meta requires examples at submission time.
  5. Check the Live Preview on the right.
  6. Click Submit to Meta. Status becomes PENDING until Meta approves or rejects.

Edit a template

Open a row with the edit (pen) icon when Meta allows changes — typically Approved, Rejected, or Paused templates.

  • Pending or In appeal templates open read-only until Meta finishes review.
  • Saving sends an update to Meta and usually sets status back to PENDING for re-review.
  • Name and Language cannot be changed after the first create (Meta limitation).
PartNotes
Header — TextOptional. At most one variable. WhatsApp formatting: *bold*, _italic_, ~strike~, `code`
Header — Image / Video / DocumentPublic HTTPS sample URL — Kirisan uploads it to Meta for review and reuses it when sending
BodyRequired. Up to 1024 characters. Same formatting as header text
FooterOptional plain text — no variables
ButtonsUp to 3. URL buttons may include one variable (typically at the end of the link)

Variables and sample values

WABA templates use Meta named parameters only in the message: {{name}}, {{dayofweek}}, {{sender}}, and so on.

Do not put Kirisan server tokens ([[dow]], [[date-…]], [[u-…]]) in the header, body, footer, or button text. Meta reviews the template copy you submit; only {{variables}} belong there.

Use Add variable / Insert, or type {{name}} in the body, text header, or URL button.

WhereWhat you can use
Template text (body, header, URL path){{variables}} only
Sample values (Variables panel)Plain text or [[dow]], [[date-dd-mm-yyyy]], [[u-support_phone]], …

WABA template editor — body, strip warning, Variables panel with sample values

Auto-strip and warning

If you type or paste [[dow]], [[date-…]], or [[u-…]] into template text (body, header, footer, or buttons), Kirisan:

  1. Removes the token immediately — it cannot stay in the message
  2. Shows an amber warning under the body
  3. Shows a toast once per edit session

The helper line under the body reminds you: use {{dayofweek}} (or another variable name) in the message, and put [[dow]] in that variable’s sample value instead.

On submit, Kirisan also rejects any remaining [[…]] in template text on the server as a safety net.

Sample values and Meta review

Meta requires a literal example for every {{variable}} in the submitted text. In the Variables panel you can type either:

  • Fixed text — for example Alex for {{name}}
  • Server tokens — for example [[dow]] for {{dayofweek}}

Kirisan resolves [[…]] to real text before sending the template to Meta. Meta never sees [[dow]] — it sees Sunday (or the current weekday when you submit). Your stored sample can keep [[dow]] so the next edit still auto-updates; only the Meta payload uses the resolved literal.

Example — order update

Template body (what Meta approves):

Hi {{name}}, your order {{order_id}} is confirmed.

Expected delivery: {{dayofweek}}.
VariableSample you enterSent to Meta as example
nameAlexAlex
order_idORD-1024ORD-1024
dayofweek[[dow]]Sunday (resolved at submit time)

If you paste Expected delivery: [[dow]] into the body, Kirisan strips [[dow]] and prompts you to use {{dayofweek}} with sample [[dow]] instead.

At send time, Send → Send and the Send API can pass a different value for each recipient and each {{variable}}.

Reusing the same variable name

Meta does not allow the same {{param}} name to appear more than once in a component (for example twice in the body). Kirisan handles this automatically:

  • You can type the same variable multiple times while editing.
  • As you type, Kirisan rewrites duplicates in real time:
    • 1st occurrence → {{sender}}
    • 2nd → {{sender_1}}
    • 3rd → {{sender_2}}
    • and so on
  • The Variables panel still shows one row per logical name (sender) with one sample value.
  • On submit, Meta receives unique param names; every suffix uses the same sample and the same value at send time.

Example — what you type:

This is a message from {{sender}}. We will check whether {{sender}} is registered on our contact list. Meanwhile, {{sender}} should wait until further notification.

What Kirisan stores and sends to Meta:

This is a message from {{sender}}. We will check whether {{sender_1}} is registered on our contact list. Meanwhile, {{sender_2}} should wait until further notification.

Variables panel: one field — sender — with a single sample (for example a phone number or display name).

Do not add separate sample rows for sender_1 or sender_2; Kirisan maps them from sender automatically.

Variable naming rules

  • Lowercase letters, numbers, and underscores only (for example order_id, not Order-ID).
  • Names are normalized to lowercase when saved.
  • Header text and URL buttons: at most one logical variable each (duplicates of the same name still auto-suffix if you paste them).

Delete a template

Use the delete (trash) icon on a row. Kirisan asks for confirmation, then removes the template from Meta and your Kirisan cache.

Use approved templates

After APPROVED (or REINSTATED):

  1. Open Send → Send, pick the WABA channel and device, and choose the template from the dropdown.
  2. Fill recipient fields and any {{variables}} for that send.
  3. Or reference the template from campaigns, schedules, autoreply (WABA channel), and the Send API.

If Meta rejects a template, read the reason on the list row, edit the content, and save to resubmit.

  • Devices — connect Cloud API numbers with Connect with Meta
  • WABA overview — inbox and channel context
  • Message variables[[date-…]], [[u-…]], and incoming {{sender}} shortcuts
  • API send — deliver approved templates programmatically
Last updated: June 21, 2026
Was this page helpful?