Basic Syntax

Most expressions must be wrapped in:

(( ... ))

This tells the system to evaluate the content as an expression instead of plain text.


Variables and Property Access

  • # is used to reference objects or variables
  • Properties are accessed using dot notation

Example:

#item.title
  • #item → object (folder, file, or form that the expression was triggered against)
  • title → property of that object

Always Available Data

The following objects are always available regardless of context:

  • #user — the user responsible for the action
  • #company — the associated company
  • #item - the folder, file, or form that the called event/workflow was triggered on. 

These values are dynamic and change depending on how the action was triggered 


Helper / Utility Functions

Utility helpers provide functions for working with data.

ExpressionUtil (#expr)

General-purpose helper functions for:

  • Searching (e.g., Solr queries)
  • Finding items (e.g., by path)
  • User/group lookups
  • Converting or transforming values

ListUtil (#list)

Used for working with collections (lists of objects).

Example:

#list.explodeProperty(#folder.items, 'title')

Returns a list of titles from all items in a folder.


MapUtil (#map)

Used for working with key-value structures.

Less commonly used, but useful when dealing with structured or nested data such as attributes.


Contextual Data

Available data depends on where the expression is used.

Workflows / Tasks

Typically includes:

  • task
  • item
  • option
  • collection-related data

Events

Varies by trigger, such as:

  • file, folder, or item data
  • user or system context

Forms

Used in question rules for:

  • visibility conditions
  • default values
  • validation logic

Dynamic Data Access

Expressions can also query data dynamically using helper functions:

  • Search datasets
  • Retrieve items or tasks
  • Inject results into logic or fields

This allows expressions to go beyond the immediate context.



See Examples here: