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 in the super-admin panel at https://build.chipp.ai/#/admin. 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 in analytics events (events carry only semantic element IDs like data-testid; session replay masks all text and input values, see below)
  • 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 does not send journey events until you accept analytics in the cookie banner. If you decline, or never answer, those events are not sent.

One narrow exception: when you are signed in, a short allowlist of Builder product-usage events (for example, opening a Builder page or approving a plan) is recorded without banner consent so Chipp can measure how the Builder is used. These events carry a consent_basis field, never include your email, and are still dropped when DNT or GPC is on.


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 the Privacy Policy 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:

  • client_error: 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 in the super-admin panel at https://build.chipp.ai/#/admin (requires the admin secret unlock). The aggregate report is the Builder Activation Funnel section; individual journeys open from the panel’s user search.

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 → first app created → first configuration saved → first publish → first builder preview chat → first end-user chat → first knowledge source added
  • Conversion rates: what % of signups reach each step
  • Time-to-step: median time 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: journey events only send after analytics is accepted in the cookie banner
  • 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

Session Replay

Chipp also records privacy-safe session replays of the Builder for operators, viewable in the super-admin panel’s Session Replays section and from a builder’s journey view. Replay follows the same gates as the beacon: it only records after analytics consent is granted, DNT/GPC always disables it, and revoking consent stops recording immediately.

Replay is default-deny on content:

  • All text and input values are masked before they leave the browser, except a small set of reviewed interface elements
  • Fully blocked (no structure captured): password and file inputs, code editors (such as the system prompt editor), and all iframes
  • Never captured: network request/response bodies, console output, and canvas pixels
  • Recordings are encrypted at rest and expire after 30 days by default