You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Neither the Umami funnel side nor the Convex side can currently answer "did the Pro Activation onboarding wizard (#5534, extended by #5564) improve feature adoption?" — not because the mechanism is broken, but because no durable, queryable outcome record exists.
Current state
trackProActivation() (src/services/analytics.ts) fires entered/stepConfirmed/stepSkipped/exit events to self-hosted Umami with planKey/step/aggregate exit counts only — no userId, so it cannot be joined against Convex feature-usage data per subscriber.
Convex has no table recording "did this subscription's activation flow complete, and what did they do" — proActivationPresentations (added in feat(activation): onboard unactivated first-cycle Pro users #5564) only tracks the cross-device claim/lease (claimNonce, claimedAt, presentedAt), not step-level outcome.
Extend proActivationPresentations with outcome fields: confirmedSteps: v.optional(v.array(v.string())), skippedSteps: v.optional(v.array(v.string())), exitedAt: v.optional(v.number()). Wire ProActivationInterstitial.ts's exit handler to persist this via a new/extended Convex mutation, alongside (not instead of) the existing Umami event.
Analysis query/script joining proActivationPresentations rows against notificationChannels/alertRules/userApiKeys/mcpProTokens_creationTime for the same userId, filtered to createdAt > exitedAt within a configurable window (start with 14d).
Comparison group: subscribers with confirmedSteps.length > 0 vs. subscribers with presentedAt set but zero confirmed steps (saw the wizard, skipped everything) — both groups are equally eligible/exposed, so this isolates an engagement effect without a true control arm.
Start as an on-demand script (scripts/report-activation-lift.mjs or similar) rather than a live dashboard; upgrade later if useful.
Non-goals for v1
No live dashboard.
No true randomized control (would mean deliberately not onboarding some eligible users — not proposing that).
Reviewing PR #5564, when asked whether onboarding measurably improves feature adoption — answer was "no data exists to say either way yet," which surfaced this gap.
Summary
Neither the Umami funnel side nor the Convex side can currently answer "did the Pro Activation onboarding wizard (#5534, extended by #5564) improve feature adoption?" — not because the mechanism is broken, but because no durable, queryable outcome record exists.
Current state
trackProActivation()(src/services/analytics.ts) firesentered/stepConfirmed/stepSkipped/exitevents to self-hosted Umami withplanKey/step/aggregate exit counts only — nouserId, so it cannot be joined against Convex feature-usage data per subscriber.proActivationPresentations(added in feat(activation): onboard unactivated first-cycle Pro users #5564) only tracks the cross-device claim/lease (claimNonce,claimedAt,presentedAt), not step-level outcome.notificationChannels/alertRules/userApiKeys/mcpProTokens_creationTime(done during feat(activation): onboard unactivated first-cycle Pro users #5564's review, see PR comments) found only 8 events in the ~13.6h post-feat(activation): day-0 pro activation onboarding interstitial #5534-launch window — nowhere near enough sample to say anything, and with no way to attribute which of those 8 came from someone who actually went through the wizard.Proposal
proActivationPresentationswith outcome fields:confirmedSteps: v.optional(v.array(v.string())),skippedSteps: v.optional(v.array(v.string())),exitedAt: v.optional(v.number()). WireProActivationInterstitial.ts's exit handler to persist this via a new/extended Convex mutation, alongside (not instead of) the existing Umami event.proActivationPresentationsrows againstnotificationChannels/alertRules/userApiKeys/mcpProTokens_creationTimefor the sameuserId, filtered tocreatedAt > exitedAtwithin a configurable window (start with 14d).confirmedSteps.length > 0vs. subscribers withpresentedAtset but zero confirmed steps (saw the wizard, skipped everything) — both groups are equally eligible/exposed, so this isolates an engagement effect without a true control arm.scripts/report-activation-lift.mjsor similar) rather than a live dashboard; upgrade later if useful.Non-goals for v1
Found while
Reviewing PR #5564, when asked whether onboarding measurably improves feature adoption — answer was "no data exists to say either way yet," which surfaced this gap.