Analytics & Operations

Builder Analytics & Activation Tracking

Track your builder's activation journey, from signup through first app creation and publication. Understand conversion funnel metrics and identify where users get stuck.

|View as Markdown
1 min read
#analytics#activation#funnel#builder-journey#product-metrics

Chipp automatically tracks your builder journey from signup through activation milestones like app creation, configuration, publication, and first user chat. This helps Chipp operators understand activation patterns and identify where builders get stuck.

ℹ️

For Chipp operators only. These analytics are internal builder-product metrics, visible only to Chipp admins at https://build.chipp.ai/admin/builder-funnel. End-user analytics for your deployed app are tracked separately via Chipp Insights — see Analytics & Chat History.


What Gets Tracked

The builder activation beacon captures your journey across three layers:

1. Browser Session & Navigation

When you load build.chipp.ai:

  • Session ID — a unique, persistent anonymous identifier per browser per session
  • Distinct ID — a stable, per-browser anonymous ID that links all your pre-signup activity to your account after you sign up
  • Acquisition data — landing URL, referrer, UTM parameters (source, medium, campaign, term, content)
  • Pages visited — every route change and active time spent on each page
  • Scrolling & interaction — scroll-depth milestones (25%, 50%, 75%, 100% of page), clicks on labeled elements, and multiple rapid clicks (rage-click detection)
  • Active duration — time spent with the browser tab visible (backgrounded tabs don’t count against your active time)

2. Server-Side Activation Milestones

Durable events are created server-side at key activation steps:

  • Signup completed — recorded when your account is created
  • Onboarding started / completed — when you begin or finish the builder tutorial
  • First app creation started / failed — the first time you attempt to create an application
  • First app creation succeeded — your first successful application creation
  • App configuration saved — settings updated on an app
  • App published — an app goes live
  • First builder preview chat — you test your app via the builder’s preview chat
  • First end-user agent chat — an end-user (not you) sends the first message to your agent
  • First knowledge source add started / failed — the first time you attempt to add a knowledge source
  • First knowledge source add succeeded — your first successful knowledge source creation

3. Error & Context Capture

We also capture:

  • Unhandled JavaScript errors — client-side exceptions and promise rejections during your session, with stack traces
  • Tier-gate and feature-flag events — when a feature is not available due to your plan tier
  • Tier-gate & error messages — error context for failed operations

What Gets Redacted

Never captured:

  • Passwords, API keys, or authentication tokens
  • Prompt text, message content, or uploaded documents
  • Form values or arbitrary DOM text (we only track semantic element IDs like data-testid)
  • Raw query strings containing sensitive values (codes, session IDs, OTP tokens) — these are stripped from URLs before storage

Acquisition fields (landing URL, referrer, UTM) are sanitized to remove query params matching sensitive names (auth, token, secret, code, otp, credential, jwt, apikey, etc.).


Anonymous-to-Identified Stitching

Your pre-signup browser activity is linked to your account after signup via a persistent distinctId:

  1. Before signup: your browser generates a random, persistent anonymous ID (stored locally)
  2. During signup: you create an account with an email address
  3. After signup: we link all your pre-signup events to your new account
  4. On future visits: the same browser is recognized, and future sessions are linked automatically

This means Chipp can see your ENTIRE journey — from the first time you landed on build.chipp.ai through to your first app creation — even if signup took multiple browser sessions or you visited from different devices.

If you clear your browser storage (cookies, localStorage), you’ll generate a new anonymous ID, and future sessions won’t be linked to your pre-cleared history.


Do Not Track (DNT) & Global Privacy Control (GPC)

If your browser sends a DNT: 1 header or Sec-GPC: 1 signal, the builder beacon respects it:

  • Your events are NOT sent to our analytics pipeline
  • The request gets a 204 No Content response and is immediately discarded
  • No events land in our database

The beacon respects your browser’s consent preferences if your site has a consent banner. Out of the box, the beacon starts enabled — if you’d like to require explicit consent before beacon events fire, reach out to support.


Data Retention & Deletion

Retention Policy

Builder journey events are retained for analytics purposes:

  • Active builder accounts: indefinite (useful for understanding activation patterns across cohorts)
  • Deleted builder accounts: purged completely as part of your account deletion
  • Raw Loki logs: 30 days

Account Deletion

When a Chipp builder requests account deletion:

  1. All builder journey events (anonymous and identified) are deleted
  2. Analytics milestone records tied to your account are deleted
  3. Distinct IDs that map to your account are cleared
  4. This applies to any events during pre-signup, onboarding, or activation

See Account Deletion for full GDPR/deletion-request details.


Feature Flag Noise Suppression

