Search documentation

Search docs pages by title or description

Join the waitlist
Browse documentation

Expressions

Expressions are the small formula language that powers filters, visibility rules, workflow conditions, and computed values. If you've written a spreadsheet formula, you already know the shape.

References

  • [Column] — a column of the current row: [Status] = "Open".
  • [Reference].[Column] — follow a reference field to its table, up to two hops: [Customer].[Country] = "DE".
  • RECORD[Column] and RECORDID() — the record page's current record, used in record filters: show orders where [Customer] = RECORDID().
  • USEREMAIL() and USERROLE() — the signed-in viewer, the key to "my items" filters: [Owner] = USEREMAIL().

Functions

Logic

IF, AND, OR, NOT, IN, CONTAINS, ISBLANK

Text & dates

CONCATENATE (or the & operator), TEXT, TODAY, NOW

Lookups & aggregates

LOOKUP fetches a value across a reference; COUNT and SUM roll up a child table — a table that references the current one — so a Projects row can count its Tasks.

Context

USEREMAIL, USERROLE, RECORDID, and SELECT (notification audiences — see Notifications).

Operators and literals

Comparisons = <> < <= > >=, arithmetic + - * /, text joining &. Text is double-quoted, dates are "YYYY-MM-DD", booleans are TRUE/FALSE.

IF(AND([Status] = "Open", [Due date] < TODAY()), "Overdue", "On track")

[Owner] = USEREMAIL()

COUNT([Tasks]) > 10

Where expressions run

  • Row filters on blocks and roles — which rows a viewer sees.
  • Visible if on views, blocks, fields, and actions.
  • Record filters on record pages (RECORD[…] context).
  • Workflow trigger conditions and per-step run conditions.
  • Value expressions in set-value and add-row actions and workflow steps.

The expression assistant

Describe what you want in plain language and the AI assistant writes the expression — with a role picker so you can preview how the formula behaves for any user.