Skip to Content
Living documentation — last reviewed 2026-05-28
FeaturesEvent TrackingEvent Tracking — Code Map

Event Tracking — Code Map

API

FileRole
apps/api/src/event-tracking/event-tracking.module.tsGlobal module; exports EventTrackingService
apps/api/src/event-tracking/event-tracking.service.tsFacade: track, identify, onModuleDestroy

Callers (known)

  • apps/api/src/announcements/announcements.service.ts — track('announcement_published', ...)
  • apps/api/src/payments/payment-observability.service.ts (or equivalent) — delegates PostHog capture
  • ProgrammingEvents (libs/shared/src/lib/analytics/programming-events.ts) callers:
    • apps/api/src/workouts/workouts.service.ts — create() (workout_created, always) and setSections() (workout_created, only when dto.source is given)
    • apps/api/src/class-sessions/class-sessions.service.ts — createInlineWorkout() (workout_created, source: 'quick')
    • apps/api/src/daily-programming/daily-programming.service.ts — set() / setStatus() (wod_published)
    • apps/api/src/exercises/exercise-overrides.service.ts — upsertOverride() (movement_customized, movement_video_replaced)
    • apps/api/src/workout-results/workout-results.service.ts — create() (workout_done)
    • apps/api/src/ai/parse/parse-commit.service.ts — passes source: 'paste' into WorkoutsService.create/setSections (does not call EventTrackingService itself)
    • Web (client-side posthog.capture, not through this API service): apps/web/src/components/overview/schedule/add-workout-popover.tsx and session-detail-sheet.tsx (wod_post_started/wod_post_completed), apps/web/src/components/overview/workouts/workout-builder/use-builder-save.ts (wod_post_completed for the builder entry, plus workout_created.source), apps/web/src/components/member/workouts/workout-detail-drawer.tsx (whiteboard_opened), apps/web/src/components/shared/prescription/prescribed-section.tsx (movement_demo_opened)

Dependencies

  • posthog-node (vendor SDK).

Config

EnvPurpose
NODE_ENVRequired production for any network call
POSTHOG_API_KEYAPI key
POSTHOG_HOSTOptional; default https://eu.i.posthog.com