Overview
Variables let you capture, store, and reuse data during a conversation. Use them to personalize messages, make decisions based on user input, and pass data between nodes.Types of Variables
System Variables
Pre-loaded automatically in every session. You don’t need to declare them.User Variables
Variables you create in the flow editor to store custom data. Each variable has a name (used in templates) and a unique ID (used internally).Template Syntax {{variableName}}
Use double curly braces to reference variables in text fields — message bodies, API URLs, headers, conditions, etc.
Primitive Values
Variables that hold strings, numbers, or booleans are replaced directly:Object Values
When a variable holds an object, the result is its JSON representation:Accessing Object Properties
Use dot notation to access nested properties:
Deep nesting works at any level:
Array Access
When a variable is an array, it returns the JSON array:
When accessing a property on an array, it maps and extracts that property from each item:
System Variables in Templates
System variables use thesystem. prefix:
Multiple Variables
You can use multiple variables in the same string:Variable Not Found
When a variable doesn’t exist, isnull, or is undefined, the original template is kept:
Chained Variables
If a variable’s value contains another variable reference, it is resolved recursively:Common Patterns
Capture User Input
After a wait node (Button, List, Message Menu), the user’s response is insystem.last_message.text. Use a Set Variable node to persist it:
Parse API Responses
After an API Request node, use an Object Parser node to extract fields fromsystem.request.body:
Interpolate in Messages
Reference any variable in a Message node:Naming Rules
- Use camelCase:
userName,orderTotal,cpfNumber - No spaces or special characters — only letters, numbers, and underscores
- Names are case-sensitive:
userName≠username - Never use the
system.prefix for user variables