Feature flag evaluations can fire hundreds of times during normal app usage (every time you navigate, open a modal, check a feature gate, etc.). To prevent the raw volume from overwhelming the builder journey view:

  • Write-side dedup: the first feature-flag evaluation within a 60-second window per flag per session is recorded; identical re-evaluations are dropped
  • Read-side summary: even if some duplicates land, the journey view collapses all feature_flag_evaluated events into a single summary (count, distinct flags, first/last timestamp)

This keeps the journey view readable while preserving full fidelity in production logs for debugging.


Event Contracts & Design

All events include:

  • timestamp — server-assigned wall-clock time at capture
  • clientTimestamp — client-asserted time (for clock-skew awareness)
  • sessionId — ordered session identifier for correlation
  • seq — monotonic sequence number for page loads within a session (for ordering)
  • distinctId — pre-auth anonymous identifier
  • userId — your account ID (set after signup)
  • organizationId — your organization ID
  • properties — event-specific fields

Event Types

Session & Navigation:

  • session_started — session begins, includes acquisition fields
  • page_viewed — page load or route change, includes scroll-depth reset
  • element_clicked — semantic click on a labeled element (data-testid)
  • element_rage_clicked — 3+ rapid clicks on the same element
  • scroll_depth_reached — 25%, 50%, 75%, 100% of page scrolled

Milestones:

  • milestone_reached — activation milestone event (signup, app creation, etc.)
  • identity_linked — user identified after signup (carries both distinctId and userId)

Errors & Context:

  • error_captured — uncaught JavaScript error
  • tier_gate_hit — a feature is not available due to your plan tier
  • feature_flag_evaluated — a feature flag was evaluated (can be high-volume, see noise suppression above)

Operator Surface

Chipp operators can view builder activation data via the Builder Analytics panel at https://build.chipp.ai/admin/builder-funnel (requires super-admin unlock).

Individual Builder Journey

Search by user email or ID to view:

  • Signup date & acquisition source — where this builder came from
  • Chronological sessions — every browser session with active time, pages visited, actions taken
  • Activation state — which milestones this builder has reached (app creation, publication, knowledge source, etc.) and when
  • Last activity & last error — the most recent thing the builder did and any errors they hit
  • Feature flag summary — total feature-flag evaluations and distinct flags checked (not per-row spam)

Activation Funnel Report

View the aggregate conversion funnel:

  • Date range filter — signups within a date range
  • Acquisition source filter — breakout by direct, referral, UTM, or unknown
  • Funnel steps — signup → onboarding → app creation → app settings → app published → chat
  • Conversion rates — what % of signups reach each step
  • Time-to-step — median time (in hours or days) from signup to each milestone
  • Dropout points — where builders get stuck most often

The funnel query is optimized to prevent N+1 queries and runs in bounded time regardless of cohort size.


Authorization & Data Boundaries

Builder journey analytics are internal Chipp product metrics about our own builders. They are:

  • Not tenant data — separate from your Alchemist project’s end-user telemetry (alchemist.telemetry_events)
  • Super-admin only — visible only to Chipp team members at @chipp.ai with a super-admin unlock (same as other /api/hq admin surfaces)
  • Not accessible via API keys — you cannot query builder journey analytics programmatically; they are view-only in the super-admin panel
  • Not merged with end-user analytics — your builder journey and your app’s end-user analytics are separate datasets with separate retention policies

Troubleshooting

My acquisition source is “unknown”

Possible causes:

  • The beacon fires before the page’s session_started event (rare race condition)
  • Your browser storage was cleared before signup
  • You accessed the site via a direct link with no referrer (no UTM, no referring domain)

This doesn’t affect your account or data — it just means acquisition attribution is best-effort.

Events appear to be missing

Check:

  • Do Not Track: if your browser sends DNT: 1, events are not recorded at all (not a bug, by design)
  • Consent: if your site has a consent banner, make sure the analytics category is enabled
  • Time lag: events are batched and sent every 5 seconds; new events may not appear immediately in the operator view
  • Feature flag noise: if you see a lot of feature_flag_evaluated events but no other activity, those are deduplicated — the raw volume is still in Loki logs for debugging

I don’t see my session in the builder journey view

If you were signed out when you visited (or your session expired):

  • Your activity is still captured under your persistent distinctId
  • Once you sign back in and identify() fires, future events are linked to your account
  • To see pre-signin activity, search by email — the journey view will include pre-auth events via the distinct-ID link

Not Implemented: Session Replay

Session replay (DOM recording, pixel-perfect playback) is explicitly not part of this system. We only track semantic interactions (pages, clicks, scrolling) and error stacks — never raw DOM, input values, or text content.

If a future project needs session replay, the event contracts here (stable sessionId, ordered seq in page events) are already replay-correlation-ready — no schema changes would be needed to add replay support later.