diff --git a/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts b/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts index 59ca50f9c1..cb45ff9bdc 100644 --- a/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts +++ b/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts @@ -50,6 +50,12 @@ vi.mock('@/platform/remoteConfig/remoteConfig', () => ({ vi.mock('posthog-js', () => hoisted.mockPosthog) +vi.mock('@/platform/cloud/subscription/composables/useSubscription', () => ({ + useSubscription: () => ({ + subscriptionTier: { value: null } + }) +})) + import { PostHogTelemetryProvider } from './PostHogTelemetryProvider' function createProvider( diff --git a/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts b/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts index f57c178e91..e57dcbfbad 100644 --- a/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts +++ b/src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts @@ -2,6 +2,7 @@ import type { PostHog } from 'posthog-js' import { watch } from 'vue' import { useCurrentUser } from '@/composables/auth/useCurrentUser' +import { useSubscription } from '@/platform/cloud/subscription/composables/useSubscription' import { remoteConfig } from '@/platform/remoteConfig/remoteConfig' import type { RemoteConfig } from '@/platform/remoteConfig/types' @@ -119,6 +120,7 @@ export class PostHogTelemetryProvider implements TelemetryProvider { useCurrentUser().onUserResolved((user) => { if (this.posthog && user.id) { this.posthog.identify(user.id) + this.setSubscriptionProperties() } }) }) @@ -211,6 +213,19 @@ export class PostHogTelemetryProvider implements TelemetryProvider { ) } + private setSubscriptionProperties(): void { + const { subscriptionTier } = useSubscription() + watch( + subscriptionTier, + (tier) => { + if (tier && this.posthog) { + this.posthog.people.set({ subscription_tier: tier }) + } + }, + { immediate: true } + ) + } + trackSignupOpened(): void { this.trackEvent(TelemetryEvents.USER_SIGN_UP_OPENED) }