Files
chat_web_app/llm-fe/ANALYTICS.md
T
westfarn 9105a99935
Unit Tests / test (pull_request) Successful in 11s
Add subscription upgrade/change/cancel UX and account self-delete (#75)
Surface Upgrade, Change plan, and Cancel on Account billing (portal-first),
plan picker when multiple public plans exist, complimentary-safe messaging,
and Danger Zone self-delete against DELETE /user/ (backend #34).
2026-08-01 14:15:11 -05:00

2.2 KiB

Tianji product events (Hesychia)

Helpers: llm-fe/src/llm-fe/utils/analytics.ts
Consent gate: custom events + identify only when hesychia_analytics_consent* is granted (see #37).
Page views: always via Tracker / tracker.js on prod + beta.

Event catalog

Event name Constant Call site(s) Payload (non-PII)
Login Success LOGIN_SUCCESS SignIn, AuthCallback { method: 'password' | 'sso' }
Login Failed LOGIN_FAILED SignIn, AuthCallback { method }
Sign Up Started SIGNUP_STARTED SignUp
Sign Up Success SIGNUP_SUCCESS SignUp, AuthCallback (created) { method? }
Sign Up Failed SIGNUP_FAILED SignUp, AuthCallback { method? }
Logout LOGOUT AnalyticsSession (auth → logged out)
Checkout Started CHECKOUT_STARTED SignUp, AuthCallback { source }
Payment Success PAYMENT_SUCCESS BillingSuccess { hasSessionId }
Payment Canceled PAYMENT_CANCELED BillingCancel
Conversation Created CONVERSATION_CREATED MessageContext { conversationId }
Message Sent MESSAGE_SENT AsyncDashboard2 { hasConversation, hasAttachment }
ToS Acknowledged TOS_ACKNOWLEDGED TermsOfService
Billing Portal Opened BILLING_PORTAL_OPENED BillingSection (Account) { intent? }
Subscription Upgrade Started SUBSCRIPTION_UPGRADE_STARTED BillingSection, UsageSummaryCard { source, plan_slug? }
Plan Change Started PLAN_CHANGE_STARTED BillingSection { source, plan_slug? }
Subscription Cancel Started SUBSCRIPTION_CANCEL_STARTED BillingSection { source: 'portal' }
Account Delete Started ACCOUNT_DELETE_STARTED DeleteAccountSection
Account Delete Success ACCOUNT_DELETE_SUCCESS DeleteAccountSection
Account Delete Failed ACCOUNT_DELETE_FAILED DeleteAccountSection

Identify

identifyAccount(account) sends { userId: email, companyId?, isCompanyManager? }.
No message text, document contents, or names.

Environments

Only prod/beta (REACT_APP_DEPLOY_ENV or production build with Tianji website id). Local dev skips unless env set.