subtext_url, opens that person’s real session, and walks the decisive moments with screenshots, the component tree, network, and console. Userpilot detects; Subtext diagnoses.
This guide assumes the Subtext capture snippet is installed and capturing sessions, and the Userpilot SDK (
userpilot) is initialized.Attach the session URL
Store the current Subtext session URL as a Userpilot user property so it rides along with the user into every flow, segment, and analytics view. Attach it withuserpilot.identify, wherever your app already identifies the user — on auth resolution, not at module top level.
userpilot.reload() on route changes as usual; identified properties persist across reloads within the session.
From signal to session
However you first hear about a leak in Userpilot — an activation drop, a churn-risk flag, or a single flow step bleeding users — the path is the same: get to thesubtext_url, then hand it to your agent for a Detect-vs-Diagnose read.
An activation dashboard drop
An activation dashboard drop
Your Userpilot activation dashboard shows new users completing onboarding at a lower rate than usual.Build a segment of users who didn’t complete onboarding, open their user records, go to the Properties tab, and copy
subtext_url. Grab several, then hand them to your agent:A churn-risk or low-engagement signal
A churn-risk or low-engagement signal
A Userpilot segment surfaces an account or user flagged as low-engagement or churn-risk after a rough onboarding.Open the flagged user, go to the Properties tab, and copy
subtext_url.A single flow step leaking
A single flow step leaking
Userpilot flow analytics show a single step with a large drop.Segment the users who dropped at that step and copy
subtext_url from each.For agents
An autonomous agent can run the same loop against Userpilot, with one honest caveat. Userpilot’s real-time HTTP API is write-only —identify and track on analytex.userpilot.io — so there is no per-user GET to fetch a single visitor’s attributes on demand. But Userpilot also documents a Bulk Data Export API (POST appex.userpilot.io/api/v1/analytics/exports, token auth) that exports raw events — including identify_user events carrying custom metadata like subtext_url — as JSON/CSV export jobs. You write subtext_url in via identify; reading it back over HTTP means an asynchronous bulk export, not a point lookup. Userpilot does ship an official MCP server (userpilot.com/ai/mcp-server/), but its endpoint, transport, auth model, and tool names aren’t publicly documented, and whether it can read an individual visitor’s custom attribute is unconfirmed. Confirm those before you depend on the round-trip, and for reliable extraction store subtext_url somewhere readable too — your warehouse, or another tool’s user property.
1
Discover who is affected
Use the Userpilot MCP server to surface the friction: adoption and retention drops, low-completion flows, NPS detractors, and survey sentiment. The real-time HTTP API cannot query friction data on demand, but Userpilot’s Bulk Data Export API (Enterprise plan, or an add-on to Growth) can deliver it as async export jobs — raw JSON/CSV events including flow, checklist, survey, and NPS
interaction events. Without that plan, fall back to a warehouse or reverse-ETL export you can query directly.2
Extract the session URL
There is no per-user read API. Get
subtext_url from an MCP attribute tool if one exists (verify first), from an analytics or warehouse export where Userpilot data lands, or from another store that captured it at the same moment.3
Hand off to Subtext
For each URL, call
review-open(session_url=<subtext_url>) on the Subtext MCP, then walk the flow step where the user dropped for a Detect-vs-Diagnose read.subtext_url only round-trips if it was attached at capture time (see Attach the session URL). Because Userpilot has no per-user attribute read — only asynchronous bulk exports (Enterprise plan, or a Growth add-on) — plan a readable secondary store from the start; the MCP discovery surface and the export API are more dependable than any per-user attribute read.Related
- Session Review overview — what your agent does once a session is open.
- Install the capture snippet — required before any session URL exists to attach.

