Skip to content

feat(routing-forms): sync booking questions UI with event types#28028

Draft
akankshahu wants to merge 7 commits intocalcom:mainfrom
akankshahu:feat/routing-forms-sync-booking-questions
Draft

feat(routing-forms): sync booking questions UI with event types#28028
akankshahu wants to merge 7 commits intocalcom:mainfrom
akankshahu:feat/routing-forms-sync-booking-questions

Conversation

@akankshahu
Copy link

@akankshahu akankshahu commented Feb 18, 2026

What does this PR do?

This PR unifies the custom input system between Event Types and Routing Forms by replacing the custom field editor in Routing Forms with the shared FormBuilder component used in Event Types. This ensures that any new input type added to Event Types automatically becomes available in Routing Forms, eliminating the need to maintain two separate systems for form inputs.

Fixes #18987
Fixes CAL-5097

/claim #18987

Visual Demo (For contributors especially)

A visual demonstration is strongly recommended, for both the original and new change (video / image - any one).

Video Demo (if applicable):

  • Show screen recordings of the issue or feature.
  • Demonstrate how to reproduce the issue, the behavior before and after the change.

Image Demo (if applicable):

  • Add side-by-side screenshots of the original and updated change.
  • Highlight any significant change(s).

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. If N/A, write N/A here and check the checkbox.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

  • Are there environment variables that should be set?
  • What are the minimal test data to have?
  • What is expected (happy path) to have (input and output)?
  • Any other important info that could help to test that PR

Checklist

  • I haven't read the contributing guide
  • My code doesn't follow the style guidelines of this project
  • I haven't commented my code, particularly in hard-to-understand areas
  • I haven't checked if my changes generate no new warnings
  • My PR is too large (>500 lines or >10 files) and should be split into smaller PRs

Open with Devin

… Exchange

Comprehensive fix for Exchange on-premise authentication issues:

## Backend Changes:
- Add Exchange2019 enum value (Exchange2019 = 8) to ExchangeVersion
- Implement NTLM authentication support in Exchange2013 and Exchange2016 calendar services
- Add @ewsjs/xhr dependency for NTLM authentication (fixes OpenSSL crypto errors)
- Make getExchangeService() async to properly handle NTLM XHR setup
- Update all getExchangeService() calls to use await
- Update API handlers to accept authenticationMethod and exchangeVersion parameters

## Frontend Changes:
- Add Exchange 2019 option to exchangecalendar Setup form dropdown
- Support for both Basic and NTLM authentication methods via UI

## Files Modified:
- packages/app-store/exchangecalendar/enums.ts (added Exchange2019)
- packages/app-store/exchange2013calendar/lib/CalendarService.ts (NTLM support)
- packages/app-store/exchange2013calendar/api/add.ts (accept auth params)
- packages/app-store/exchange2013calendar/package.json (add @ewsjs/xhr)
- packages/app-store/exchange2016calendar/lib/CalendarService.ts (NTLM support)
- packages/app-store/exchange2016calendar/api/add.ts (accept auth params)
- packages/app-store/exchange2016calendar/package.json (add @ewsjs/xhr)
- apps/web/components/apps/exchangecalendar/Setup.tsx (Exchange 2019 option)

Fixes calcom#8123

/claim calcom#8123
Copilot AI review requested due to automatic review settings February 18, 2026 05:56
@akankshahu akankshahu requested a review from a team as a code owner February 18, 2026 05:56
@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Feb 18, 2026
@github-actions github-actions bot added $50 event-types area: event types, event-types routing-forms area: routing forms, routing, forms ✨ feature New feature or request 💎 Bounty A bounty on Algora.io 🧹 Improvements Improvements to existing features. Mostly UX/UI labels Feb 18, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 18, 2026

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

No release type found in pull request title "Feat/routing forms sync booking questions". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

@graphite-app
Copy link

graphite-app bot commented Feb 18, 2026

Graphite Automations

"Send notification to Community team when bounty PR opened" took an action on this PR • (02/18/26)

