diff --git a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts index 40bbe9246a..a26ef22e4b 100644 --- a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts +++ b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts @@ -700,6 +700,50 @@ describe('TelemetryEventRelay', () => { }); }); + it('should track on `workflow-archived` event', () => { + const event: RelayEventMap['workflow-archived'] = { + user: { + id: 'user123', + email: 'user@example.com', + firstName: 'John', + lastName: 'Doe', + role: 'global:owner', + }, + workflowId: 'workflow123', + publicApi: false, + }; + + eventService.emit('workflow-archived', event); + + expect(telemetry.track).toHaveBeenCalledWith('User archived workflow', { + user_id: 'user123', + workflow_id: 'workflow123', + public_api: false, + }); + }); + + it('should track on `workflow-unarchived` event', () => { + const event: RelayEventMap['workflow-unarchived'] = { + user: { + id: 'user123', + email: 'user@example.com', + firstName: 'John', + lastName: 'Doe', + role: 'global:owner', + }, + workflowId: 'workflow123', + publicApi: false, + }; + + eventService.emit('workflow-unarchived', event); + + expect(telemetry.track).toHaveBeenCalledWith('User unarchived workflow', { + user_id: 'user123', + workflow_id: 'workflow123', + public_api: false, + }); + }); + it('should track on `workflow-deleted` event', () => { const event: RelayEventMap['workflow-deleted'] = { user: { diff --git a/packages/cli/src/events/relays/telemetry.event-relay.ts b/packages/cli/src/events/relays/telemetry.event-relay.ts index 6c7aba8f65..6c810ca898 100644 --- a/packages/cli/src/events/relays/telemetry.event-relay.ts +++ b/packages/cli/src/events/relays/telemetry.event-relay.ts @@ -77,6 +77,8 @@ export class TelemetryEventRelay extends EventRelay { 'ldap-login-sync-failed': (event) => this.ldapLoginSyncFailed(event), 'login-failed-due-to-ldap-disabled': (event) => this.loginFailedDueToLdapDisabled(event), 'workflow-created': (event) => this.workflowCreated(event), + 'workflow-archived': (event) => this.workflowArchived(event), + 'workflow-unarchived': (event) => this.workflowUnarchived(event), 'workflow-deleted': (event) => this.workflowDeleted(event), 'workflow-sharing-updated': (event) => this.workflowSharingUpdated(event), 'workflow-saved': async (event) => await this.workflowSaved(event), @@ -532,6 +534,26 @@ export class TelemetryEventRelay extends EventRelay { }); } + private workflowArchived({ user, workflowId, publicApi }: RelayEventMap['workflow-archived']) { + this.telemetry.track('User archived workflow', { + user_id: user.id, + workflow_id: workflowId, + public_api: publicApi, + }); + } + + private workflowUnarchived({ + user, + workflowId, + publicApi, + }: RelayEventMap['workflow-unarchived']) { + this.telemetry.track('User unarchived workflow', { + user_id: user.id, + workflow_id: workflowId, + public_api: publicApi, + }); + } + private workflowDeleted({ user, workflowId, publicApi }: RelayEventMap['workflow-deleted']) { this.telemetry.track('User deleted workflow', { user_id: user.id,