Developers

Analytics

What are we tracking?

We use PostHog for analytics in both the web and desktop applications. The web application also uses Outlit for pageview tracking. You can opt-out from the settings menu in the desktop app.

User Journey Events

1. Visiting the Website

Events tracked on the web app (apps/web):

EventDescriptionProperties
download_clickedUser clicks a download buttonplatform, spec, source, timestamp
reminder_requestedUser requests a mobile reminderplatform, timestamp, email
os_waitlist_joinedUser joins waitlist for Linux/Windowsplatform, timestamp, email

The web app also has PostHog autocapture and pageview tracking enabled.

2. Getting Started

Events tracked when users first launch the desktop app:

EventDescriptionProperties
show_main_windowMain window is shown (fires on every app launch)-
account_skippedUser proceeds without account (local mode)-
user_signed_inUser signs in (triggers $identify to link anonymous ID)-
ai_provider_configuredUser configures an AI providerprovider
data_importedUser imports data from another appsource
trial_startedUser starts a trialplan

3. Before Meetings

Events tracked when preparing for meetings:

EventDescriptionProperties
note_createdUser creates a new notehas_event_id (whether linked to calendar)
file_uploadedUser uploads a filefile_type (audio/transcript), token_count

4. During Meetings

Events tracked during active sessions:

EventDescriptionProperties
session_startedListening session startshas_calendar_event
tab_openedUser opens a tabview (tab type)
search_performedUser performs a search-

5. After Meetings

Events tracked when working with completed sessions:

EventDescriptionProperties
note_editedUser edits a notehas_content
note_enhancedAI enhancement is triggeredis_auto, template_id
message_sentUser sends a chat message-
session_exportedUser exports a sessionformat (pdf/vtt), view_type, has_transcript, has_enhanced, has_memo, word_count
session_deletedUser deletes a session/noteincludes_recording
recording_deletedUser deletes a recording-

6. Settings & Account Management

Events tracked when managing settings and account:

EventDescriptionProperties
settings_changedUser changes settingsautostart, notification_detect, save_recordings, telemetry_consent
upgrade_clickedUser clicks upgrade buttonplan
user_signed_outUser signs out-

7. Notification Interactions

Events tracked when users interact with system notifications:

EventDescriptionProperties
collapsed_confirmUser clicks collapsed notification to open app-
expanded_acceptUser accepts expanded notification-
dismissUser dismisses notification-
collapsed_timeoutCollapsed notification times out-

User Properties

Properties set to track user context and configuration:

PropertyDescriptionType
is_local_modeWhether user is in local-only modeset
is_signed_upWhether user has signed upset
platformOperating system (macos, linux, windows)set
os_versionOperating system versionset
app_versionApplication versionset
account_created_dateWhen account was createdset_once
telemetry_opt_outWhether user opted out of telemetryset
has_configured_aiWhether user has configured an AI providerset
planCurrent subscription planset
trial_end_dateWhen trial endsset

Analytics Commands

Available methods for tracking events and properties:

  • event(payload) - Track a custom event with optional properties
  • setProperties(payload) - Set user properties (supports set and set_once types)
  • identify(userId, payload) - Link anonymous device ID to authenticated user ID using PostHog's $identify event
  • setDisabled(disabled) - Enable or disable analytics tracking
  • isDisabled() - Check if analytics is currently disabled

User Identification

When a user signs in, the identify command is called to link their anonymous device ID (machine fingerprint) to their authenticated user ID. This uses PostHog's $identify event with the $anon_distinct_id property, enabling:

  • Attribution of pre-login activity to the authenticated user
  • Unified user profiles across anonymous and authenticated sessions
  • Accurate conversion funnel analysis from first visit to active usage

The identification flow works as follows: before sign-in, events are tracked using the device fingerprint as the distinct ID. Upon successful authentication, identify(userId, payload) is called, which sends a $identify event to PostHog with both the new user ID and the anonymous device ID, merging the two identities.

Conversion Funnel Tracking

To track the user journey from website visit to active usage, use PostHog's funnel analysis with these key events:

  1. download_clicked (web) - User downloads the app
  2. show_main_window (desktop) - User launches the app
  3. user_signed_in (desktop) - User signs in (triggers identity merge)
  4. note_created (desktop) - User creates their first note
  5. note_enhanced (desktop) - User uses AI enhancement

PostHog's $identify event links anonymous device IDs to authenticated user IDs, enabling accurate conversion analysis across the entire user journey.

How to make changes?

See .cursor/commands/add-analytics.md for detailed instructions.