* feat: include record IDs in Salesforce assignment reason strings
- Add recordId parameter to assignmentReasonHandler function
- Include Contact ID, Lead ID, and Account ID in assignment reason strings
- Update entire call chain to pass record IDs from CRM service
- Maintain backward compatibility with optional recordId parameter
Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com>
* fix: resolve lint warnings in assignment reason handler implementation
- Change Record<string, any> to Record<string, unknown> in BookingHandlerInput type
- Remove unused eventTypeId variable in getAttributeRoutingConfig function
Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com>
* fix: revert to Record<string, any> with ESLint disable for BookingHandlerInput
- Revert from Record<string, unknown> to Record<string, any> to maintain type compatibility
- Add ESLint disable comment to suppress no-explicit-any warning
- Maintains consistency with handleNewRecurringBooking.ts pattern
Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com>
* feat: pass CRM record ID from booker state to handleNewBooking
- Add crmRecordId field to booker store interface and initialization
- Update mapBookingToMutationInput to include record ID from booker state
- Modify handleNewBooking to extract record ID from bookingData parameter
- Add crmRecordId to BookingCreateBody schema in Prisma layer
- Follow existing pattern for CRM fields (teamMemberEmail, crmOwnerRecordType, crmAppSlug)
- Ensures record ID flows: booker store → booking form → mapBookingToMutationInput → handleNewBooking
This replaces the previous backend CRM service extraction approach with
frontend booker state approach as requested by the user.
Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com>
* Pass crmRecordId as prop
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>