User flow analytics for Codex and other AI coding agents
Analyze signup drop-off and cross-domain user flows with Codex, Claude Code, Cursor, or Gemini CLI using DebugBundle's acquisition and activation reports.
By Owen Far

A visitor reads your website, opens a dedicated login page, and arrives in your app. Later, they complete their first useful action. Where did that flow lose people? Did more visitors reach the app after you changed onboarding?
Those are useful questions to bring into the same coding agent you use to build the product.
We're adding acquisition and activation flows to DebugBundle's existing product analytics. You define the steps that matter, instrument them in your product, and read aggregate reports in DebugBundle or through your agent. Codex, Claude Code, Cursor, and Gemini CLI can use that evidence to help investigate user flows and propose focused improvements.
Measure acquisition and activation in your own product
An acquisition flow might follow someone from a landing page into a signed-in app:
site_visit -> auth_page -> login_completed -> app_openedAn activation flow can measure the path to the first useful result:
workspace_opened -> first_document_created -> first_export_completedEach flow belongs to your project and has two to eight ordered steps. You choose the names and the exact origin for each step. Several steps can happen on the same origin; others can span separate sites or subdomains.
That also supports a simple main-site-to-blog flow. Each product can define its own path around the question it wants to answer.
How cross-domain user flow tracking works
All participating sites use the same analytics project. The Browser SDK's flow client starts a run, records completed steps, and creates a short-lived handoff when your application navigates to the next configured origin.
The handoff travels in the destination URL's fragment. On arrival, the SDK removes that parameter and exchanges it for the next site's flow context. The handoff is bound to the expected step and origin and can be redeemed once. Context stays in tab-scoped sessionStorage, with a configurable expiry from ten minutes to 24 hours.
A dedicated auth page can preserve its context through a same-tab trip to an external identity provider. Your application records login_completed after authentication succeeds, then hands off to the app. The integration leaves OAuth state and provider credentials alone.
For custom actions on the same origin, call step() after the action succeeds. The application decides what success means. These are observed steps; the Browser SDK cannot independently verify a backend business outcome.
Find signup drop-off and compare periods
The flow report shows linked starts and completions, how many runs reached each step, drop-off between steps, and average time between steps. Explicit source and campaign labels help compare how different acquisition channels progress through the flow.
Choose seven, 30, or 90 full UTC days and compare with the equal previous period. Counts follow the day a run started, so today's starts enter the report after that UTC day closes.
Coverage stays visible. If someone arrives without a valid handoff, the integration can record an unlinked observation. That observation stays separate from linked conversions. Missing capture, expired context, and a different device can leave gaps; a missing step alone does not prove someone abandoned the action.
Give Codex, Claude Code, Cursor, or Gemini CLI the flow report
Once your product is instrumented, an agent can read the same aggregate evidence available in Project → Analytics → Flows.
With the updated DebugBundle CLI and connected member authentication:
debugbundle analytics flows list --project <id> --json
debugbundle analytics flows report \
--project <id> \
--key onboarding \
--window 30d \
--jsonThe developer MCP server exposes list_analytics_flows and get_analytics_flow_report for the same reads. Use the CLI when your agent has a shell, or the developer MCP connection when that fits your setup.
A useful prompt is:
Read the onboarding flow definition and its 30-day report for [project]. Compare each step with the previous period. Identify the largest drop-off, report linked and unlinked coverage, and explain what the data cannot establish. Inspect the relevant code in this repository and suggest one focused improvement with a way to test it. Leave changes for review.
The report can point the agent toward the transition worth inspecting. Source code, tests, and product context help it investigate possible explanations. A lower completion rate by itself does not establish the cause.
Follow the setup guide for Codex, Claude Code, Cursor, or Gemini CLI. These flow tools use the developer integration; the separate hosted OpenAI connection has its own tool catalog.
Start with one flow
Choose one question, define its steps, and wire the Browser SDK's createAnalyticsFlowClient into those transitions. Capture is explicitly enabled, and its headless controls connect to your application's analytics policy. The helper supplies no public UI. Reports use aggregate counters, while the temporary state used to connect steps expires.
Existing route, action, funnel, and incident analytics remain available alongside flows. Together, they give you and your coding agent more context for deciding what to investigate next.
Read the flow setup and capture guide for a complete site → auth → app example, then use the analytics CLI to review your first report.