Conditional logic
Show, hide or require fields based on what someone has already answered.
Conditional logic makes a form feel personal: questions appear only when they’re relevant. You set a rule that watches one field and changes another.
What a rule looks like
A rule reads as: when [field] [matches a condition], then [show / hide / require] [another field]. For example: when role is Developer, show the github field.
Available conditions
| Condition | True when… |
|---|---|
| is | the answer exactly equals a value |
| is not | the answer is anything other than a value |
| contains | the answer includes the text (great for multi-select) |
| greater than | a numeric answer is larger than a value |
| less than | a numeric answer is smaller than a value |
| is empty | no answer has been given |
| is not empty | any answer has been given |
| is checked | a checkbox/toggle is on |
| is not checked | a checkbox/toggle is off |
Matching all vs any
A rule can require all of its conditions to be true (AND) or any of them (OR). Logic updates live as people type — hide a field and it’s instantly removed from the form (and won’t be required while hidden).
Conditions with an empty comparison value never match — this prevents an unfinished rule from accidentally hiding everything. To test for blank answers, use is empty / is not empty instead.
Tips
- For multi-select fields (checkboxes, multi choice-cards), use contains to react to any one of the selected options.
- Use require rules to make a field mandatory only in certain cases — e.g. require a “reason” only when a rating is low.
- To branch between whole pages instead of individual fields, use routing.
Still need help?
A dedicated support form is coming soon. In the meantime, jump back into the product or reach the team from the contact page.
HigherStack