Validation Rules
Validation rules let you enforce data quality on every form field. You can add multiple rules per column, and each rule is checked both in real-time on the frontend and again on the server before the submission is accepted.
How Validation Works
During form creation, you can open the Validation Rules panel to define rules for any column. Each rule consists of three parts:
- Column — the field the rule applies to
- Operator — the type of check (e.g.,
greaterThan,minLength) - Value — the threshold or constraint (e.g.,
10,3)
You can add as many rules as needed for each column. All rules on a column must pass for the field to be considered valid.
Numeric Operators
Apply to numbers columns.
| Operator | Description | Value Input |
|---|---|---|
| greaterThan | Value must be greater than the specified number | Single number |
| lessThan | Value must be less than the specified number | Single number |
| equalTo | Value must equal the specified number | Single number |
| notEqualTo | Value must not equal the specified number | Single number |
| between | Value must fall within a numeric range (inclusive) | Min and max numbers |
Text Operators
Apply to text, long_text, name, email, url, link, and phone columns.
| Operator | Description | Value Input |
|---|---|---|
| minLength | Text must have at least N characters | Number |
| maxLength | Text must have at most N characters | Number |
| contains | Text must include the specified substring | String |
| notContains | Text must not include the specified substring | String |
| matches | Text must match a regular expression pattern | Regex pattern |
| startsWith | Text must begin with the specified string | String |
| endsWith | Text must end with the specified string | String |
Boolean Operators
Apply to checkbox columns.
| Operator | Description | Value Input |
|---|---|---|
| equals | Checkbox must be in a specific state (checked or unchecked) | Boolean (true / false) |
This is useful when you need the respondent to explicitly check a box (e.g., accepting terms and conditions) before the form can be submitted.
List Operators
Apply to dropdown, multi_dropdown, status, and people columns.
| Operator | Description | Value Input |
|---|---|---|
| isOneOf | Selected value(s) must be within the allowed set — options outside this set are disabled in the dropdown | Multi-select list of options |
| isNotOneOf | Selected value(s) must not be in the excluded set — excluded options are disabled in the dropdown | Multi-select list of options |
The value input for list operators dynamically shows the available options from your monday.com column, so you can pick exactly which choices to allow or block.
Date Operators
Apply to date columns.
| Operator | Description | Value Input |
|---|---|---|
| before | Date must be before the specified date | Date picker |
| after | Date must be after the specified date | Date picker |
| between | Date must fall within a date range (inclusive) | Start and end date pickers |
Built-in Format Validation
Some column types have built-in validation that runs automatically, regardless of any custom rules you add:
Validates that the entered value is a correctly formatted email address.
Phone
Validates using the E.164 international phone number standard via libphonenumber-js. Accepts numbers from any country.
URL / Link
Validates that the entered value is a properly formatted URL. Link columns also auto-prepend https:// when no protocol is provided.
Numbers
Ensures the value is a valid number. Respects min, max, and step constraints defined on the column.
Validation Behavior
Validation runs in two stages to provide the best user experience:
1. Real-time frontend validation
Fields are validated as the respondent interacts with them. Validation hints appear on blur (when the respondent leaves a field). On submit, all fields are validated at once. If any field fails, an error banner appears and the page scrolls to the first invalid field.
2. Server-side validation
All validation rules are re-checked on the server before the submission is accepted. If any field fails server validation, the errors are returned and displayed on the form with field-level messages.