Skip to content

Conditional Logic

Make your form react to what respondents answer. Show a follow-up question only when it's relevant. Require a phone number only when the respondent picks "Call me back". Skip technical questions for non-technical roles.

Adding a Logic Rule

  1. In the designer, type / and pick Logic (or click the Add logic button at the bottom of the field list).
  2. A logic block appears, anchored after the field above it.
  3. Configure the rule:
    • If field — the field whose value is checked
    • Conditionequals, not equals, contains, is empty, greater than, etc. The conditions available depend on the field's type.
    • Value — what to compare against (text, number, or one of the field's options for selects)
    • Action — what happens when the condition is met
    • Target — the field or page the action applies to

The Four Actions

ActionWhat it doesTarget
Show fieldField is hidden by default; shown only when the rule's condition is met.A form field
Hide fieldField is visible by default; hidden when the condition is met.A form field
Require fieldAdds dynamic required-ness on top of the field's static required setting.A form field
Skip to pageJumps the respondent forward to a specific page break. The Next button on the current page does the jump.A page break

Show vs. hide — pick the right default

If a field should be invisible most of the time, use Show field (it stays hidden until the rule fires). If a field should be visible most of the time, use Hide field (it shows by default and disappears when the rule fires). Don't combine the two on the same target — the result depends on rule order.

Conditions by Field Type

Field typeAvailable conditions
Text, Email, Phone, URLequals, not equals, contains, not contains, is empty, is not empty
Numberequals, not equals, greater than, less than, is empty, is not empty
Single Select, Statusequals, not equals, is empty, is not empty
Multi Selectcontains, not contains, is empty, is not empty
Checkboxequals (true/false)
Dateequals, not equals, is empty, is not empty

How It's Evaluated

Logic runs in two places:

  1. Client-side as the respondent types — fields show, hide, and gain required-ness in real time.
  2. Server-side at submit — Ascend re-runs every rule against the submitted data before saving the row. This means tampered submissions can't bypass require_field rules or smuggle in values for hidden fields.

When the server validates:

  • Hidden fields are never required, even if their required flag is on.
  • Hidden fields are never written to the database row, even if a value was sent.
  • Conditionally-required fields show a {label} is required error if empty.

Multiple Rules on the Same Field

Rules are evaluated in the order they're declared. If two rules contradict (one shows, one hides), the last matching rule wins for visibility. For requiredness, any matching require_field rule is enough to make the field required.

Common Patterns

PatternSetup
"Other (please specify)" follow-upShow field "Other text" if Reason equals Other
Conditional contact preferenceRequire field "Phone" if Contact method equals Phone
Branch on plan tierSkip to page "Enterprise questions" if Plan equals Enterprise
Hide irrelevant questionsHide field "Tax ID" if Country not equals US
Soft validation gateShow field "Are you sure?" checkbox if Cancellation reason is not empty

Limitations

  • One condition per rule — no compound AND / OR (yet). Chain rules instead, or combine fields into a select.
  • Skip-to-page can't go backwards.
  • Logic doesn't support hidden URL prefill.
  • File uploads can't be used as the condition field, only as the target.

Next