Live conversation monitor
The Live tab is the dashboard surface for supervising AI-agent conversations while they are still running. Instead of polling the API, you open one page and see every conversation the agent is holding right now — voice calls and chat threads (web chat, SMS, WhatsApp, and the other messaging channels) — and can click into any of them to watch the transcript and send the agent a note. Access is limited to theowner, admin, and supervisor roles, because the surface shows live customer conversation content.
Open the Live tab
- Open Agents in the dashboard.
- Select the Live tab.
/agents/live redirects to Agents → Live — the tab is the canonical surface.
Reading the live list
The page polls every 5 seconds, so the list is at most a few seconds behind reality. Each live conversation is a row:
Conversations appear while they have activity in the last few minutes; once one goes quiet it drops off. The list starts page-sized and grows a Load more control when the contact center is busy, and a Refresh control is there when you want an update before the 5-second poll fires.
The triage habit that makes this list useful: sort your attention by the last message and turn count, not by arrival order. Open the row that annoys you.
Work a single conversation
Select any row (or its View button) to open the per-conversation detail at/agents/live/[conversationId]. There is a three-stage flow that keeps this fast at scale:
- Open the detail. The page polls every 2 seconds and auto-scrolls to the newest message, so you are always looking at the latest turn without touching anything. The header shows the agent name, the channel, a status badge, and the conversation id.
-
Scan the role badges. Every message carries a role badge so you can tell speakers apart at a glance:
- Agent — a reply the AI generated.
- User — what the customer said.
- Tool — an action the agent executed (the tool name is shown with it), rendered in a monospace block so call details are easy to scan.
- System — internal context messages, shown dimmed.
-
Decide whether to whisper. Whisper when the agent is still going and you can improve its next turn: it stated a wrong fact, it is circling without calling the obvious tool, or a human queue should take over. Do not whisper when the conversation is already escalating to a human (the customer has been told) or when it is at its last exchange — send the note and it will sit
pendingforever.
The whisper playbook
The panel under the transcript is a whisper: a one-way note from you to the agent, applied on its next turn. The customer never sees it. A note is 1–1000 characters — the counter shows your position, and anything past the limit is cut off rather than sent. Type the note, then send it with the button or Ctrl+Enter (Cmd+Enter on macOS). Keep the shortcut in muscle memory; a whisper sent two seconds earlier lands on a turn a whisper sent late misses. Below the input, the last five notes are listed with a pending or read badge — a note ispending until the agent picks it up on a later turn, then read.
Three scenarios, with the note to send for each. Write them as direct instructions to the agent — imperative, one point per note, in the language the agent is conversing in:
When the whisper lands but the conversation ends anyway
This is the failed end-state worth internalizing: the note ispending, the customer says “actually that’s everything, thanks,” and the conversation closes before the agent takes another turn. The note was never applied — it stays unread in the history, and the write path now returns 404 for that conversation.
What to do, in order:
- Accept that steering is moot once the transcript ends. A
pendingnote on a closed conversation is a record of intent, not a backlog to drain — do not re-send it. - Recover the outcome, not the note. If the issue the whisper addressed still matters (the wrong price got quoted), handle it through the usual follow-up channel on the contact — a callback, a reply on the original thread, or your own ticket. The whisper surface is mid-conversation tooling, not an order queue.
- Tighten your timing. A whisper that missed the last turn teaches you one thing: send it at the first wrong sentence, not at the end of the paragraph you disagreed with.
Pending approvals
A Pending approvals strip appears above the transcript whenever the agent has paused on a sensitive tool call and is waiting for a human decision. It lists each paused call — the tool name, the arguments the agent proposed, and when it was requested — and the strip only disappears when there is nothing left to decide. Resolve each row from the same page: approve to let the call run, reject to block it (add a reason so the decision is documented). Approving re-queues the paused turn so the agent resumes and completes the action; rejecting tells the agent the call was refused so it can answer the customer without it. While the strip is up, the agent does not guess. It sits mid-turn on that conversation — it will not run the tool on its own, and it will not close the matter — which is exactly why the pile needs a human regularly. On a busy shift, clear approvals before whispers: an approval unblocks a conversation that is frozen; a whisper improves one that is still moving.What “live” means — and where 404s come from
The list treats a conversation as live when its status isactive or open (a voice call in progress counts too) and it saw activity within the last few minutes. The note endpoint is broader — it accepts active, open, and escalated, so you can still whisper to an agent on a conversation that has been handed to a human.
What the statuses mean in practice:
- active / open — the agent is answering; your notes apply on its next turn.
- escalated — a human has the conversation; the agent stops replying until control is handed back. Whispers are still accepted so the note is waiting if the agent resumes.
- closed — the conversation is over. Its id stops resolving on the write path: sending a note to it returns
404, exactly as the API does.
Where the API complements the dashboard
The Human-in-the-loop oversight page documents the same actions from the API side — supervisor notes, tool approvals, hand-off — with request/response examples you can script. The Live tab is the day-to-day workstation for the same operations: open it during staffed hours, and fall back to the API when you are wiring oversight into your own tooling — an alerting hook on the pending-approvals queue, a bulk whisper from a runbook, or an audit export of decisions.See also
- Human-in-the-loop oversight — the API reference for whispers, approvals, and take-over.
- Creating agents — mark a tool’s confirmation as always-required so it pauses for approval in this surface.
- Agent handoff targets — the destination humans choose when the agent escalates.