/claim #18987

What does this PR do?

  • Fixes #18987
  • Fixes CAL-5097

Adds the missing booking question field types to routing forms so that both event-type booking questions and routing forms share the same set of available field types.

New field types added to routing forms:

  • URL — text input with URL type validation
  • Address — address input with map pin icon
  • Multiple Emails — multi-email input for collecting multiple email addresses
  • Radio Group — single-choice selection rendered as radio buttons
  • Checkbox Group — multiple-choice selection rendered as checkboxes
  • Checkbox — single boolean checkbox

Changes:

  1. FieldTypes.ts — Added new types to the RoutingFormFieldType enum, validation function, and FieldTypes array
  2. widgets.tsx — Added widget components: AddressWidget, UrlWidget, RadioWidget, CheckboxWidget, BooleanWidget
  3. config.ts — Added RAQB widget and type definitions for new field types
  4. uiConfig.tsx — Added factory functions and widget mappings for the UI layer
  5. FormEdit.tsx — Extended the options editor to also show for radio and checkbox group types
  6. getQueryBuilderConfig.ts — Extended listValues support to radio and checkbox types for routing logic
  7. transformResponse.ts — Added value transformation for radio (like select) and checkbox (like multiselect) types

Design decisions:

  • Radio maps to RAQB select type (single value) and Checkbox Group maps to multiselect type (array of values), ensuring routing logic operators work correctly
  • URL, Address, and Multiple Emails map to RAQB text type for simple text-based routing operators
  • Boolean maps to text type in RAQB config
  • The approach extends the existing routing form infrastructure rather than replacing it, keeping the change minimal and backward-compatible

How should this be tested?

  1. Navigate to Routing Forms - Create/Edit a form
  2. Add a new field and verify the new field types appear in the Type dropdown
  3. For Radio Group and Checkbox Group, verify options can be added/removed
  4. Fill out the form and verify each new field type renders and captures input correctly
  5. Set up routing rules using the new field types and verify routing logic works

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

Claim

Total prize pool $50
Total paid $0
Status Pending
Submitted February 17, 2026
Last updated February 17, 2026

Contributors

JA

Janis A.

@janisag07

100%

Sponsors

CA

Cal.com, Inc.

@cal

$50