All expressions begin with an "@" symbol and an open parenthesis, e.g. '@(HOUR(NOW()))' or '@(SUM(contact.<field>, 1))'. Once entered, "@(" will trigger a completion dialogue that lists and explains each function:
This is used to embed single values, e.g.
Hi @contact, you entered @flow.age for age. Is this correct?
An expression can also be a function call, e.g.
Function names are not case-sensitive so UPPER is equivalent to upper. We support a subset of the functions available in Excel and these are listed below.
This is used to build more complex expressions using similar syntax to Excel formulae, e.g.
Hi @(PROPER(contact)), you are @(YEAR(NOW()) - flow.year_born) years old. Is this correct?
Expressions can also include arithmetic with the add (+), subtract (-), multiply (*), divide (/) and exponent (^) operators, e.g.
Result is @(1 + (2 - 3) * 4 / 5 ^ 6) units
Note that the expression is enclosed in parentheses to tell us where it ends.
You can also join strings with the concatenate (join) operator (&), e.g.
Hello @(contact.first_name & " " & contact.last_name)