diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/listeners/telemetry.listener.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/listeners/telemetry.listener.ts index 6fa2751ec..c5bc7fc9c 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/listeners/telemetry.listener.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/listeners/telemetry.listener.ts @@ -24,4 +24,21 @@ export class TelemetryListener { '', ); } + + @OnEvent('user.signup') + async handleUserSignup(payload: ObjectRecordCreateEvent) { + await this.analyticsService.create( + { + type: 'track', + data: { + eventName: 'user.signup', + }, + }, + payload.userId, + payload.workspaceId, + '', + '', + '', + ); + } } diff --git a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts index 33aad64e7..bdeaa7535 100644 --- a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts @@ -34,6 +34,13 @@ export class UserWorkspaceService extends TypeOrmQueryService { workspaceId, }); + const payload = new ObjectRecordCreateEvent(); + + payload.workspaceId = workspaceId; + payload.userId = userId; + + this.eventEmitter.emit('user.signup', payload); + return this.userWorkspaceRepository.save(userWorkspace); }