Dynamic Logic Expressions

Edited

Dynamic logic expressions let you define how custom properties behave — for example, setting default values, applying conditions, or calculating results automatically based on other fields.

Supported Syntax

Expressions use a simple, Excel-style syntax.

Element

Description

Example

Literals

Numbers, strings, booleans, NULL

123, "High", TRUE, NULL

Field references

Reference any field using square brackets

[Priority], [Cost.Center]

Operators

Arithmetic and comparison

+, -, *, /, %, <, <=, >, >=, =, <>, AND, OR, NOT

Functions

Built-in logic helpers

IF, CASE, COALESCE

Whitespace is ignored and field names are not case-sensitive.


Common Functions

IF

Returns one of two values depending on a condition.
Syntax:

IF(condition, trueValue, falseValue)

Example:

IF([Score] > 80, "High", "Normal")

CASE

Simplifies multiple conditional branches (use instead of nested IFs).
Syntax:

CASE(cond1, value1, cond2, value2, ..., defaultValue)

Example:

CASE(
 [Score] >= 90, "A",
 [Score] >= 75, "B",
 [Score] >= 60, "C",
 "D"
)

COALESCE

Returns the first non-NULL value from the list provided.

Syntax:

COALESCE(value1, value2, value3, ...)


Example:

COALESCE([OverrideLabel], [DefaultLabel], "(none)")


Other Rules

  • [FieldName] must be enclosed in square brackets.

  • String comparisons are not case-sensitive.

  • + joins strings or adds numbers.

  • NULL represents a missing value.

  • FALSE values: FALSE, 0, "", NULL.

  • Non-zero numbers and non-empty strings evaluate as TRUE.


Example Expressions

Use Case

Expression

Rank logic

CASE(

[Severity] = "Critical" AND [Status] <> "Closed", "P1",

[Severity] = "High", "P2",

[Severity] = "Medium", "P3",

"P4")

Automatic flag

IF([Budget] > 0 AND ([Phase] = "Build" OR [Phase] = "Test"), TRUE, FALSE)

Fallback label

COALESCE([ShortName], [DisplayName], "Unnamed")

Concatenate text

"RAG=" + [RAG] + ", Score=" + [Score]


Validation Checklist

  1. Parentheses are balanced.

  2. IF has exactly three arguments.

  3. CASE has an odd number of arguments (last one is default).

  4. Field names are wrapped in [ ].

  5. Strings use quotes ("text" or 'text').


Common Errors

Error Message

Likely Cause

Expression cannot be empty

No content in the expression field

CASE requires at least three arguments

Missing default value

Expected identifier

Misspelt function or missing comma

Division by zero

Numeric denominator is 0

Maximum expression depth exceeded

Too many nested IFs (use CASE instead)


Tips

  • Use uppercase for functions (IF, CASE, COALESCE).

  • Indent multi-line expressions for readability.

  • Order comparisons from highest to lowest thresholds.

  • Prefer CASE for complex multi-condition logic.

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.