Skip to content

Message variables

Built-in, custom, and inbound placeholders for templates and sends.

5 min read

Open Resources → Variables.

What this page is for

Variables is the reference for every placeholder Kirisan can substitute at send time — server-resolved time tokens, account-wide custom constants, and incoming shortcuts derived from inbound messages.

Use this page when writing templates, autoreply responses, Flow text, spreadsheet cells, or webhook payloads. Copy tokens directly from the dashboard — each row has a copy button.

Variables — Time tab with date, time, and submission tokens

Sample data shown.

The page has three tabs:

TabSyntaxPurpose
Time[[date-…]], [[time-…]], [[dow]], [[review]], …Server-resolved date, time, and submission tokens
Custom[[u-name]]Your account-wide key–value placeholders (manage the list here)
Incoming{{message}}, {{sender}}, {{name}}, …Inbound envelope shortcuts for autoreply, Flow, and webhooks

Time tab

The Time tab lists every built-in [[…]] token Kirisan resolves on the server when a message is sent.

GroupTokensWhen to use
Submissions[[review]]Numbered summary of a respondent’s answers — only inside a Submission review message
Date & time[[date-dd-mm-yyyy]], [[time-hh:mm]], [[dow]], [[tod]], …Greeting lines, timestamps, day-of-week logic

How time tokens work

  • Token matching is case-insensitive[[DATE-DD-MM-YYYY]] works the same as [[date-dd-mm-yyyy]].
  • Unknown names are left untouched — [[foo]] is sent as-is.
  • Inside date- / time- prefixes, any character that is not a format token (space, slash, colon, comma, etc.) is copied verbatim.
  • [[…]] time tokens never collide with per-recipient {{name}} merge fields from Send → Send or the Send API.

The dashboard shows a live example next to each token (refreshed every second). Scroll down for the Date & time format tokens reference table and a full Example message block.

Common patterns:

TokenExample output
[[date-dd-mm-yyyy]]25-06-2026
[[date-mmmm dd, yyyy]]june 25, 2026
[[time-hh:mm]]14:30
[[dow]]Thursday
[[tod]]afternoon (15–17)

Custom variables

Switch to the Custom tab to define account-wide constants as [[u-<name>]] tokens.

Variables — Custom tab with placeholder list

Sample data shown.

ControlWhat it does
Add variableCreate a new name + value pair
SearchFilter by name or value
Placeholder (violet chip)Click to copy [[u-…]]
Active toggleOnly active variables are substituted; inactive ones stay literal in the message
Edit / DeleteUpdate or remove a row

Naming rules

  • Name: letters, numbers, _ and -, max 50 characters (stored lowercase).
  • Each name becomes [[u-<name>]] — for example support_phone[[u-support_phone]].

Example

NameValue
support_phone+62 812-0000-0000
promo_urlhttps://example.com/june

In a template or autoreply message:

Questions? WhatsApp us at [[u-support_phone]] or visit [[u-promo_url]]

Update the value on the Custom tab once — every message that references the token uses the new value on the next send.

Custom tokens use the [[u-…]] prefix so they never collide with built-in [[date-…]] tokens or per-recipient {{name}} fields from sends.


Incoming tab

The Incoming tab documents {{…}} shortcuts derived from Kirisan’s unified incoming_message JSON envelope — the same shape used by autoreply, Flow, Webhooks, and webhook test.

Variables — Incoming tab with mustache tokens

Sample data shown.

Sub-tabs:

Sub-tabContents
Overview{{message}}, {{sender}}, {{name}}; Flow top-level keys; HTTP webhook extras
WhatsAppFull WhatsApp field reference
TelegramFull Telegram Bot API field reference

Mustache shortcuts (all channels)

TokenMeaning
{{message}}Primary user-visible line — body text, caption, or callback data
{{sender}}Reply target id — WhatsApp peer or Telegram chat id
{{name}}Display name after normalization

In Flow, every top-level envelope key ({{event}}, {{device}}, {{channel}}, …) is also available. Nested objects stringify as JSON unless overridden by the friendly names above.

For the full outbound webhook JSON shape, see Incoming message payload and Webhooks → Test.


Where placeholders work

  • WhatsApp, WABA, and Telegram templates
  • Email templates
  • Autoreply, Flow, and spreadsheet responses
  • Campaign and scheduled sends (same substitution pipeline)

WABA templates use Meta {{named}} parameters in the message text only. If you type [[dow]] in the body, Kirisan strips it and shows a warning — put [[dow]], [[date-…]], or [[u-…]] in sample values instead; Kirisan resolves them to literal text before Meta review. See WABA templates → Variables and sample values.

Per-recipient {{variables}} from Send → Send or the Send API still override template defaults for that recipient — use custom [[u-…]] tokens when you need the same constant everywhere.


  • Files — hosted media for templates and autoreply attachments
  • Webhooks — configure endpoints in the dashboard
  • Webhook payloads — JSON delivered to your HTTPS URL
  • Send → Send — per-recipient merge fields alongside templates
Last updated: June 25, 2026
Was this page helpful?