Rastreamentos do OpenTelemetry
Os ElevenLabs Agents podem exportar conversas como rastreamentos do OpenTelemetry codificados como JSON OTLP (resourceSpans). Encaminhe-os para Datadog, Grafana Tempo, Honeycomb ou qualquer backend que receba OTLP.
A ElevenLabs não envia rastreamentos diretamente para seu coletor OTLP. Você recebe JSON no formato OTLP de 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 o tempo dos spans diferem entre pós-chamada/GET (baseados na 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 reparo pontual: GET de conversa com
format=opentelemetry - Interface de supervisão ao vivo ou alertas: WebSocket de monitoramento
- Linha do tempo completa e detalhada depois da chamada: webhook pós-chamada ou GET de conversa
- Eventos de ferramentas, MCP ou proteções à medida que acontecem: WebSocket de monitoramento
Use traceId ou elevenlabs.conversation_id para vincular dados entre as superfícies. Combine o monitoramento para operações ao vivo, webhooks para análises duráveis e GET para preenchimento de dados.
Você precisa de um coletor ou fornecedor de observabilidade compatível com OTLP para cada superfície. Os 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 o término de uma conversa, 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 sua 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 Transcript 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 em caso de sucesso. 4xx e 5xx contam como falhas.
As tentativas são aplicadas aos webhooks de transcrição (incluindo OpenTelemetry) e áudio somente quando Ativar novas tentativas está habilitado para o webhook do workspace. Erros transitórios (** 5xx **, **429 **, **408 **) tentam novamente até 5 vezes; 4xx não. Falhas repetidas podem desativar o webhook automaticamente. Consulte Webhooks pós-chamada para ver detalhes e exceções da HIPAA.
Entrega
Formato do rastreamento
Cada entrega é um rastreamento completo: um span raiz mais spans 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 OpenTelemetry pós-chamada, além do modelo completo da conversa.
Exige 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 exige um workspace Enterprise ou a flag de recurso realtime-monitoring.
Consulte Monitoramento em tempo real para configuração,
comandos de controle e requisitos de acesso.
Transmita dados de rastreamento do OpenTelemetry como JSON OTLP enquanto uma conversa estiver em andamento. Cada mensagem é um pequeno lote resourceSpans, não um rastreamento único ao fim da chamada.
A autenticação exige CONVAI_WRITE, xi-api-key (ou Authorization) e acesso EDITOR ao workspace do agente. Conecte-se após o início da conversa.
Ativar o monitoramento no agente
Defina monitoring_enabled: true e configure monitoring_events antes da chamada. Consulte Monitoramento em tempo real.
Protocolo de 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), depois
{"type": "history_complete"}. - Receba lotes de spans ao vivo à medida que 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 de fala. Correlacione spans ao vivo com dados pós-chamada usando
o mesmo traceId.
Exemplo de conexão
Estrutura JSON OTLP
Os rastreamentos do OpenTelemetry de todas as superfícies compartilham o mesmo layout de lote JSON OTLP:
Limitações
- Não há envio direto para seu endpoint gRPC OTLP.
- Os payloads são JSON no formato de exportação OTLP, não protobuf bruto em trânsito.