Trazas de OpenTelemetry
ElevenLabs Agents puede exportar conversaciones como trazas de OpenTelemetry codificadas como OTLP JSON (resourceSpans). Reenvíalas a Datadog, Grafana Tempo, Honeycomb o cualquier backend que procese OTLP.
ElevenLabs no envía trazas directamente a tu recopilador OTLP. Recibes JSON con formato OTLP desde un webhook, una API o un WebSocket de monitorización, y lo reenvías a tu backend.
Resumen
Exporta trazas desde tres superficies. Las tres comparten el mismo ID de traza por conversación y la nomenclatura de atributos elevenlabs.*. La estructura y los tiempos de los spans difieren entre post-llamada/GET (basado en transcripciones) y monitorización (basado en eventos).
Superficies de exportación
Elegir una superficie
- Todas las llamadas completadas en tu almacén de datos: webhook post-llamada
- Exportación o reparación puntual: GET de conversación con
format=opentelemetry - Interfaz de supervisión en directo o alertas: WebSocket de monitorización
- Cronología completa después de la llamada: webhook post-llamada o GET de conversación
- Eventos de herramientas, MCP o guardrails a medida que ocurren: WebSocket de monitorización
Usa traceId o elevenlabs.conversation_id para vincular datos entre superficies. Combina la monitorización para operaciones en directo, los webhooks para análisis duraderos y GET para rellenar datos.
Necesitas un recopilador compatible con OTLP o un proveedor de observabilidad para cada superficie. Los webhooks post-llamada requieren un endpoint de webhook del espacio de trabajo. La API GET y el WebSocket de monitorización tienen cada uno sus propios ámbitos de clave API y configuración; consulta las secciones siguientes.
Webhook post-llamada
Cuando finaliza una conversación, ElevenLabs envía una solicitud POST si hay configurado un webhook post-llamada, events incluye transcript y transcript_format es opentelemetry.
El type del webhook es post_call_transcription_otel (no post_call_transcription, que devuelve transcripciones JSON).
Carga útil del webhook
Activar transcripciones de OpenTelemetry
Configurar desde el panel
Configurar mediante la CLI
Configurar mediante la API
Crear un webhook del espacio de trabajo
En el panel de ElevenAgents, crea un webhook del espacio de trabajo con tu URL HTTPS y autenticación.
Vincular el webhook post-llamada
Abre la configuración de Agents, asigna el webhook como webhook post-llamada, activa el evento Transcripción y habilita las cargas útiles de transcripción de OpenTelemetry.

Los webhooks de transcripción de OpenTelemetry no incluyen audio. Usa post_call_audio si necesitas
grabaciones.
Devuelve 2xx si se completa correctamente. Los códigos 4xx y 5xx cuentan como errores.
Los reintentos se aplican a los webhooks de transcripción (incluido OpenTelemetry) solo cuando Activar reintentos está activado para el webhook del espacio de trabajo. Los errores transitorios (5xx, 429, 408) se reintentan hasta 5 veces; los 4xx no. Los webhooks de audio nunca se reintentan. Los errores repetidos pueden desactivar automáticamente el webhook. Consulta Webhooks post-llamada para ver los detalles y las excepciones de HIPAA.
Entrega
Estructura de la traza
Cada entrega es una traza completa: un span raíz y sus elementos secundarios.
Los spans de respuesta del agente incluyen elevenlabs.reasoning_content cuando la entrega contiene un resumen del razonamiento.
La temporización procede de time_in_call_secs de la transcripción y de los metadatos de la llamada. El span raíz establece elevenlabs.source = post_call_webhook y el estado ERROR cuando la llamada no terminó con una desconexión normal del cliente.
GET de conversación
Solicita el formato OpenTelemetry en Obtener conversación para recibir el mismo objeto otlp_traces que el webhook post-llamada de OpenTelemetry, además del modelo completo de conversación.
Requiere una clave API con CONVAI_READ. Con format=json (predeterminado), se omite otlp_traces.
Los nombres de span esperados incluyen elevenlabs.conversation, elevenlabs.recv.user_transcript y elevenlabs.recv.agent_response.
WebSocket de monitorización
La monitorización en tiempo real requiere un espacio de trabajo Enterprise o la función realtime-monitoring.
Consulta Monitorización en tiempo real para ver la configuración,
los comandos de control y los requisitos de acceso.
Transmite datos de trazas de OpenTelemetry como OTLP JSON mientras una conversación está en curso. Cada mensaje es un pequeño lote de resourceSpans, no una única traza al finalizar la llamada.
La autenticación requiere CONVAI_WRITE, xi-api-key (o Authorization) y acceso EDITOR al espacio de trabajo del agente. Conéctate después de que comience la conversación.
Activar la monitorización en el agente
Configura monitoring_enabled: true y monitoring_events antes de la llamada. Consulta Monitorización en tiempo real.
Protocolo de sesión
- Conéctate con encabezados de autenticación.
- Recibe
{"type": "connected"}. - Recibe un lote de span raíz (
elevenlabs.conversation,elevenlabs.source=monitoring). - Recibe el historial en caché (aproximadamente los últimos 100 eventos) y, después,
{"type": "history_complete"}. - Recibe lotes de spans en directo a medida que se producen los eventos.
Con events_format=json (predeterminado), el WebSocket devuelve eventos de cliente sin procesar en lugar de resourceSpans. Los comandos de control coinciden con Monitorización en tiempo real.
Estructura de la traza
Los eventos estructurados se asignan a atributos específicos (por ejemplo, elevenlabs.user.text, elevenlabs.agent.text). Los eventos desconocidos usan elevenlabs.event.data con JSON truncado.
No des por hecho que el orden de los eventos coincide con el orden de habla. Correlaciona los spans en directo con los datos post-llamada mediante
el mismo traceId.
Ejemplo de conexión
Estructura de OTLP JSON
Las trazas de OpenTelemetry de todas las superficies comparten el mismo diseño de lote OTLP JSON:
Limitaciones
- No se realiza envío directo a tu endpoint gRPC de OTLP.
- Las cargas útiles son JSON con formato de exportación OTLP, no protobuf sin procesar en la transmisión.