FlowsEditor

Variables

Dynamic values for personalizing flow messages and passing data between cards

Variables in a text card

Variables let you insert dynamic content into flow cards, personalize messages, and pass data between nodes in your flow.

Syntax

Use double curly braces to reference variables:

Hello {{user.firstName}}, welcome to our support!

Variables follow a namespace.field pattern.

Variable Namespaces

The execution engine uses 6 separate namespaces:

NamespacePurposeScopeExample
user.*Contact profile dataSession{{user.firstName}}, {{user.email}}
chat.*Current conversation contextSession{{chat.firstName}}, {{chat.integrationId}}
organisation.*Organisation dataGlobal{{organisation.name}}
system.*Date, time, localeGlobal{{system.currentDate}}, {{system.timezone}}
lastMessage.*Last message dataSession{{lastMessage.text}}
flow.*Card output resultsFlow{{flow.cardId}}, {{flow.cardId.fieldName}}

Contact Variables (user.*)

Core fields from the People entity, plus all custom fields defined in your workspace:

VariableTypeDescription
{{user.id}}stringContact ID
{{user.whatsappId}}stringWhatsApp user ID
{{user.telegramId}}numberTelegram user ID
{{user.username}}stringChannel-specific username
{{user.firstName}}stringFirst name
{{user.lastName}}stringLast name
{{user.language}}stringLanguage code

Any custom field defined in Settings → People Fields is also available as {{user.fieldKey}} (e.g. {{user.email}}, {{user.phone}}, {{user.company}}). The input type adapts to the field definition (string, number, boolean, date, etc.).

Chat Variables (chat.*)

VariableTypeDescription
{{chat.id}}stringChat document ID
{{chat.chatId}}stringChat ID (same as id)
{{chat.integrationId}}stringIntegration ID for this chat
{{chat.firstName}}stringChat first name
{{chat.lastName}}stringChat last name
{{chat.username}}stringChat username
{{chat.title}}stringChat title
{{chat.unreadCount}}numberUnread message count

Organisation Variables (organisation.*)

VariableTypeDescription
{{organisation.id}}stringOrganisation ID
{{organisation.name}}stringOrganisation name
{{organisation.website}}stringWebsite URL
{{organisation.phone}}stringPhone number
{{organisation.email}}stringEmail address
{{organisation.description}}stringDescription

System Variables (system.*)

Automatically computed at flow start:

VariableTypeExampleDescription
{{system.currentDate}}date2025-11-26Current date (YYYY-MM-DD)
{{system.currentTime}}string15:27:07Current time (HH:MM:SS)
{{system.currentDateTime}}date2025-11-26T13:27:07.831ZISO timestamp
{{system.timestamp}}number1732627627831Millisecond timestamp
{{system.unixTimestamp}}number1732627627Unix timestamp (seconds)
{{system.currentYear}}number2025Year
{{system.currentMonth}}number11Month (1–12)
{{system.currentDay}}number26Day of month
{{system.currentHour}}number15Hour (0–23)
{{system.currentMinute}}number27Minute
{{system.currentSecond}}number7Second
{{system.timezone}}stringEurope/AthensServer timezone
{{system.weekday}}stringWednesdayDay name (English)
{{system.monthName}}stringNovemberMonth name (English)
{{system.isoWeek}}number48ISO week number
{{system.quarterYear}}number4Quarter (1–4)

Last Message Variables (lastMessage.*)

VariableTypeDescription
{{lastMessage.text}}stringText of the last message
{{lastMessage.deliveryStatus}}stringDelivery status

Flow Variables (flow.*)

When an interactive card executes, its result is stored under the flow namespace using the card's ID:

{{flow.674000000000000001}}                → user response from that card
{{flow.674000000000000001.variableName}}   → named field (fetch card response mapping)

Which cards create flow variables

Card TypeVariableDescription
Questionflow.{cardId}The user's text reply
Button (and variants)flow.{cardId}The selected button label/value
AI Agentflow.{cardId}Agent conversation result
HTTP Requestflow.{cardId}.{variableName}Each response mapping field creates its own variable

For HTTP Request cards, variables are created from the Response Mapping configuration — each mapping entry (variableName + jsonPath) creates a separate flow.{cardId}.{variableName}.

Variable availability

Flow variables only become available after the card has executed. The engine tracks the execution path from the trigger to the current card and only exposes variables from cards that are reachable before the current card in the execution path.

Variable Editor

When editing a card's text content, the editor provides:

  • Autocomplete — Type {{ to see available variables from all namespaces.
  • Validation — Invalid variable references are highlighted.

Variable Scope

  • Global variables (organisation.*, system.*) are loaded at flow start and available everywhere.
  • Session variables (user.*, chat.*, lastMessage.*) are loaded from the current conversation context.
  • Flow variables (flow.*) are created during execution and persist for the remainder of the flow run.

On this page