diff --git a/src/frontend/src/features/rooms/components/Conference.tsx b/src/frontend/src/features/rooms/components/Conference.tsx index d7c5b5f1..30b484ad 100644 --- a/src/frontend/src/features/rooms/components/Conference.tsx +++ b/src/frontend/src/features/rooms/components/Conference.tsx @@ -230,7 +230,13 @@ export const Conference = ({ onDisconnected={(e) => { switch (e) { case DisconnectReason.CLIENT_INITIATED: - navigateTo('feedback') + navigateTo( + 'feedback', + {}, + { + state: { room_id: roomId }, + } + ) return case DisconnectReason.DUPLICATE_IDENTITY: case DisconnectReason.PARTICIPANT_REMOVED: @@ -238,7 +244,7 @@ export const Conference = ({ 'feedback', {}, { - state: { reason: e }, + state: { reason: e, room_id: roomId }, } ) return diff --git a/src/frontend/src/features/rooms/components/Rating.tsx b/src/frontend/src/features/rooms/components/Rating.tsx index 891c44ea..d405d961 100644 --- a/src/frontend/src/features/rooms/components/Rating.tsx +++ b/src/frontend/src/features/rooms/components/Rating.tsx @@ -73,9 +73,11 @@ const labelRecipe = cva({ const OpenFeedback = ({ posthog, onNext, + metadata, }: { posthog: PostHog onNext: () => void + metadata?: Record }) => { const { t } = useTranslation('rooms', { keyPrefix: 'openFeedback' }) const [feedback, setFeedback] = useState('') @@ -87,9 +89,9 @@ const OpenFeedback = ({ const onSubmit = () => { try { - posthog.capture('survey sent', { - $survey_id: '01933c5a-5a1d-0000-ada8-e39f5918c2d4', - $survey_response: feedback, + posthog.capture('open-feedback', { + feedback, + ...metadata, }) } catch (e) { console.warn(e) @@ -140,10 +142,12 @@ const OpenFeedback = ({ const RateQuality = ({ posthog, onNext, + metadata, maxRating = 7, }: { posthog: PostHog onNext: () => void + metadata?: Record maxRating?: number }) => { const { t } = useTranslation('rooms', { keyPrefix: 'rating' }) @@ -155,9 +159,9 @@ const RateQuality = ({ const onSubmit = () => { try { - posthog.capture('survey sent', { - $survey_id: '01933c22-d005-0000-b623-20b752171e2e', - $survey_response: `${selectedRating}`, + posthog.capture('quality-rating', { + rating: selectedRating, + ...metadata, }) } catch (e) { console.warn(e) @@ -299,7 +303,7 @@ const AuthenticationMessage = ({ ) } -export const Rating = () => { +export const Rating = ({ roomId }: { roomId?: string }) => { const isAnalyticsEnabled = useIsAnalyticsEnabled() const posthog = usePostHog() @@ -309,14 +313,36 @@ export const Rating = () => { const [step, setStep] = useState(0) + const sessionId = useMemo(() => crypto.randomUUID(), []) + + const metadata = useMemo( + () => ({ + session_id: sessionId, + room_id: roomId, + }), + [roomId, sessionId] + ) + if (!isAnalyticsEnabled) return if (step == 0) { - return setStep(step + 1)} /> + return ( + setStep(step + 1)} + metadata={metadata} + /> + ) } if (step == 1) { - return setStep(step + 1)} /> + return ( + setStep(step + 1)} + metadata={metadata} + /> + ) } if (step == 2) { diff --git a/src/frontend/src/features/rooms/routes/Feedback.tsx b/src/frontend/src/features/rooms/routes/Feedback.tsx index fdcbb307..8d0b6e2f 100644 --- a/src/frontend/src/features/rooms/routes/Feedback.tsx +++ b/src/frontend/src/features/rooms/routes/Feedback.tsx @@ -43,6 +43,11 @@ export const FeedbackRoute = () => { } }, []) + const roomId = useMemo(() => { + const state = window.history.state + return state?.room_id + }, []) + const showBackButton = reasonKey !== DisconnectReasonKey.ParticipantRemoved return ( @@ -60,7 +65,7 @@ export const FeedbackRoute = () => { {t('feedback.home')} - +