Compare values
Examples, as you’d fill them into the builder:
$record.statusequalsdraft$input.quantityis at least1$record.publish_atis at most$now$input.statusis one ofdraft, submitted$auth.user_idis not one of$record.blocked_ids$auth.rolescontainsadmin$object.keystarts withpublic/$auth.emailends with@acme.com$input.slugmatches regex^[a-z0-9-]+$
Ids are matched either way
A database id may be a number on one side and text on the other (a token carries text). equals and is one of treat them the same, so$record.owner_id equals $auth.user_id works for either id type.
Missing values
If a side is missing (empty), the greater/less comparisons are false. equals with a missing side is true only if the other is also missing. is one of with a missing list is false; is not one of with a missing list is true. Plan for this: a record with nopublish_at never passes $record.publish_at is at most $now.
Check a value
These take one value:- Check a value:
$auth.user_idexists - Check a value:
$auth.orgis set - Check a value:
$record.deleted_atis empty
Choosing between them
- “Is the same as” → equals. “Is one of a fixed set” → is one of.
- “Has this role” → the Has role kind, or
$auth.rolescontainsadmin. - “Has a real value” → is set; exists only checks it is present, so an empty text passes exists but fails is set.
Combining
All, any and none.
Values and paths
Types and missing values.