Automation
Variables & Logic
Variables let you personalise messages for each customer individually. Condition nodes let you route the flow differently based on customer data or their replies.
Available Variables
Use variables inside message text with the syntax {{variable_name}}:
Contact Data
| Variable | Value |
|---|---|
{{contact.name}} | Customer's full name |
{{contact.first_name}} | First name only |
{{contact.phone}} | Phone number |
{{contact.email}} | Email address (if stored) |
{{contact.company}} | Company name (if stored) |
Conversation Data
| Variable | Value |
|---|---|
{{chat.id}} | Conversation ID |
{{agent.name}} | Name of the assigned agent |
Date & Time
| Variable | Value |
|---|---|
{{date}} | Current date |
{{time}} | Current time |
{{day}} | Current day (Monday, Tuesdayβ¦) |
Practical Example
Text inside the message node:
Hi {{contact.first_name}}! π
Thanks for reaching out to our team.
Your agent today will be {{agent.name}}.
What the customer sees:
Hi Ahmed! π
Thanks for reaching out to our team.
Your agent today will be Sara.
Condition Node
A condition node splits the flow into two paths based on a rule.
How to Add a Condition
- Drag a Condition node onto the canvas
- Click it to define the rule
- Choose the variable to check
- Choose the operator (equals / contains / greater than / etc.)
- Enter the comparison value
- Connect the Yes path and the No path to different steps
Condition Examples
| Condition | Description |
|---|---|
contact.tags contains VIP | Customer is in the VIP segment |
contact.name is empty | No name saved for the customer |
Customer reply equals 1 | Customer selected option 1 |
contact.company contains Corp | Business customer |
Multiple Conditions (AND / OR)
You can add more than one condition to a single node:
- AND: all conditions must be true
- OR: any one condition is sufficient
Example:
- Condition:
contact.tagscontainsVIPANDcontact.countryequalsUAE - Result: sends a special offer only to VIP customers in the UAE
Wait for Reply Node
Pauses the flow until the customer sends a response, then branches based on what they said:
- Add a Wait for Reply node
- Set a timeout (e.g. 24 hours)
- Connect the Reply received path and the Timeout path to different steps
Practical Tips
- If a customer's name might be missing, add a condition node before the message: check
contact.nameis not empty before sending the personalised version - Always test the flow before going live by sending a test message to yourself
- Start with one condition and add more gradually β don't over-engineer early