all posts

Product analytics for AI agents: measure tasks and intent

See what people ask your agent, what works, and what breaks when clickstream events only see the chat box.

Product strategy & analytics 7 min read Updated
What event logs see versus what happened in an AI agent conversation. WHAT EVENT LOGS SEE agent_chat_opened · 200 prompt_submitted × 4 response_received × 5 session_ended · 9 turns ✓ Active & engaged WHAT ACTUALLY HAPPENED t1: “Update these contacts...” t4: “Found 9 contacts.” t7: 6 of 9 contacts skipped t9: “Where are the rest?” ✗ Stopped on update them THE EVENT BLIND SPOT Event logs record the software shell. Conversation analytics measures the task.

Do event-based analytics work for AI agents?

Event-based analytics works for everything around the agent: feature adoption, account retention, and downstream product actions like activity_logged. Inside the conversation, flat events break down because they cannot see what task the user asked for, which sequential intent failed, or why the attempt stopped.

In click-driven software, product teams measure discrete interface actions: pageviews, button clicks, tab switches, and form submissions. When a user drops off between step 2 and step 3 of a checkout flow, an event funnel points to the exact screen element.

In an AI agent inside a CRM or multi-step agent workflow, the conversation is where the work happens. The user states a goal in natural language, and the agent plans steps, calls tools, and replies across several turns. A person does not fail by missing a button. They stop because 6 of the 9 contacts they asked to update were skipped on turn 7 because the emails didn’t match, and the agent updated the other 3 anyway.

3 assumptions that fail in conversational software

  • Prompt volume is ambiguous: A 9-turn conversation does not mean high engagement. The person may be asking why 6 of 9 contacts were skipped. A 3-turn conversation might mean a fast finish, or that the user gave up after the first reply.
  • Turn count and session length deceive: In a web app, longer sessions often signal stickiness. In an AI agent, extra turns usually signal friction. A user who spends 9 turns trying to recover skipped contacts is doing work the agent was supposed to finish.
  • Flat message events hide outcomes: Logging track(‘message_sent’) counts how many prompts were processed. It tells you nothing about whether the person belonged to the 1,536 attempts that finished the task (64%) or the 528 attempts that stopped on update them (22.9%).

Event analytics records activity around the chat box. Task and conversation observability reads what happened inside it.

What others see vs. what actually happened

Consider a user talking to the AI assistant inside a CRM under the managing contacts topic. Inspect the tabs below to compare how the session appears in an event dashboard versus the ground-truth dialogue and linked view:

Contact update session across 3 lenses

event stream · turns · linked view
Event stream: what clickstream analytics records Reported: engaged session
Event 1 agent_chat_opened · topic: managing contacts · HTTP 200
Events 2–5 prompt_submitted × 4 · 4 user messages sent (turns t1, t3, t5, t9)
Events 6–10 response_received × 5 · 5 agent replies delivered (turns t2, t4, t6, t7, t8)
Event 11 session_ended · 9 total turns · 0 runtime exceptions
Dashboard verdict: 4 prompts submitted, 5 responses received, 0 errors. Looks like an active, engaged user.
Conversation turns: what the person and agent said Task: failed on update them
t1 · Person “Update these contacts from the trade-show list.” (intent: find the contacts)
t4 · Agent “Found 9 contacts.” (t1–t4: find the contacts done; t5–t6: starts update them)
t7 · Agent “6 of the 9 emails didn’t match. Updating the other 3.” (signal: skipped contacts · deciding turn)
t9 · Person “Where are the rest? Can you try that again?” (after t8 reports 3 contacts updated · signal: dissatisfaction)
Transcript reality: 6 of 9 contacts were skipped on turn 7 because the emails didn’t match, the agent updated 3 anyway, and the task failed.
Linked view: product events paired with conversation turns 2,400 attempts classified
1. find the contacts 2,400 attempts reached · 92 stopped here (3.8%)
2. update them 2,308 attempts reached · 528 stopped here (22.9%) · linked event: activity_logged: 3_of_9
3. log the activity 1,780 attempts reached · 244 stopped here (13.7%)
Finished task 1,536 attempts finished (64%) · halving stops on update them adds 264 finishes (75%)
Linked outcome: Pairing activity_logged: 3_of_9 with turn 7 separates 1,536 proven completions (64%) from 528 stops on update them (22.9%).
Use the tabs above (or Left and Right arrow keys) to compare the flat event log, the 9-turn contact-update transcript, and the linked intent funnel.

The failure mechanism is plain: the software ran, the model generated tokens, and no HTTP error code was thrown. Yet 6 of the 9 contacts were skipped because their emails didn’t match. Event logs record that 9 turns happened; conversation observability shows that the task stopped on update them.

Event streams vs. conversation streams

Clickstreams, execution traces, and conversation streams answer 3 distinct questions across your stack:

Dimension Event analytics
Clickstreams & UI
Developer tracing
Spans & latency
Conversation analytics
Abracadabra
Primary question Which buttons and pages did the user click? How did the code, model, and spans execute? Did the person finish the task they asked for?
Core unit Events, pageviews, clicks, user IDs Spans, traces, runs, tokens, latency Topics, tasks, intents, signals, users, cohorts
What success means Button click, page transition, retention HTTP 200 OK, 0 code exceptions, fast latency Task finished (1,536 of 2,400 / 64%)
What failure means Funnel drop-off, page exit, bounce 500 error, API timeout, rate limit exceeded 528 stops on update them, partial tool output
Resolution Aggregated drop percentage Hierarchical span flame-graph Turn 7 skipped contacts and turn 9 dissatisfaction
Primary user Growth PM, web product manager AI engineer, platform infrastructure lead AI product manager, CX lead, founder

