The Condition Expression Language describes the syntax used to define rules in the Condition Expression field of an Exclusive condition. The language is deterministic and case-insensitive, meaning that the same input always produces the same evaluation result regardless of capitalization.
Conditions are evaluated against process variables. Variables are always referenced with a leading ampersand (&).
Examples:
- &orderTotal
- &ticketPriority
- &customer_country
- &createdAt
Conditions can be combined using the following logical operators: and, or, not.
Examples:
- &isActive.IsTrue() and &hasAccess.IsTrue()
- not &isArchived.IsTrue()
Use parentheses to group expressions and control the order of evaluation.
Examples:
- (&a.IsTrue() or &b.IsTrue()) and &c.IsFalse()
- not (&status.EqualTo("Closed") or &status.EqualTo("Cancelled"))
Conditions can compare values using the following operators: <, <=, >, >=, ==, <>.
Supported value types:
- Strings: "High", 'Uruguay'
- Numbers: 10, 3.5
- Booleans: true, false
- Other variables: &minAmount
Examples:
- &orderTotal > 1000
- &status == "Open"
- &score >= &minimumScore
Most conditions are written using function calls applied directly to a variable. The general syntax is:
&variable.FunctionName(value?)
These functions evaluate the state or existence of a variable.
Supported functions:
- Exists()
- DoesNotExist()
- IsEmpty()
- IsNotEmpty()
- IsTrue()
- IsFalse()
Examples:
- &email.Exists()
- &attachments.IsNotEmpty()
- &optionalField.DoesNotExist()
These functions compare a variable with a specified value.
Examples:
- &orderTotal.GreaterThan(1000)
- &orderTotal.GreaterThanOrEqualTo(500)
- &age.LessThan(18)
- &country.EqualTo("Uruguay")
- &status.NotEqualTo("Closed")
- &tags.Contains("vip")
- &email.EndsWith("@company.com")
- &name.StartsWith("Jo")
- &description.MatchesRegex("^ERR-.*")
- &createdAt.IsAfter("2024-01-01")
- &expiresAt.IsOnOrBefore("2024-12-31")
You can combine logical operators, comparisons, function calls, and grouped expressions.
Examples:
- &priority.EqualTo("High")
- &priority.EqualTo("High") and &attachments.IsNotEmpty()
- (&orderTotal.GreaterThan(1000) AND &country.EqualTo("Uruguay")) OR (&priority.EqualTo("High") AND not &attachments.IsEmpty())
- The language does not rely on runtime AI interpretation.
- Whitespace formatting does not affect evaluation behavior.
- Conditions can combine direct comparisons and function-based evaluations within the same expression.