feat(memoro/web, shared-utils): add MemoroEvents analytics tracking

Define 25+ Memoro-specific events in shared-utils analytics (recording, memo CRUD, spaces, invites, playback, themes).
Integrate tracking in web app services, components, and stores.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-01 15:18:30 +02:00
parent 304c1e8b7c
commit 1bc134ed6e
7 changed files with 54 additions and 0 deletions

View file

@ -441,6 +441,39 @@ export const SubscriptionEvents = {
trialEnded: (converted: boolean) => trackEvent('trial_ended', { converted }),
};
/**
* Memoro App Events
*/
export const MemoroEvents = {
memoCreated: (mediaType?: string) =>
trackEvent('memo_created', mediaType ? { media_type: mediaType } : undefined),
memoDeleted: () => trackEvent('memo_deleted'),
memoCombined: (count: number) => trackEvent('memo_combined', { memo_count: count }),
memoQuestioned: () => trackEvent('memo_questioned'),
recordingStarted: () => trackEvent('recording_started'),
recordingCompleted: (durationSeconds: number) =>
trackEvent('recording_completed', { duration_seconds: durationSeconds }),
recordingAppended: () => trackEvent('recording_appended'),
transcriptionRetried: () => trackEvent('transcription_retried'),
headlineRetried: () => trackEvent('headline_retried'),
spaceCreated: () => trackEvent('space_created'),
spaceDeleted: () => trackEvent('space_deleted'),
spaceLeft: () => trackEvent('space_left'),
memoLinkedToSpace: () => trackEvent('memo_linked_to_space'),
memoUnlinkedFromSpace: () => trackEvent('memo_unlinked_from_space'),
inviteSent: () => trackEvent('invite_sent'),
inviteAccepted: () => trackEvent('invite_accepted'),
inviteDeclined: () => trackEvent('invite_declined'),
meetingBotCreated: (platform: string) => trackEvent('meeting_bot_created', { platform }),
meetingBotStopped: () => trackEvent('meeting_bot_stopped'),
recordingToMemo: () => trackEvent('recording_to_memo'),
blueprintSelected: (blueprintId: string) =>
trackEvent('blueprint_selected', { blueprint_id: blueprintId }),
playbackStarted: () => trackEvent('playback_started'),
settingsUpdated: (setting: string) => trackEvent('settings_updated', { setting }),
themeChanged: (theme: string) => trackEvent('theme_changed', { theme }),
};
/**
* General App Events
*/