Conditional custom fields

Show follow-up custom fields only when they're relevant — reveal extra questions based on how a guest answers a Checkbox or Dropdown field, so your booking form stays short and only asks what matters.

Written By Melanie Gannone (Super Administrator)

Updated at July 7th, 2026

Conditional custom fields reveal follow-up questions based on how a guest answers an earlier field. Instead of showing every possible question at once, your booking form stays short and only asks what's relevant.

For example, ask "Do you want to add lunch?" as a checkbox — and only show "Dietary restrictions" and "Food allergies" when the guest checks it.

Before you begin

  • The parent field — the one that controls what shows — must be a Checkbox or Dropdown. No other type can trigger conditional logic.
  • The child fields — the ones that appear — can be any type.
  • The parent and its children must be assigned to the same activity and collected at the same level (both Once per Trip). Cross-level conditions aren't supported.

Create both fields first (see set up custom fields), then add the logic on the parent.

Set up conditional logic

  1. Open the parent field (the Checkbox or Dropdown) from Setup Custom Fields and go to the Conditional logic section.
  2. For each answer, select Add fields and choose the child fields to reveal. On a Checkbox, you set fields for When checked and When unchecked; on a Dropdown, you set fields for each option.

Conditional custom fields in TripWorks — the Conditional logic editor showing which fields appear when a checkbox is checked versus unchecked

List the fields to reveal for each answer. Here, checking the box shows "Boater Safety Test."
  1. Select Save changes.

Back in the list, the parent field shows a "Triggers N fields" note, and each child shows "Conditional on …", so you can see the relationships at a glance.

How it works at checkout

When a guest reaches the custom fields on your booking form:

  1. Child fields are hidden until the parent's answer matches.
  2. When the guest gives the matching answer, the child field appears.
  3. If the guest changes the parent so it no longer matches, the child hides again and its value is cleared.

This works everywhere guests answer custom fields — the online booking widget, walk-up checkout, and reseller checkout.

Common examples

Parent field Answer that reveals Child field(s)
"Add lunch?" (Checkbox) Checked Dietary restrictions, Food allergies
"Need hotel pickup?" (Checkbox) Checked Hotel name, Room number
"Skill level" (Dropdown) Beginner Do you need equipment rental?
"Booking for" (Dropdown) Corporate group Company name, PO number

Frequently asked questions

Which field types can be a parent?

Only Checkbox and Dropdown fields. Text, date, and other types can't trigger conditional logic — though any type can be a child field.

Can a child field trigger its own follow-up?

No. Conditional logic is one level deep — a child field can't also be a parent.

Can a required child field block checkout?

A required child is only enforced while it's visible. Guests are never blocked by a required field they can't see.

What happens if I delete a parent field?

Its child fields aren't deleted — they become regular (unconditional) fields and show to everyone. Reassign them to a new parent or leave them as standalone fields.

I don't see my child field as an option — why?

Only fields assigned to the same activity as the parent, and collected at the same level, can be chosen. Check that both fields share an activity and are both set to Once per Trip.

Built for attractions, tours & activities

A checkout that asks only what it needs

See how attractions, tours, and activities keep booking forms short by revealing follow-up questions only when they apply — on TripWorks. Book a demo and make the switch.

{"@context": "https://schema.org", "@type": "Article", "headline": "Conditional custom fields", "inLanguage": "en", "author": {"@type": "Organization", "name": "TripWorks", "url": "https://www.tripworks.com"}, "publisher": {"@type": "Organization", "name": "TripWorks", "url": "https://www.tripworks.com"}, "mainEntityOfPage": "https://help.tripworks.com/activities-availability/conditional-custom-fields", "datePublished": "2026-07-06", "dateModified": "2026-07-06", "description": "Show follow-up custom fields only when they're relevant \u2014 reveal extra questions based on how a guest answers a Checkbox or Dropdown field, so your booking form stays short and only asks what matters.", "image": "https://cdn-images.tripworks.com/help-center/images/conditional-custom-fields/conditional-logic-848620cc.webp"} {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help.tripworks.com"}, {"@type": "ListItem", "position": 2, "name": "Activities & Availability", "item": "https://help.tripworks.com/activities-availability"}, {"@type": "ListItem", "position": 3, "name": "Conditional custom fields", "item": "https://help.tripworks.com/activities-availability/conditional-custom-fields"}]} {"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Which field types can be a parent?", "acceptedAnswer": {"@type": "Answer", "text": "Only Checkbox and Dropdown fields. Text, date, and other types can't trigger conditional logic \u2014 though any type can be a child field."}}, {"@type": "Question", "name": "Can a child field trigger its own follow-up?", "acceptedAnswer": {"@type": "Answer", "text": "No. Conditional logic is one level deep \u2014 a child field can't also be a parent."}}, {"@type": "Question", "name": "Can a required child field block checkout?", "acceptedAnswer": {"@type": "Answer", "text": "A required child is only enforced while it's visible. Guests are never blocked by a required field they can't see."}}, {"@type": "Question", "name": "What happens if I delete a parent field?", "acceptedAnswer": {"@type": "Answer", "text": "Its child fields aren't deleted \u2014 they become regular (unconditional) fields and show to everyone. Reassign them to a new parent or leave them as standalone fields."}}, {"@type": "Question", "name": "I don't see my child field as an option \u2014 why?", "acceptedAnswer": {"@type": "Answer", "text": "Only fields assigned to the same activity as the parent, and collected at the same level, can be chosen. Check that both fields share an activity and are both set to Once per Trip."}}]}

Can't find what you're looking for?

Our team is here to help. Reach out and we'll get back to you as soon as possible.

Contact us →