Real-time monitoring

Observe live conversations and send control commands during active calls

Real-time monitoring enables live observation of agent conversations via WebSocket and remote control of active calls. This feature provides real-time visibility into conversation events and allows intervention through control commands.

This is an enterprise-only feature.

Overview

Monitoring sessions stream conversation events in real-time, including transcripts, agent responses, and corrections. You can also send control commands to end calls, transfer to phone numbers, or enable human takeover during active chat conversations.

WebSocket endpoint

Connect to a live conversation using the monitoring endpoint:

wss://api.elevenlabs.io/v1/convai/conversations/{conversation_id}/monitor

Replace {conversation_id} with the ID of the conversation you want to monitor.

Authentication

Authentication requires:

  • API key permissions: Your API key must have ElevenLabs Agents Write scope
  • Workspace access: You must have EDITOR access to the agent’s workspace
  • Header format: Include your API key via the xi-api-key header

Example connection

1const ws = new WebSocket('wss://api.elevenlabs.io/v1/convai/conversations/conv_123/monitor', {
2 headers: {
3 'xi-api-key': 'your_api_key_here',
4 },
5});

Configuration

Before monitoring conversations, enable the feature in your agent’s settings:

2

Enable monitoring

In the Advanced settings panel, toggle the “Monitoring” option.

Monitoring toggle in agent settings

3

Select events

Choose which events you want to monitor. See Client Events for a full list of available events.

The following events cannot be monitored: VAD scores, turn probability metrics, and pings.

The conversation must be active before you can connect to monitor it. You cannot monitor a conversation before it begins.

Control commands

Send JSON commands through the WebSocket to control the conversation:

Terminate the active conversation immediately.

1// End the active conversation
2ws.send(JSON.stringify({
3 command_type: "end_call"
4}));

Transfer the call to a specified phone number.

1// Transfer to a phone number
2ws.send(JSON.stringify({
3 command_type: "transfer_to_number",
4 parameters: {
5 phone_number: "+1234567890"
6 }
7}));
The transfer_to_number system tool must already be configured in the agent.

Switch from AI agent to human operator mode for chat conversations.

1// Enable human takeover
2ws.send(JSON.stringify({
3 command_type: "enable_human_takeover"
4}));

Send a message to the user as a human operator in chat conversations.

1// Send a message as a human operator
2ws.send(JSON.stringify({
3 command_type: "send_human_message",
4 parameters: {
5 text: "How can I help you?"
6 }
7}));

Return control from human operator back to the AI agent.

1// Disable human takeover and return to AI
2ws.send(JSON.stringify({
3 command_type: "disable_human_takeover"
4}));

Use cases

Real-time monitoring enables several operational scenarios:

Quality assurance

Monitor agent conversations in real-time to ensure quality standards and identify training opportunities.

Human escalation

Detect conversations requiring human intervention and seamlessly take over from the AI agent.

Analytics dashboards

Build real-time monitoring dashboards that aggregate conversation metrics and performance indicators.

Call center oversight

Supervise multiple agent conversations simultaneously and intervene when necessary.

Automated intervention

Implement automated systems that analyze conversation content and trigger actions based on specific conditions.

Training and coaching

Use live conversations as training material and provide real-time feedback to improve agent performance.

Limitations

The monitoring endpoint streams only text events and metadata. Raw audio data is not included in monitoring events.

Only approximately the last 100 events are cached and available when connecting to an active conversation. Earlier events cannot be retrieved.

VAD scores, turn probability metrics, and ping events cannot be monitored when custom event selection is enabled.

You must connect after the conversation has started. The monitoring endpoint cannot be used before conversation initiation.

API keys must have ElevenLabs Agents Write scope, and you must have EDITOR workspace access to monitor conversations.