Constraint
Last updated
Was this helpful?
The constraint column is used to validate user input. It prevents the user from continuing until the answer meets a condition you define.
If the answer doesn't satisfy the constraint, a message defined in constraint_message is shown to the user.
The value of the question is represented by a dot (.), which means “the current answer.” You build a logic expression using that value.
Constraints are commonly used to:
Set numeric ranges (e.g., age must be between 0 and 120)
Require matching formats (e.g., ZIP codes, emails)
Enforce dependencies (e.g., end date after start date)
integer
age
Your age
. >= 18 and . <= 99
Age must be between 18 and 99
text
zip
ZIP code
regex(., '^\d{5}$')
Enter a 5-digit ZIP code
text
Email address
regex(., '^[^@]+@[^@]+.[^@]+$')
Enter a valid email
date
end
End date
. >= ${start}
End date must be after start
The dot . represents the value entered by the user for the current question. Use it inside functions and expressions:
. >= 0 — valid if value is 0 or higher
regex(., '^\d{5}$') — valid if it matches the pattern
You can use ${question_name} to reference answers from other questions in the form. Make sure referenced questions appear earlier in the form.
Example:
. > ${min_age} — ensures current input is greater than a previously entered value
Same as relevance, you can use:
=, !=, >, <, >=, <= and, or, not()
regex()
Validates the format of a text input
regex(., '^\d{5}$') for US ZIP codes
string-length()
Checks the number of characters
string-length(.) <= 50
selected()
Checks if a choice was selected
selected(${choices}, 'option1')
today()
Gets the current date
. <= today()
now()
Gets current date and time
. <= now()
Last updated
Was this helpful?
Was this helpful?