Skip to main content

Overview

A validation rule is a condition on a record. When it evaluates to false, Twenty rejects the record and shows the rule’s message.
Validation rules are only enforced in workspaces where the feature is available.
Define a rule with defineValidationRule from twenty-sdk/define:
You can also scaffold one with the CLI:

Writing expressions

ruleExpression provides:
  • field('name') reads a field, and field('company.employees') reads a field through a many-to-one relation.
  • now is the current date and time.
  • and, or and not combine conditions.
  • eq, notEq, gt, gte, lt and lte compare values.
  • add, subtract, multiply and divide compute values.
  • isIn(field('stage'), ['NEW', 'WON']) checks a value against a list.
  • Functions such as isNonEmptyString and isDefined.
The builder outputs a plain string, which is what twenty app pull writes back. You can write that string directly:
Strings use and, or, not, ==, !=, <, <=, >, >=, +, -, *, / and in [...], not && or ||. Text goes in single or double quotes. A rule can read fields you declare, and the system fields Twenty provisions, such as createdAt. The CLI checks expressions against your app’s own objects. On an object outside your app, it only checks the syntax and the server checks the fields at sync time.

Fields that become unavailable

A sync keeps an existing rule’s isActive, so a rule a workspace admin turned off stays off. Only new rules start on.