Reuse the event-type booking-questions UI in routing forms. Replaces the custom field editor on the form-edit page with the shared FormBuilder used for event-type booking questions, so routing forms get the same field types and editing flow. Adds adapters to map between routing form fields and FormBuilder, with stable IDs, type locking when the form has responses, and preservation of router fields. Fixes duplication and sync issues when editing or reordering questions
Fixed failing E2E tests (yarn e2e:app-store) caused by the FormBuilder migration:
Route builder support for new field types:
address, boolean, checkbox, multiemail, radio, radioInput, and url field types so they appear in route builder dropdownsRADIO = "radio" enum to FieldTypes.ts (FormBuilder uses "radio" for “Radio Group”, distinct from "radioInput")getQueryBuilderConfigForFormFields now skips unsupported field types gracefully instead of throwing a 500E2E test selector fixes:
data-testid="field-${field.name}" not data-testid="field" — updated all selectorsedit-field-dialog) with [name="label"] / [name="name"] inputs[data-testid="test-field-type"] and [data-testid^="select-option-"][contenteditable="true"] for label inputconfig.ts / uiConfig.tsx use simple text/select factories — verify they render and behave correctly in the route builder UIgetQueryBuilderConfigForFormFields silently skips unsupported types with a console.warn — confirm this is acceptable vs throwingverifySelectOptions), not alphabetical orderLink to Devin run | Requested by @sahitya-chandra
A visual demonstration is strongly recommended, for both the original and new change (video / image - any one).
Before:
Screencast from 2026-02-23 23-12-10.webm
After:
Screencast from 2026-02-23 22-56-09.webm
Screencast from 2026-02-23 23-05-01.webm
Route builder with new field types:
E2E tests:
PLAYWRIGHT_HEADLESS=1 yarn e2e:app-store --workers=4 to verify all routing-forms tests passbasic.e2e.ts tests for field creation, editing, and prefillField editing:
Sahitya Chandra
@sahitya-chandra
Cal.com, Inc.
@cal