From 9b6eb8b80aa6ee92344c1ba0642cd09be3feaf94 Mon Sep 17 00:00:00 2001 From: neo773 <62795688+neo773@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:47:04 +0530 Subject: [PATCH] fix onboarding for messaging (#16729) Co-authored-by: Charles Bochet --- .../signup_invite_email.spec.ts | 1 - .../useSetNextOnboardingStatus.test.ts | 9 ++++++ .../hooks/useSetNextOnboardingStatus.ts | 5 +++- .../useTriggerProviderReconnect.test.tsx | 28 +++++++++++++++++++ .../accounts/hooks/useTriggerApiOAuth.ts | 6 ++++ .../src/pages/onboarding/SyncEmails.tsx | 1 + .../google-apis-auth.controller.ts | 2 ++ .../microsoft-apis-auth.controller.ts | 2 ++ ...pis-oauth-exchange-code-for-token.guard.ts | 1 + .../google-apis-oauth-request-code.guard.ts | 2 ++ ...pis-oauth-exchange-code-for-token.guard.ts | 1 + ...microsoft-apis-oauth-request-code.guard.ts | 2 ++ .../create-calendar-channel.service.ts | 10 +++++-- .../create-message-channel.service.ts | 10 +++++-- .../auth/services/google-apis.service.ts | 4 +++ .../auth/services/microsoft-apis.service.ts | 4 +++ .../auth/services/sign-in-up.service.ts | 26 +++++++++++------ ...h-exchange-code-for-token.auth.strategy.ts | 1 + ...e-apis-oauth-request-code.auth.strategy.ts | 2 ++ ...h-exchange-code-for-token.auth.strategy.ts | 1 + ...t-apis-oauth-request-code.auth.strategy.ts | 2 ++ .../auth/types/google-api-request.type.ts | 1 + .../auth/types/microsoft-api-request.type.ts | 1 + ...ogle-apis-set-request-extra-params.util.ts | 7 +++++ 24 files changed, 114 insertions(+), 15 deletions(-) diff --git a/packages/twenty-e2e-testing/tests/authentication/signup_invite_email.spec.ts b/packages/twenty-e2e-testing/tests/authentication/signup_invite_email.spec.ts index 1f7eb7849d..03813ab5dd 100644 --- a/packages/twenty-e2e-testing/tests/authentication/signup_invite_email.spec.ts +++ b/packages/twenty-e2e-testing/tests/authentication/signup_invite_email.spec.ts @@ -42,7 +42,6 @@ test('Sign up with invite link via email', async ({ await loginPage.typeFirstName(firstName); await loginPage.typeLastName(lastName); await loginPage.clickContinueButton(); - await loginPage.noSyncWithGoogle(); }); await test.step('Delete account from workspace', async () => { diff --git a/packages/twenty-front/src/modules/onboarding/hooks/__tests__/useSetNextOnboardingStatus.test.ts b/packages/twenty-front/src/modules/onboarding/hooks/__tests__/useSetNextOnboardingStatus.test.ts index f97f825d9c..2a76bb1c47 100644 --- a/packages/twenty-front/src/modules/onboarding/hooks/__tests__/useSetNextOnboardingStatus.test.ts +++ b/packages/twenty-front/src/modules/onboarding/hooks/__tests__/useSetNextOnboardingStatus.test.ts @@ -63,6 +63,15 @@ describe('useSetNextOnboardingStatus', () => { expect(nextOnboardingStatus).toEqual(OnboardingStatus.SYNC_EMAIL); }); + it('should skip SyncEmail when user is not first workspace member', () => { + const nextOnboardingStatus = renderHooks( + OnboardingStatus.PROFILE_CREATION, + false, + false, + ); + expect(nextOnboardingStatus).toEqual(OnboardingStatus.COMPLETED); + }); + it('should set next onboarding status for SyncEmail', () => { const nextOnboardingStatus = renderHooks( OnboardingStatus.SYNC_EMAIL, diff --git a/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts b/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts index 7c3932596a..7a12ac3691 100644 --- a/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts +++ b/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts @@ -22,7 +22,10 @@ const getNextOnboardingStatus = ( } if (currentUser?.onboardingStatus === OnboardingStatus.PROFILE_CREATION) { - return OnboardingStatus.SYNC_EMAIL; + if (currentWorkspace?.workspaceMembersCount === 1) { + return OnboardingStatus.SYNC_EMAIL; + } + return OnboardingStatus.COMPLETED; } if ( currentUser?.onboardingStatus === OnboardingStatus.SYNC_EMAIL && diff --git a/packages/twenty-front/src/modules/settings/accounts/hooks/__tests__/useTriggerProviderReconnect.test.tsx b/packages/twenty-front/src/modules/settings/accounts/hooks/__tests__/useTriggerProviderReconnect.test.tsx index 43079c49c7..1db55dd2f8 100644 --- a/packages/twenty-front/src/modules/settings/accounts/hooks/__tests__/useTriggerProviderReconnect.test.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/hooks/__tests__/useTriggerProviderReconnect.test.tsx @@ -221,6 +221,34 @@ describe('useTriggerProviderReconnect', () => { ); expect(mockNavigate).not.toHaveBeenCalled(); }); + + it('should pass skipMessageChannelConfiguration option to OAuth providers', async () => { + const { result } = renderHook(() => useTriggerProviderReconnect(), { + wrapper: Wrapper, + }); + + const options = { + skipMessageChannelConfiguration: true, + messageVisibility: MessageChannelVisibility.SHARE_EVERYTHING, + }; + + await act(async () => { + await result.current.triggerProviderReconnect( + ConnectedAccountProvider.GOOGLE, + undefined, + options, + ); + }); + + expect(mockTriggerApisOAuth).toHaveBeenCalledWith( + ConnectedAccountProvider.GOOGLE, + { + ...options, + redirectLocation: '/settings/accounts', + }, + ); + expect(mockNavigate).not.toHaveBeenCalled(); + }); }); describe('error handling', () => { diff --git a/packages/twenty-front/src/modules/settings/accounts/hooks/useTriggerApiOAuth.ts b/packages/twenty-front/src/modules/settings/accounts/hooks/useTriggerApiOAuth.ts index e3dced2239..75ada170ee 100644 --- a/packages/twenty-front/src/modules/settings/accounts/hooks/useTriggerApiOAuth.ts +++ b/packages/twenty-front/src/modules/settings/accounts/hooks/useTriggerApiOAuth.ts @@ -36,11 +36,13 @@ export const useTriggerApisOAuth = () => { messageVisibility, calendarVisibility, loginHint, + skipMessageChannelConfiguration, }: { redirectLocation?: AppPath | string; messageVisibility?: MessageChannelVisibility; calendarVisibility?: CalendarChannelVisibility; loginHint?: string; + skipMessageChannelConfiguration?: boolean; } = {}, ) => { const authServerUrl = REACT_APP_SERVER_BASE_URL; @@ -66,6 +68,10 @@ export const useTriggerApisOAuth = () => { params += loginHint ? `&loginHint=${loginHint}` : ''; + params += skipMessageChannelConfiguration + ? `&skipMessageChannelConfiguration=${skipMessageChannelConfiguration}` + : ''; + redirect(`${authServerUrl}/auth/${getProviderUrl(provider)}?${params}`); }, [generateTransientToken, redirect], diff --git a/packages/twenty-front/src/pages/onboarding/SyncEmails.tsx b/packages/twenty-front/src/pages/onboarding/SyncEmails.tsx index 8a1a45314d..0b43ec9b39 100644 --- a/packages/twenty-front/src/pages/onboarding/SyncEmails.tsx +++ b/packages/twenty-front/src/pages/onboarding/SyncEmails.tsx @@ -69,6 +69,7 @@ export const SyncEmails = () => { redirectLocation: AppPath.Index, messageVisibility: visibility, calendarVisibility: calendarChannelVisibility, + skipMessageChannelConfiguration: true, }); }; diff --git a/packages/twenty-server/src/engine/core-modules/auth/controllers/google-apis-auth.controller.ts b/packages/twenty-server/src/engine/core-modules/auth/controllers/google-apis-auth.controller.ts index 9ece4d16c3..2267909555 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/controllers/google-apis-auth.controller.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/controllers/google-apis-auth.controller.ts @@ -79,6 +79,7 @@ export class GoogleAPIsAuthController { redirectLocation, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, } = user; const { workspaceMemberId, userId, workspaceId } = @@ -106,6 +107,7 @@ export class GoogleAPIsAuthController { refreshToken, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, }); if (userId) { diff --git a/packages/twenty-server/src/engine/core-modules/auth/controllers/microsoft-apis-auth.controller.ts b/packages/twenty-server/src/engine/core-modules/auth/controllers/microsoft-apis-auth.controller.ts index 2a30b41189..2aec1694b6 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/controllers/microsoft-apis-auth.controller.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/controllers/microsoft-apis-auth.controller.ts @@ -79,6 +79,7 @@ export class MicrosoftAPIsAuthController { redirectLocation, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, } = user; const { workspaceMemberId, userId, workspaceId } = @@ -113,6 +114,7 @@ export class MicrosoftAPIsAuthController { refreshToken, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, }); if (userId) { diff --git a/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-exchange-code-for-token.guard.ts b/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-exchange-code-for-token.guard.ts index d6412345ca..eb12fc6e02 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-exchange-code-for-token.guard.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-exchange-code-for-token.guard.ts @@ -53,6 +53,7 @@ export class GoogleAPIsOauthExchangeCodeForTokenGuard extends AuthGuard( redirectLocation: state.redirectLocation, calendarVisibility: state.calendarVisibility, messageVisibility: state.messageVisibility, + skipMessageChannelConfiguration: state.skipMessageChannelConfiguration, }); return (await super.canActivate(context)) as boolean; diff --git a/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-request-code.guard.ts b/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-request-code.guard.ts index cce7b9f3d0..a04c20c182 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-request-code.guard.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/guards/google-apis-oauth-request-code.guard.ts @@ -51,6 +51,8 @@ export class GoogleAPIsOauthRequestCodeGuard extends AuthGuard('google-apis') { redirectLocation: request.query.redirectLocation, calendarVisibility: request.query.calendarVisibility, messageVisibility: request.query.messageVisibility, + skipMessageChannelConfiguration: + request.query.skipMessageChannelConfiguration, loginHint: request.query.loginHint, userId: userId, workspaceId: workspaceId, diff --git a/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-exchange-code-for-token.guard.ts b/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-exchange-code-for-token.guard.ts index 624b572f26..3a85704007 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-exchange-code-for-token.guard.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-exchange-code-for-token.guard.ts @@ -45,6 +45,7 @@ export class MicrosoftAPIsOauthExchangeCodeForTokenGuard extends AuthGuard( redirectLocation: state.redirectLocation, calendarVisibility: state.calendarVisibility, messageVisibility: state.messageVisibility, + skipMessageChannelConfiguration: state.skipMessageChannelConfiguration, }); return (await super.canActivate(context)) as boolean; diff --git a/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-request-code.guard.ts b/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-request-code.guard.ts index b5c67ae3f1..2be810e7fc 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-request-code.guard.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/guards/microsoft-apis-oauth-request-code.guard.ts @@ -64,6 +64,8 @@ export class MicrosoftAPIsOauthRequestCodeGuard extends AuthGuard( redirectLocation: request.query.redirectLocation, calendarVisibility: request.query.calendarVisibility, messageVisibility: request.query.messageVisibility, + skipMessageChannelConfiguration: + request.query.skipMessageChannelConfiguration, loginHint: request.query.loginHint, }); diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/create-calendar-channel.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/create-calendar-channel.service.ts index 09945ca913..9e2fd4b406 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/create-calendar-channel.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/create-calendar-channel.service.ts @@ -18,6 +18,7 @@ export type CreateCalendarChannelInput = { handle: string; calendarVisibility?: CalendarChannelVisibility; manager: WorkspaceEntityManager; + skipMessageChannelConfiguration?: boolean; }; @Injectable() @@ -35,6 +36,7 @@ export class CreateCalendarChannelService { handle, calendarVisibility, manager, + skipMessageChannelConfiguration, } = input; const authContext = buildSystemAuthContext(workspaceId); @@ -55,8 +57,12 @@ export class CreateCalendarChannelService { handle, visibility: calendarVisibility || CalendarChannelVisibility.SHARE_EVERYTHING, - syncStatus: CalendarChannelSyncStatus.NOT_SYNCED, - syncStage: CalendarChannelSyncStage.PENDING_CONFIGURATION, + syncStatus: skipMessageChannelConfiguration + ? CalendarChannelSyncStatus.ONGOING + : CalendarChannelSyncStatus.NOT_SYNCED, + syncStage: skipMessageChannelConfiguration + ? CalendarChannelSyncStage.CALENDAR_EVENT_LIST_FETCH_PENDING + : CalendarChannelSyncStage.PENDING_CONFIGURATION, }, {}, manager, diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/create-message-channel.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/create-message-channel.service.ts index f49cdbe4cc..42468d2458 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/create-message-channel.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/create-message-channel.service.ts @@ -22,6 +22,7 @@ export type CreateMessageChannelInput = { handle: string; messageVisibility?: MessageChannelVisibility; manager: WorkspaceEntityManager; + skipMessageChannelConfiguration?: boolean; }; @Injectable() @@ -40,6 +41,7 @@ export class CreateMessageChannelService { handle, messageVisibility, manager, + skipMessageChannelConfiguration, } = input; const authContext = buildSystemAuthContext(workspaceId); @@ -63,8 +65,12 @@ export class CreateMessageChannelService { handle, visibility: messageVisibility || MessageChannelVisibility.SHARE_EVERYTHING, - syncStatus: MessageChannelSyncStatus.NOT_SYNCED, - syncStage: MessageChannelSyncStage.PENDING_CONFIGURATION, + syncStatus: skipMessageChannelConfiguration + ? MessageChannelSyncStatus.ONGOING + : MessageChannelSyncStatus.NOT_SYNCED, + syncStage: skipMessageChannelConfiguration + ? MessageChannelSyncStage.MESSAGE_LIST_FETCH_PENDING + : MessageChannelSyncStage.PENDING_CONFIGURATION, pendingGroupEmailsAction: MessageChannelPendingGroupEmailsAction.NONE, }, diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/google-apis.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/google-apis.service.ts index c0441da738..b1ce2005be 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/google-apis.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/google-apis.service.ts @@ -70,6 +70,7 @@ export class GoogleAPIsService { refreshToken: string; calendarVisibility: CalendarChannelVisibility | undefined; messageVisibility: MessageChannelVisibility | undefined; + skipMessageChannelConfiguration?: boolean; }): Promise { const { handle, @@ -77,6 +78,7 @@ export class GoogleAPIsService { workspaceMemberId, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, } = input; const isCalendarEnabled = this.twentyConfigService.get( @@ -149,6 +151,7 @@ export class GoogleAPIsService { handle, messageVisibility, manager, + skipMessageChannelConfiguration, }); if (isCalendarEnabled) { @@ -158,6 +161,7 @@ export class GoogleAPIsService { handle, calendarVisibility, manager, + skipMessageChannelConfiguration, }); } } else { diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/microsoft-apis.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/microsoft-apis.service.ts index 08ab5fbfc1..0e928fb9c9 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/microsoft-apis.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/microsoft-apis.service.ts @@ -65,6 +65,7 @@ export class MicrosoftAPIsService { refreshToken: string; calendarVisibility: CalendarChannelVisibility | undefined; messageVisibility: MessageChannelVisibility | undefined; + skipMessageChannelConfiguration?: boolean; }): Promise { const { handle, @@ -72,6 +73,7 @@ export class MicrosoftAPIsService { workspaceMemberId, calendarVisibility, messageVisibility, + skipMessageChannelConfiguration, } = input; const scopes = getMicrosoftApisOauthScopes(); @@ -130,6 +132,7 @@ export class MicrosoftAPIsService { handle, messageVisibility, manager, + skipMessageChannelConfiguration, }); if ( @@ -143,6 +146,7 @@ export class MicrosoftAPIsService { handle, calendarVisibility, manager, + skipMessageChannelConfiguration, }); } } else { diff --git a/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts b/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts index 1ebc745374..8170abcf6d 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/services/sign-in-up.service.ts @@ -272,6 +272,7 @@ export class SignInUpService { await this.activateOnboardingForUser({ user, workspace: params.workspace, + shouldShowConnectAccountStep: false, }); await this.userWorkspaceService.addUserToWorkspaceIfUserNotInWorkspace( @@ -301,20 +302,24 @@ export class SignInUpService { { user, workspace, + shouldShowConnectAccountStep, }: { user: UserEntity; workspace: WorkspaceEntity; + shouldShowConnectAccountStep: boolean; }, queryRunner?: QueryRunner, ) { - await this.onboardingService.setOnboardingConnectAccountPending( - { - userId: user.id, - workspaceId: workspace.id, - value: true, - }, - queryRunner, - ); + if (shouldShowConnectAccountStep) { + await this.onboardingService.setOnboardingConnectAccountPending( + { + userId: user.id, + workspaceId: workspace.id, + value: true, + }, + queryRunner, + ); + } if (user.firstName === '' && user.lastName === '') { await this.onboardingService.setOnboardingCreateProfilePending( @@ -515,7 +520,10 @@ export class SignInUpService { queryRunner, ); - await this.activateOnboardingForUser({ user, workspace }, queryRunner); + await this.activateOnboardingForUser( + { user, workspace, shouldShowConnectAccountStep: true }, + queryRunner, + ); await this.onboardingService.setOnboardingInviteTeamPending( { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts index 0d3b355fd7..03add995c1 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts @@ -42,6 +42,7 @@ export class GoogleAPIsOauthExchangeCodeForTokenStrategy extends GoogleAPIsOauth redirectLocation: state.redirectLocation, calendarVisibility: state.calendarVisibility, messageVisibility: state.messageVisibility, + skipMessageChannelConfiguration: state.skipMessageChannelConfiguration, }; done(null, user); diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts index cb82063a48..0249bf6f62 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts @@ -28,6 +28,8 @@ export class GoogleAPIsOauthRequestCodeStrategy extends GoogleAPIsOauthCommonStr redirectLocation: req.params.redirectLocation, calendarVisibility: req.params.calendarVisibility, messageVisibility: req.params.messageVisibility, + skipMessageChannelConfiguration: + req.params.skipMessageChannelConfiguration, }), }; diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts index 17f10a4d1c..61ee7cc563 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts @@ -42,6 +42,7 @@ export class MicrosoftAPIsOauthExchangeCodeForTokenStrategy extends MicrosoftAPI redirectLocation: state.redirectLocation, calendarVisibility: state.calendarVisibility, messageVisibility: state.messageVisibility, + skipMessageChannelConfiguration: state.skipMessageChannelConfiguration, }; done(null, user); diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts index 1dd8f9c646..a09fde0639 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts @@ -23,6 +23,8 @@ export class MicrosoftAPIsOauthRequestCodeStrategy extends MicrosoftAPIsOauthCom redirectLocation: req.params.redirectLocation, calendarVisibility: req.params.calendarVisibility, messageVisibility: req.params.messageVisibility, + skipMessageChannelConfiguration: + req.params.skipMessageChannelConfiguration, }), }; diff --git a/packages/twenty-server/src/engine/core-modules/auth/types/google-api-request.type.ts b/packages/twenty-server/src/engine/core-modules/auth/types/google-api-request.type.ts index 0fa93fc663..7bee253e95 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/types/google-api-request.type.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/types/google-api-request.type.ts @@ -19,5 +19,6 @@ export type GoogleAPIsRequest = Omit< redirectLocation?: string; calendarVisibility?: CalendarChannelVisibility; messageVisibility?: MessageChannelVisibility; + skipMessageChannelConfiguration?: boolean; }; }; diff --git a/packages/twenty-server/src/engine/core-modules/auth/types/microsoft-api-request.type.ts b/packages/twenty-server/src/engine/core-modules/auth/types/microsoft-api-request.type.ts index b84c28ba7b..5b233069d4 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/types/microsoft-api-request.type.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/types/microsoft-api-request.type.ts @@ -19,5 +19,6 @@ export type MicrosoftAPIsRequest = Omit< redirectLocation?: string; calendarVisibility?: CalendarChannelVisibility; messageVisibility?: MessageChannelVisibility; + skipMessageChannelConfiguration?: boolean; }; }; diff --git a/packages/twenty-server/src/engine/core-modules/auth/utils/google-apis-set-request-extra-params.util.ts b/packages/twenty-server/src/engine/core-modules/auth/utils/google-apis-set-request-extra-params.util.ts index 2266f69448..8d29124d22 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/utils/google-apis-set-request-extra-params.util.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/utils/google-apis-set-request-extra-params.util.ts @@ -12,6 +12,7 @@ type GoogleAPIsRequestExtraParams = { loginHint?: string; userId?: string; workspaceId?: string; + skipMessageChannelConfiguration?: string; }; export const setRequestExtraParams = ( @@ -26,6 +27,7 @@ export const setRequestExtraParams = ( loginHint, userId, workspaceId, + skipMessageChannelConfiguration, } = params; if (!transientToken) { @@ -60,4 +62,9 @@ export const setRequestExtraParams = ( if (workspaceId) { request.params.workspaceId = workspaceId; } + + if (skipMessageChannelConfiguration) { + request.params.skipMessageChannelConfiguration = + skipMessageChannelConfiguration; + } };