Advanced expression editor syntax syntax

Parentheses and expression priority parentheses-and-expression-priority

Parentheses can be used to make a complex expression more readable. (<expression>) is the equivalent of <expression>. Parenthesis can also be used to define the evaluation order and associativity.

The expressions will be evaluated from left to right. The associativity on arithmetic operators must be applied: multiplications and divisions take priority over additions and subtractions. In order to impose a specific order, parenthesis must be added to delimit the operations. For example:

4 + 2 * 10
  • ‘*’ takes priority over ‘+’: 2 * 10 is evaluated → 20
  • 4 + 20 → 24
(4 + 2) * 10
  • The parentheses change the priority: (4 + 2) is evaluated → 6
  • 6 * 10 → 60

Case sensitivity case-sensitivity

Here are the different case sensitivity rules:

  • All operators (and, or, etc.) should be written lowercase. For instance, <expression1> and <expression2> is a valid expression whereas the expression <expression1> AND <expression2> is not.
  • All function names are case sensitive. For instance, inAudience() is valid whereas the function INAUDIENCE() is not.
  • Field references and constant values are case sensitive: they are not built-in elements of the language (as opposed to operators and functions), they are authored by the end user.

Returned expression type returned-expression-type

Depending on the context of use, the expression editor can return different values.

Advanced expression editor usage
Expected returned expression type
Condition (data source condition, date condition)
Custom timer
Action parameters mapping