Why “rage prompts” and sentiment detectors fail

Traditional analytics tools have tried to adapt to chat interfaces by adding sentiment scores and “rage prompt” detectors that watch for rapid typing, exclamation marks, or angry keywords.

In production software, these heuristics miss most failed tasks:

  • People rarely rage in work tools: When an agent updates 3 contacts instead of 9, users do not swear or type in capital letters. On turn 9, the person asks: “Where are the rest? Can you try that again?”
  • Low dissatisfaction rate vs. high stop rate: Across the dataset, only 3.2% of turns carry a dissatisfaction signal (−1.4 points period over period), while 36% of contact-update attempts fail to finish (864 of 2,400).
  • Polite exits score as positive: A user typing “Thanks, I’ll update the rest myself” registers as polite to a sentiment classifier even though the task failed.

Detecting failure in an AI agent requires checking whether the requested task finished, not waiting for the user to get angry.

The metrics that matter for agent product managers

To measure how an agent is performing, product teams track 4 conversation and task measures grounded in task completion rubrics and evaluation rubrics:

4 core metrics for conversational software

  • Task completion rate: The share of initiated tasks that reach a finished outcome. On “update these contacts from the trade-show list”, 1,536 of 2,400 attempts finish (64%, up 6 points over the previous period).
  • Step-level drop-off: Mapping a task into its 3 sequential intents shows where attempts stop: 92 stop at find the contacts (3.8%), 528 stop at update them (22.9%), and 244 stop at log the activity (13.7%). Halving the stops on update them adds 264 finished tasks and lifts completion from 64% to 75%.
  • Verified vs. inferred completion: A finished task is confirmed by a product record or task rubric alongside the turns, not by the agent saying “done” after updating 3 of 9 contacts on turn 8.
  • Cohort disparities: A 64% baseline hides a 19-point spread across cohorts: self-serve finishes at 71%, enterprise at 66%, returning users at 61%, EMEA at 58%, and enterprise EMEA at 52% (986 users).

Connecting to the broader stack

Product analytics for agents connects directly with engineering traces, pre-release evals, and turn-level diagnostics:

Where event analytics still wins

Event analytics is not the wrong tool. It is the wrong tool for what happens inside the conversation.

  • Everything around the agent: Sign-up, navigation, checkout, and feature adoption are clean events. Keep measuring them in the tool you already use.
  • Single-turn lookups: When 1 question has 1 answer and a product event confirms the result, an event is enough. There is no multi-turn dialogue to read.
  • Latency and unit cost: Response time, token cost, and failed HTTP calls are execution data. Traces and your monitoring stack own them.
  • Very little traffic: A few conversations a week cannot support a funnel. Read them 1 by 1 first.

Product analytics for AI agents FAQ

Why can’t I just use custom event properties in my existing analytics tool?

You can log custom events like track(‘prompt_submitted’, { text: prompt }), but traditional analytics tools are built for tabular aggregation, not multi-turn conversations. Reconstructing a 9-turn dialogue, tracking sequential intents, or isolating why 6 of 9 contacts were skipped requires queries that break whenever user phrasing changes.

Why is high turn count often a warning sign in AI agents?

In traditional software, longer sessions indicate engagement. For an AI agent, the goal is delegation. A user who finishes a task in 3 turns gets immediate value. A user who exchanges 9 turns is often asking for missing output, repeating constraints, and trying to recover a failed step.

How does conversational analytics detect failure without error codes?

An agent can return HTTP 200 with 0 code exceptions while failing the user’s task. Conversational analytics evaluates whether the requested task reached its final intent, whether tools returned complete output, and whether the user stopped on a broken step such as update them.

Do event-based analytics work for AI agents?

Event-based analytics tools (like Amplitude, Mixpanel, and PostHog) work well for adoption, retention, and downstream product actions such as activity_logged. However, flat events break inside the conversation: they cannot reconstruct sequential intents, partial tool outputs, or turn-level dissatisfaction. Teams pair event analytics for surrounding product actions with conversation observability for agent task completion.

Which product analytics tools can track AI agent engagement?

Traditional tools like Amplitude and PostHog track high-level AI feature adoption and correlate usage with retention. However, measuring “engagement” via session length or message counts is deceptive for agents, where extra turns usually indicate friction. Specialised agent observability platforms like Abracadabra measure task completion rate, intent-level drop-offs, and turn-level signals.

Does conversational product analytics replace developer tracing tools?

No. Tracing tools like OpenTelemetry, LangSmith, and Langfuse remain essential for monitoring system health: latency, token spend, model invocations, and backend exceptions. Abracadabra measures whether the person finished their task. Traces tell you the run finished; Abracadabra tells you whether the person did.

all posts

The task, the intent, and the turn.

A live agent is a product. The numbers that matter name the job the user came to finish, the sequential intent that lost them, and the transcript turn that proves it.

Start free. No card required.