Activation Metrics
Event taxonomy and funnel definitions for onboarding and first-session activation.
Activation is the moment a new user gets real value, not just a page view.
For Noosaga, the current activation north star is:
first_workflow_article_completed
Why: it confirms the user moved from browsing to generating and consumed the first meaningful learning artifact.
Event Taxonomy
The onboarding flow emits the following activation events:
| Event | Trigger | Goal |
|---|---|---|
first_map_generation_started | User starts first field generation from empty state | Measure top-of-funnel intent |
first_map_generation_completed | First generated map becomes available | Measure first value delivery |
first_workflow_article_completed | First framework article is generated in workflow | Measure deep activation |
empty_field_viewed | User lands on an unmapped subfield empty state | Quantify dead-end exposure |
login_prompt_shown | Login requirement is visibly shown before generation/workflow | Separate auth friction from generation friction |
login_started | User clicks a login CTA and OAuth flow starts | Measure auth intent |
login_completed | Session returns authenticated after a tracked login start | Measure auth completion |
next_best_action_cta_clicked | User clicks CTA in dynamic "Next best action" strip | Measure guidance engagement |
landing_view | User opens homepage | Top-of-funnel traffic |
blog_viewed | User opens a blog page | Blog entry attribution |
field_selected | User selects a field (search or picker) | Intent to explore |
explore_view | User opens explore page | Explore entry |
workflow_start_clicked | User starts the workflow | Activation intent |
verify_started | Verification queue started | Step 1 progression |
relations_started | Relations queue started | Step 2 progression |
framework_article_ready | Framework article became available | Time-to-value milestone |
concept_map_ready | Concept map became available | Deep content completion |
first_quiz_submitted | First quiz interaction submitted | Learning engagement |
session_returned_d1 | Returning session after 24h | Early retention |
onboarding_variant_assigned | User is assigned guided or full onboarding variant | Experiment attribution |
Event Properties
Global enrichment (all activation events):
entry_surface(guides|explore|blog|other)entry_path(first tracked route path in session)current_surface(surface for the current event page)
first_map_generation_started
subfielddisciplinesource(currentlyempty_field_state)field_state(alwaysunmapped)is_logged_in
first_map_generation_completed
subfielddisciplineframework_countfield_state(alwaysmapped)is_logged_in
first_workflow_article_completed
subfieldframework_idframework_labelfield_state(mappedorunmapped)is_logged_in
empty_field_viewed
subfielddisciplinereferrerfield_state(alwaysunmapped)is_logged_in
login_prompt_shown
source(for exampleempty_field_state,next_best_action_workflow)subfielddisciplineframework_id(when applicable)field_stateis_logged_in
login_started
source(for exampleempty_field_state,next_best_action_first_map)subfielddisciplinefield_stateis_logged_in
login_completed
sourcestarted_subfieldstarted_disciplinesubfielddisciplineelapsed_msfield_stateis_logged_in
next_best_action_cta_clicked
action_id(for examplegenerate_first_map,start_verification,start_article)cta_labelsubfieldframework_idis_logged_in
onboarding_variant_assigned
variant(guidedorfull)
Funnel Definition
Use this baseline activation funnel:
first_map_generation_startedfirst_map_generation_completedfirst_workflow_article_completed
Track conversion rates and median time between each step.
Extended first-session funnel:
landing_viewfield_selectedexplore_viewworkflow_start_clickedverify_startedrelations_startedframework_article_readyconcept_map_readyfirst_quiz_submitted
Auth funnel (parallel diagnostic funnel):
login_prompt_shownlogin_startedlogin_completed
Suggested Weekly Checks
- Start → Complete conversion (
first_map_generation_startedtofirst_map_generation_completed) - Complete → Article conversion (
first_map_generation_completedtofirst_workflow_article_completed) - Median time to first map completion
- Median time to first workflow article
- Most-clicked
next_best_action_cta_clicked.action_idvalues - Explore abandonment:
explore_viewwith noworkflow_start_clicked - Empty field rate:
empty_field_viewed/explore_view - Login prompt to completion:
login_prompt_shown->login_started->login_completed - D1 return rate from
session_returned_d1
Segmentation
Use these dimensions for funnel cuts:
field_state(mappedvsunmapped) to compare users who start on populated fields vs empty fields.entry_surface(guides,explore,blog,other) to segment by first interaction channel.entry_pathfor the first tracked route path within the session.
First Experiment To Run
Test whether the default onboarding CTA should prioritize immediate generation or immediate framework selection:
- Variant A: current behavior
- Variant B: emphasize "Select First Framework" immediately after map completion
Success metric: increase in first_workflow_article_completed rate within the first session.
Internal Endpoint
Activation events are also mirrored to an internal endpoint:
POST /api/eventsreceives client events (same-origin + analytics-consent gated)- Invalid payloads and no-consent requests are ignored with
204to stay non-blocking for UX.
- Invalid payloads and no-consent requests are ignored with
GET /api/events?windowMinutes=...&name=...returns an aggregated summary for admin sessions only- Admin check uses NextAuth session email matching
ADMIN_EMAIL.
- Admin check uses NextAuth session email matching
- Storage is in-memory (
activationEventsStore) with 30-day retention and a 100k event cap, intended for lightweight internal diagnostics.
Take action in the app
Put what you just read into practice.