EU/CH-hostable · DSGVO/revDSG-first

See why users struggle.
Hand the fix to your agent.

Privacy-first session analytics on rrweb — friction detection, heatmaps and AI insights. The differentiator: a built-in MCP bridge that gives coding agents real user behavior and the exact element to fix.

Inputs masked by default · consent gate built in · self-hostable LLM — EU/CH data residency by default
Replay is commodity
The value sits above capture: reading sessions semantically, not just playing them back.
Heuristics, not hype
Friction & funnels from real signals first. AI is the layer on top — on-demand and cost-controlled.
From insight to fix
The MCP server turns “users are stuck here” into “here's the component and the selector.”

One pipeline, the whole loop

Capture → detect → visualize → explain → fix.

Session replay

rrweb-based capture — watch real sessions pixel-for-pixel, batched and compressed, with a fast player.

Friction detection

Rage- & dead-clicks, error loops, hesitation and form-abandonment surfaced automatically — no tagging, no setup.

Heatmaps

Click, scroll and movement aggregated per route + viewport, rendered over the real reconstructed DOM.

Auto funnels

The most common journeys discovered from real traffic, with per-step drop-off and click-through to the lost sessions.

AI insights

On-demand summaries that say what the user wanted, where it broke and why — plus a frustration score per session.

MCP bridge

Give Claude Code / Cursor real user behavior as tools — friction with the exact CSS selector, so the agent fixes the code.

The moat

Observability → fix, in your coding agent

Connect Behavise as an MCP server. Ask “why do users abandon checkout?” in Claude Code — it pulls the friction, the semantic trace and the failing element's CSS selector, then proposes the change. Scoped per tenant by token.

# in Claude Code
claude mcp add --transport http \
behavise https://mcp.behavise.com/mcp \
--header "Authorization: Bearer …"
→ get_friction_elements, get_heatmap_insights,
   get_frustrated_sessions, …

Privacy is the default, not a setting

Every typed value and text node is masked from the first commit — more conservative than the incumbents. A declarative privacy attribute gives you four levels, and network/console bodies are filtered too.

maskInputs & text masked by default
blockSensitive regions never recorded
no-aiVisible in replay, hidden from AI/MCP
allowOpt specific fields back in

Turn struggling sessions into shipped fixes.

Behavise — privacy-first session analytics with an AI + MCP layer