Form Builder Conditional Logic
Conditional logic lets you control what users see based on what they enter. For example: show a follow-up question only when someone picks a specific option, or make a field required only when a checkbox is checked.
Walk-through example: You have a "Number of Guests" field and a "Catering Options" step. Create a rule with the target set to the "Catering Options" step, the action set to Show, and the condition set to "Number of Guests" greater than 50. Now the catering step only appears when someone enters more than 50 guests.
Where to set it up
- Conditional Logic tab in the builder -- shows all rules across the entire form.
- Field settings > Conditional Logic tab -- shows rules that affect a specific field.
How a rule works
Each rule has four parts:
- Targets -- which fields, rows, or steps should be affected.
- Action -- what happens when the conditions are met.
- Logic mode -- how multiple conditions are combined (all must match, or any can match).
- Conditions -- one or more checks against field values.
When the conditions are met, the action is applied to all targets.
What you can target
Pick one target type per rule:
- Fields -- individual form fields.
- Rows -- entire rows (all fields in the row).
- Steps -- entire form steps/pages.
Actions per target type
| Target | Available actions |
|---|---|
| Fields | Show, Hide, Require, Make optional |
| Rows | Show |
| Steps | Show |
For rows and steps, the only action is Show. This means the row or step is hidden by default and only appears when the condition is true.
Require makes a field mandatory when the conditions are met. Make optional removes the mandatory status.
When multiple rules target the same field, row, or step, all conditions across all rules must be true (AND logic) for the target to show or hide.
Fields that cannot be targeted
These fields cannot be controlled by conditional logic: rooms, cart summary, custom data, event title, and event date.
Conditions
Each condition checks the value of a source field against an expected value.
Which fields can be used as a source
You can use any input field that appears before the target in the form layout. This prevents circular rules (field A depends on field B, while field B depends on field A).
Fields that cannot be used as a source: heading, text block, spacer, separator, alert, image, rich text, products, rooms, cart summary, file upload, and custom data.
Comparison operators
The available operators depend on the field type.
Text fields
Works with: text, text area, email, phone, salutation, first name, last name, company, mobile, street, postal code, city, address lines, country, event title, event contact.
| Operator | Meaning |
|---|---|
| Equals | Exact match |
| Does not equal | Value is different |
| Contains | Value includes the text |
| Does not contain | Value does not include the text |
| Starts with | Value begins with the text |
| Ends with | Value ends with the text |
| Is empty | Field has no value |
| Is not empty | Field has a value |
Number fields
Works with: number, rating, attendees, event days, people min, people max.
| Operator | Meaning |
|---|---|
| Equals | Exact match |
| Does not equal | Value is different |
| Greater than | Value is higher |
| Less than | Value is lower |
| Greater than or equal | Value is the same or higher |
| Less than or equal | Value is the same or lower |
| Is empty | Field has no value |
| Is not empty | Field has a value |
Date fields
Works with: date, event date, event end date.
| Operator | Meaning |
|---|---|
| Equals | Exact date match |
| Does not equal | Date is different |
| Before | Date is earlier |
| After | Date is later |
| On or before | Same date or earlier |
| On or after | Same date or later |
| Is empty | No date selected |
| Is not empty | A date is selected |
Time fields
Works with: time, event start time, event end time.
| Operator | Meaning |
|---|---|
| Equals | Exact time match |
| Does not equal | Time is different |
| Before | Time is earlier |
| After | Time is later |
| On or before | Same time or earlier |
| On or after | Same time or later |
| Is empty | No time selected |
| Is not empty | A time is selected |
Checkbox
The operators depend on how the checkbox is set up:
Single checkbox (yes/no toggle):
| Operator | Meaning |
|---|---|
| Checked | Checkbox is on |
| Unchecked | Checkbox is off |
Checkbox with single selection:
| Operator | Meaning |
|---|---|
| Equals | The selected option matches |
| Does not equal | The selected option is different |
| Is empty | Nothing selected |
| Is not empty | Something is selected |
Checkbox with multiple selection:
| Operator | Meaning |
|---|---|
| Includes | The selection contains the value |
| Does not include | The selection does not contain the value |
| Is empty | Nothing selected |
| Is not empty | Something is selected |
Dropdown, radio, and picture choice
Single selection (radio buttons, single picture choice, dropdown without multi-select):
| Operator | Meaning |
|---|---|
| Equals | Selected value matches |
| Does not equal | Selected value is different |
| Is empty | Nothing selected |
| Is not empty | Something is selected |
Multiple selection (dropdown with multi-select, picture choice with multi-select):
| Operator | Meaning |
|---|---|
| Includes | The selection contains the value |
| Does not include | The selection does not contain the value |
| Is empty | Nothing selected |
| Is not empty | Something is selected |
Combining conditions (AND / OR)
When a rule has more than one condition, you choose how they work together:
- All conditions must match (AND) -- every single condition must be true.
- Any condition can match (OR) -- at least one condition must be true.
The AND/OR toggle appears automatically when you add a second condition.
Value input
The value input adapts to the source field:
| Source field | Value input shown |
|---|---|
| Text fields | Text input |
| Number fields | Number input |
| Date fields | Date picker |
| Time fields | Time picker |
| Fields with options | Dropdown of available options |
Some operators do not need a value: is empty, is not empty, checked, and unchecked.
Product and room rules
Products and rooms have their own extended rule system. See Form Builder Products and Rooms for details.
Additional sources for product rules
| Source | What it checks | Operators |
|---|---|---|
| Form field | A regular field value | Same as the standard operators above |
| Room | Whether a room is booked | Is selected / is not selected |
| Product | Whether a product is selected | Is selected / is not selected |
| Order total | The current order total | Number comparison operators |
| Order quantity | The current total quantity | Number comparison operators |
Product rule actions
| Action | What it does |
|---|---|
| Show | Show the product or group |
| Hide | Hide the product or group |
| Require | Make selection mandatory (for selection groups) |
| Auto-book | Automatically add the product when conditions are met |
How rules are evaluated
- Hidden fields are excluded from validation (users cannot see them, so they are not checked).
- A required status set by conditional logic overrides the field's default setting.
- Conditions are evaluated in real time as users fill in the form.
- For security, the server re-evaluates all conditional logic when the form is submitted.
Complete operator reference
Below is an exhaustive reference of every operator available per field type category.
Text operators
Applies to: text, text area, email, phone, salutation, first name, last name, company, mobile, street, postal code, city, address line 2, address line 3, country, event title, event contact.
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | Field value is exactly VIP |
| Does not equal | yes | Field value is anything other than VIP |
| Contains | yes | Field value includes the text partner |
| Does not contain | yes | Field value does not include partner |
| Starts with | yes | Field value starts with Dr. |
| Ends with | yes | Field value ends with GmbH |
| Is empty | no | Field is blank, null, or undefined |
| Is not empty | no | Field has any value |
Number operators
Applies to: number, rating, attendees, event days.
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | Number is exactly 10 |
| Does not equal | yes | Number is not 10 |
| Greater than | yes | Number is above 50 |
| Less than | yes | Number is below 50 |
| Greater than or equal | yes | Number is 50 or above |
| Less than or equal | yes | Number is 50 or below |
| Is empty | no | Field is blank |
| Is not empty | no | Field has any value |
Date operators
Applies to: date, event date, event end date.
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | Date is exactly 2026-06-15 |
| Does not equal | yes | Date is not 2026-06-15 |
| Before | yes | Date is earlier than 2026-06-15 |
| After | yes | Date is later than 2026-06-15 |
| On or before | yes | Date is 2026-06-15 or earlier |
| On or after | yes | Date is 2026-06-15 or later |
| Is empty | no | No date selected |
| Is not empty | no | A date is selected |
Time operators
Applies to: time, event start time, event end time. Values use the HH:MM 24-hour format.
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | Time is exactly 14:00 |
| Does not equal | yes | Time is not 14:00 |
| Before | yes | Time is earlier than 12:00 |
| After | yes | Time is later than 12:00 |
| On or before | yes | Time is 18:00 or earlier |
| On or after | yes | Time is 18:00 or later |
| Is empty | no | No time selected |
| Is not empty | no | A time is selected |
Options operators (dropdown, radio, picture choice)
Single selection (radio, single picture choice, dropdown without multi-select):
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | Selected value matches the chosen option |
| Does not equal | yes | Selected value does not match |
| Is empty | no | Nothing selected |
| Is not empty | no | Something is selected |
Multiple selection (dropdown with multi-select, picture choice with multi-select):
| Operator | Value needed | Example |
|---|---|---|
| Includes | yes | The selection contains the chosen option |
| Does not include | yes | The selection does not contain the chosen option |
| Is empty | no | Nothing selected |
| Is not empty | no | Something is selected |
Checkbox operators
Single checkbox (yes/no toggle, no options defined):
| Operator | Value needed | Example |
|---|---|---|
| Checked | no | Checkbox is on |
| Unchecked | no | Checkbox is off |
Checkbox with single selection (only one option can be selected):
| Operator | Value needed | Example |
|---|---|---|
| Equals | yes | The selected option matches vegetarian |
| Does not equal | yes | The selected option is not vegetarian |
| Is empty | no | Nothing selected |
| Is not empty | no | Something is selected |
Checkbox with multiple selection (default when options are defined):
| Operator | Value needed | Example |
|---|---|---|
| Includes | yes | The selection contains parking |
| Does not include | yes | The selection does not contain parking |
| Is empty | no | Nothing selected |
| Is not empty | no | Something is selected |
Conflict resolution
When multiple rules target the same element, conflicts are resolved with these fixed priorities:
| Conflict | Winner | Explanation |
|---|---|---|
| One rule says show, another says hide | Hide wins | If any active hide-rule has its conditions met, the target is hidden regardless of show-rules. |
| One rule says require, another says make optional | Require wins | If any active require-rule has its conditions met, the field is mandatory regardless of unrequire-rules. |
Show-only rules and default visibility
- If a field, row, or step has only show-rules (no hide-rules), the target starts hidden and becomes visible when at least one show-rule's conditions are met.
- If a field has only hide-rules, it starts visible and is hidden when a hide-rule's conditions are met.
- If both show and hide rules exist, the target starts visible, show-rules can reveal it, but any active hide-rule overrides everything.
Conditions based on hidden fields
If a source field referenced in a condition is itself hidden (by another rule), the condition is treated as not met. This prevents rules from applying based on fields the user cannot see.
Example: Rule A hides field "Country". Rule B checks "Country equals Switzerland" to show "Canton". Because "Country" is hidden, rule B's condition is not met, so "Canton" stays hidden too.
Protected fields
Event title and event date are always visible and required regardless of any rules. Rows and steps that contain these fields cannot be hidden by conditional logic either.
Product and room conditional rules (extended)
Product and room rules use a separate evaluation engine with additional source types beyond regular form fields.
Source types
| Source type | What it checks | Available operators |
|---|---|---|
| Form field | The value of a regular form field | All operators for that field type (text, number, date, etc.) |
| Room | Whether a specific room is booked | Includes, Does not include, Is empty, Is not empty |
| Product | Whether a specific product is selected (returns quantity) | Equals, Does not equal, Greater than, Less than, Greater than or equal, Less than or equal, Is empty, Is not empty |
| Order total | The current order total in the cart (net or gross depending on display settings) | Equals, Does not equal, Greater than, Less than, Greater than or equal, Less than or equal |
| Order quantity | The total number of items in the cart | Equals, Does not equal, Greater than, Less than, Greater than or equal, Less than or equal |
Order total and order quantity only count standard (manually selected) products. Automatic products are excluded to prevent circular dependencies.
How product/room rules differ from field rules
| Aspect | Field rules | Product/room rules |
|---|---|---|
| Where defined | Form-level conditional logic tab | Per product, product group, or selection group in the products configuration |
| Target | Fields, rows, or steps | A single product, product group, or selection group |
| Actions | show, hide, require, unrequire | show, hide, require (selection groups only), auto-book (products only) |
| Source types | Form fields only | Form fields, rooms, other products, order total, order quantity |
| Evaluation | Single pass | Multiple rounds to handle product-to-product cascades |
| Auto-book quantity | Not applicable | Fixed number or derived from a form field value |
Auto-book details
When a product rule with the auto-book action applies, the product is automatically added to the cart. The quantity can come from:
- A fixed number set in the rule action.
- A form field value (e.g., number of attendees). If the field value is not a valid positive number, the quantity defaults to 1.
Auto-booking only applies when the product is visible. If a hide-rule hides the product, auto-book does not apply even if its conditions are met.
Fields that cannot be condition sources
The following field types cannot be used as a condition source because they do not produce a user-entered value:
| Field type | Reason |
|---|---|
| Heading | Design element, no input |
| Text block | Design element, no input |
| Spacer | Design element, no input |
| Separator | Design element, no input |
| Alert | Design element, no input |
| Image | Design element, no input |
| Rich text | Design element, no input |
| Products | Complex composite field |
| Rooms | Complex composite field |
| Cart summary | Display-only field |
| File upload | Binary data, not comparable |
| Custom data | Internal data, not user-visible |
All other field types (text, number, date, time, checkbox, select, radio, picture choice, email, phone, and all event/address/contact fields) can be used as condition sources.