Rastreios do OpenTelemetry
Os Agents da ElevenLabs podem exportar conversas como rastreamentos do OpenTelemetry codificados como OTLP JSON (resourceSpans). Encaminhe-os para Datadog, Grafana Tempo, Honeycomb ou qualquer backend que processe OTLP.
A ElevenLabs não envia rastreamentos diretamente para seu coletor OTLP. Você recebe JSON no formato OTLP por um webhook, API ou WebSocket de monitoramento e o encaminha para seu backend.
Visão geral
Exporte rastreamentos de três superfícies. Todas compartilham o mesmo ID de rastreamento por conversa e a nomenclatura de atributos elevenlabs.*. O formato e a temporização dos spans diferem entre pós-chamada/GET (baseados em transcrição) e monitoramento (baseado em eventos).
Superfícies de exportação
Escolhendo uma superfície
- Todas as chamadas concluídas no seu data warehouse: webhook pós-chamada
- Exportação ou correção pontual: GET de conversa com
format=opentelemetry - Interface de supervisão ao vivo ou alertas: WebSocket de monitoramento
- Linha do tempo completa após o ocorrido: webhook pós-chamada ou GET de conversa
- Eventos de ferramentas, MCP ou guardrails conforme acontecem: WebSocket de monitoramento
Use traceId ou elevenlabs.conversation_id para associar dados entre as superfícies. Combine o monitoramento para operações ao vivo, webhooks para análises duráveis e GET para preenchimento retroativo.
Você precisa de um coletor compatível com OTLP ou de um fornecedor de observabilidade para todas as superfícies. Webhooks pós-chamada exigem um endpoint de webhook do workspace. A API GET e o WebSocket de monitoramento têm, cada um, seus próprios escopos de chave de API e configuração; consulte as seções abaixo.
Webhook pós-chamada
Após uma conversa terminar, a ElevenLabs envia uma solicitação POST quando um webhook pós-chamada está configurado, events inclui transcript e transcript_format é opentelemetry.
O type do webhook é post_call_transcription_otel (não post_call_transcription, que retorna transcrições JSON).
Payload do webhook
Ativar transcrições do OpenTelemetry
Configurar pelo painel
Configurar pela CLI
Configurar pela API
Criar um webhook do workspace
No Painel do ElevenAgents, crie um webhook do workspace com seu URL HTTPS e autenticação.
Vincular o webhook pós-chamada
Abra as configurações dos Agents, atribua o webhook como webhook pós-chamada, ative o evento Transcrição e habilite Payloads de transcrição do OpenTelemetry.

Os webhooks de transcrição do OpenTelemetry não incluem áudio. Use post_call_audio se precisar
de gravações.
Retorne 2xx para indicar sucesso. 4xx e 5xx são considerados falhas.
As tentativas são aplicadas a webhooks de transcrição (incluindo OpenTelemetry) somente quando Ativar tentativas está habilitado no webhook do workspace. Erros temporários (5xx, 429, 408) são repetidos até 5 vezes; 4xx não. Webhooks de áudio nunca são repetidos. Falhas recorrentes podem desativar automaticamente o webhook. Consulte Webhooks pós-chamada para detalhes e exceções da HIPAA.
Entrega
Formato do rastreamento
Cada entrega é um rastreamento completo: um span raiz e seus filhos.
Os spans de resposta do agente incluem elevenlabs.reasoning_content quando a entrega contém um resumo de raciocínio.
A temporização vem de time_in_call_secs da transcrição e dos metadados da chamada. O span raiz define elevenlabs.source = post_call_webhook e o status ERROR quando a chamada não terminou com uma desconexão normal do cliente.
GET de conversa
Solicite o formato OpenTelemetry em Obter conversa para receber o mesmo objeto otlp_traces do webhook pós-chamada do OpenTelemetry, além do modelo completo da conversa.
Requer uma chave de API com CONVAI_READ. Com format=json (padrão), otlp_traces é omitido.
Os nomes de span esperados incluem elevenlabs.conversation, elevenlabs.recv.user_transcript e elevenlabs.recv.agent_response.
WebSocket de monitoramento
O monitoramento em tempo real requer um workspace Enterprise ou a flag de recurso realtime-monitoring.
Consulte Monitoramento em tempo real para ver a configuração,
os comandos de controle e os requisitos de acesso.
Transmita dados de rastreamento do OpenTelemetry como OTLP JSON enquanto uma conversa está em andamento. Cada mensagem é um pequeno lote de resourceSpans, não um rastreamento único ao fim da chamada.
A autenticação requer CONVAI_WRITE, xi-api-key (ou Authorization) e acesso de EDITOR ao workspace do agente. Conecte-se após a conversa começar.
Ativar o monitoramento no agente
Defina monitoring_enabled: true e configure monitoring_events antes da chamada. Consulte Monitoramento em tempo real.
Protocolo da sessão
- Conecte-se com cabeçalhos de autenticação.
- Receba
{"type": "connected"}. - Receba um lote de span raiz (
elevenlabs.conversation,elevenlabs.source=monitoring). - Receba o histórico em cache (cerca dos últimos 100 eventos) e depois
{"type": "history_complete"}. - Receba lotes de spans ao vivo conforme os eventos ocorrem.
Com events_format=json (padrão), o WebSocket retorna eventos brutos do cliente em vez de resourceSpans. Os comandos de controle correspondem a Monitoramento em tempo real.
Formato do rastreamento
Eventos estruturados são mapeados para atributos dedicados (por exemplo, elevenlabs.user.text, elevenlabs.agent.text). Eventos desconhecidos usam elevenlabs.event.data com JSON truncado.
Não presuma que a ordem dos eventos corresponde à ordem da fala. Correlacione os spans ao vivo com dados pós-chamada usando
o mesmo traceId.
Exemplo de conexão
Estrutura do OTLP JSON
Os rastreamentos do OpenTelemetry de todas as superfícies compartilham o mesmo layout de lote OTLP JSON:
Limitações
- Não há envio direto para seu endpoint gRPC do OTLP.
- Os payloads são JSON no formato de exportação OTLP, não protobuf bruto transmitido pela rede.