2 teammates were notified to this PR based on Keith Williams's automation.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request combines two separate features: (1) unifying the custom input system between Event Types and Routing Forms by integrating the FormBuilder component, and (2) adding Exchange 2019 support and NTLM authentication for Exchange calendar integrations. The PR title and description focus on routing forms synchronization, but the majority of file changes are related to Exchange calendar enhancements.

Changes:

  • Replaced custom Routing Forms field editor with shared FormBuilder component from Event Types
  • Added Exchange 2019 version support and NTLM authentication method for Exchange 2013/2016 calendar integrations
  • Introduced bidirectional synchronization between two form instances to bridge Routing Forms and FormBuilder schemas

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 19 comments.

Show a summary per file
File Description
packages/app-store/exchangecalendar/enums.ts Added Exchange2019 enum value to support newer Exchange servers
packages/app-store/exchange2016calendar/package.json Added @ewsjs/xhr dependency for NTLM authentication support
packages/app-store/exchange2016calendar/lib/CalendarService.ts Implemented NTLM authentication, made getExchangeService async, added configurable exchange version
packages/app-store/exchange2016calendar/api/add.ts Extended API schema to accept authenticationMethod and exchangeVersion parameters
packages/app-store/exchange2013calendar/package.json Added @ewsjs/xhr dependency for NTLM authentication support
packages/app-store/exchange2013calendar/lib/CalendarService.ts Implemented NTLM authentication, made getExchangeService async, added configurable exchange version
packages/app-store/exchange2013calendar/api/add.ts Extended API schema to accept authenticationMethod and exchangeVersion parameters
apps/web/components/apps/exchangecalendar/Setup.tsx Added Exchange 2019 option to version selector dropdown
apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/FormEdit.tsx Replaced custom field editor with FormBuilder component, added transformation and synchronization logic

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

cubic-dev-ai[bot]

This comment was marked as resolved.

@akankshahu akankshahu changed the title Feat/routing forms sync booking questions feat(routing-forms): sync booking questions UI with event types Feb 18, 2026
@akankshahu akankshahu requested a review from Copilot February 18, 2026 06:08

This comment was marked as resolved.

@285729101
Copy link

@hariombalhara this replaces the custom field editor in routing forms with the shared FormBuilder component from event types, so new field types automatically become available in both places.

Copy link
Member

@sahitya-chandra sahitya-chandra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@akankshahu Can youadd a before and after video demo of the change and address the Copilot comment

- Add localization for hardcoded UI strings (Questions, descriptions, button labels)
- Fix unstable field ID generation using useRef with Map for stable ID tracking
- Preserve legacy option format (id: null) for backward compatibility with routing logic
- Add new translation key 'add_questions_to_routing_form' to common.json
@akankshahu akankshahu requested a review from Copilot February 18, 2026 15:49
devin-ai-integration[bot]

This comment was marked as resolved.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 11 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@akankshahu
Copy link
Author

Hello @sahitya-chandra I attempted to create a video demo as requested, but encountered licensing/feature flag restrictions when testing routing forms locally. Routing forms requires a Teams plan feature flag that's difficult to enable in a local development environment without proper enterprise license configuration.

@sahitya-chandra
Copy link
Member

Hello @sahitya-chandra I attempted to create a video demo as requested, but encountered licensing/feature flag restrictions when testing routing forms locally. Routing forms requires a Teams plan feature flag that's difficult to enable in a local development environment without proper enterprise license configuration.

@akankshahu you dont need an enterprise license configuration to create teams locally, their must be an issue in your development setup. please try it again and without a video demo we will not be able to approve this pr.

@sahitya-chandra sahitya-chandra marked this pull request as draft February 19, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🙋 Bounty claim 💎 Bounty A bounty on Algora.io community Created by Linear-GitHub Sync event-types area: event types, event-types ✨ feature New feature or request 🧹 Improvements Improvements to existing features. Mostly UX/UI routing-forms area: routing forms, routing, forms size/XL $50

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CAL-5097] add the same "booking questions" to routing forms

3 participants

Comments