Expressions
6 min read
Updated on: 15/01/2026
Quick setup checklist
Use this checklist to apply expression syntax correctly in messages, rules, and action fields.
When you type @( in a message, rule, or action field, an autocomplete panel appears with available functions and examples.
[CAPTURE: Show the expression autocomplete dialog triggered after typing @( in a message or action field.]
All expressions follow the same structure:
- Start with
@ - Are enclosed in parentheses
( ... )
Example:
@(now())
Simple syntax is used to insert single values directly into text, such as the contact name or values collected earlier in the flow.
Example message:
Hi @contact, you entered @results.age for age. Is this correct?
@contactinserts the contact’s name@results.ageinserts a value collected earlier in the flow
[CAPTURE: Show a message node with simple expressions referencing contact and result values.]
Expressions can call functions to transform values.
Example:
Hello @(upper(contact.first_name))
- Retrieves the contact’s first name
- Converts it to uppercase
upper, UPPER, and Upper behave the same).
You can build more complex expressions, similar to spreadsheet formulas.
Example:
Hi, you are @(format_date(now(), "YYYY") - results.year_born) years old
Arithmetic operators supported:
- Addition:
+ - Subtraction:
- - Multiplication:
* - Division:
/ - Exponent:
^
[CAPTURE: Show a message node using an advanced expression with a date function and arithmetic.]
Use the concatenation operator & to join text values.
Example:
Hello @("contact.first_name" & " " & "contact.last_name")
" ").
[CAPTURE: Show a message preview displaying concatenated contact fields.]
Common Issues
I get an error because the expression won’t evaluate
Cause: A missing closing parenthesis ), or the expression is not fully wrapped in @( ... ).
Fix: Confirm the expression starts with @, includes (, and ends with a matching ).
The function I typed doesn’t work
Cause: The function is not supported by the platform (even if it exists in Excel).
Fix: Use the autocomplete panel after typing @( to select supported functions and confirm expected parameters.
@results or @contact values are blank
Cause: The value has not been collected yet (for @results) or the contact field is empty.
Fix: Ensure the contact reaches the question/action that sets the result before referencing it, and confirm the contact field is populated.
My text comparison or string value breaks the expression
Cause: Missing quotation marks around string values that contain letters or multiple words.
Fix: Wrap text in quotes, for example: city = "san francisco".
