OpenTelemetry-Traces
OpenTelemetry-Traces
Exportieren Sie OpenTelemetry-Traces als OTLP JSON in Ihren Observability-Stack.
ElevenLabs Agents können Gespräche als OpenTelemetry-Traces exportieren, die als OTLP JSON (resourceSpans) codiert sind. Leiten Sie sie an Datadog, Grafana Tempo, Honeycomb oder jedes Backend weiter, das OTLP verarbeitet.
ElevenLabs sendet Traces nicht direkt an Ihren OTLP-Collector. Sie erhalten OTLP-strukturiertes JSON über einen Webhook, eine API oder einen Monitoring-WebSocket und leiten es an Ihr Backend weiter.
Überblick
Exportieren Sie Traces über drei Schnittstellen. Alle drei verwenden dieselbe Trace-ID pro Gespräch und die Attributbenennung elevenlabs.*. Span-Struktur und Zeitsteuerung unterscheiden sich zwischen Post-Call/GET (transkriptbasiert) und Monitoring (ereignisbasiert).
Exportschnittstellen
Auswahl einer Schnittstelle
- Jeder abgeschlossene Anruf in Ihrem Data Warehouse: Post-Call-Webhook
- Einmaliger Export oder Korrektur: GET-Gespräch mit
format=opentelemetry - Live-Oberfläche für Supervisoren oder Warnungen: Monitoring-WebSocket
- Vollständige Timeline im Nachhinein: Post-Call-Webhook oder GET-Gespräch
- Tool-, MCP- oder Guardrail-Ereignisse bei ihrem Auftreten: Monitoring-WebSocket
Verwenden Sie traceId oder elevenlabs.conversation_id, um Daten schnittstellenübergreifend zusammenzuführen. Kombinieren Sie Monitoring für Live-Betrieb, Webhooks für dauerhafte Analysen und GET für Backfill.
Für jede Schnittstelle benötigen Sie einen OTLP-fähigen Collector oder Observability-Anbieter. Post-Call-Webhooks erfordern einen Workspace-Webhook-Endpunkt. Die GET-API und der Monitoring-WebSocket haben jeweils eigene API-Key-Scopes und Einrichtungsschritte. Weitere Informationen finden Sie in den folgenden Abschnitten.
Post-Call-Webhook
Nachdem ein Gespräch beendet wurde, sendet ElevenLabs eine POST-Anfrage, wenn ein Post-Call-Webhook konfiguriert ist, events transcript enthält und transcript_format auf opentelemetry gesetzt ist.
Der Webhook-type lautet post_call_transcription_otel (nicht post_call_transcription, das JSON-Transkripte zurückgibt).
Webhook-Payload
OpenTelemetry-Transkripte aktivieren
Über das Dashboard konfigurieren
Über die CLI konfigurieren
Über die API konfigurieren
Workspace-Webhook erstellen
Erstellen Sie im ElevenAgents-Dashboard einen Workspace-Webhook mit Ihrer HTTPS-URL und Authentifizierung.
Post-Call-Webhook zuweisen
Öffnen Sie die Agent-Einstellungen, weisen Sie den Webhook als Post-Call-Webhook zu, aktivieren Sie das Ereignis Transkript und schalten Sie OpenTelemetry-Transkript-Payloads ein.

OpenTelemetry-Transkript-Webhooks enthalten kein Audio. Verwenden Sie post_call_audio, wenn Sie
Aufzeichnungen benötigen.
Geben Sie für Erfolg 2xx zurück. 4xx und 5xx gelten als Fehler.
Wiederholungsversuche gelten für Transkript-Webhooks (einschließlich OpenTelemetry) nur, wenn Wiederholungsversuche aktivieren für den Workspace-Webhook eingeschaltet ist. Bei temporären Fehlern (5xx, 429, 408) wird bis zu 5-mal wiederholt; bei 4xx nicht. Audio-Webhooks werden nie erneut versucht. Wiederholte Fehler können den Webhook automatisch deaktivieren. Weitere Informationen und HIPAA- Ausnahmen finden Sie unter Post-Call-Webhooks.
Zustellung
Trace-Struktur
Jede Zustellung ist ein vollständiger Trace: ein Root-Span plus untergeordnete Spans.
Agentenantwort-Spans enthalten elevenlabs.reasoning_content, wenn die Zustellung eine Reasoning-Zusammenfassung enthält.
Das Timing stammt aus time_in_call_secs des Transkripts und Anrufmetadaten. Der Root-Span setzt elevenlabs.source = post_call_webhook und den Status ERROR, wenn der Anruf nicht mit einer normalen Client-Trennung endete.
GET-Gespräch
Fordern Sie das OpenTelemetry-Format bei Gespräch abrufen an, um dasselbe otlp_traces-Objekt wie beim OpenTelemetry-Post-Call-Webhook sowie das vollständige Gesprächsmodell zu erhalten.
Erfordert einen API-Key mit CONVAI_READ. Mit format=json (Standard) wird otlp_traces weggelassen.
Zu den erwarteten Span-Namen gehören elevenlabs.conversation, elevenlabs.recv.user_transcript und elevenlabs.recv.agent_response.
Monitoring-WebSocket
Echtzeit-Monitoring erfordert einen Enterprise-Workspace oder das Feature-Flag realtime-monitoring.
Konfiguration, Steuerbefehle und Zugriffsanforderungen finden Sie unter Echtzeit-Monitoring.
Streamen Sie OpenTelemetry-Trace-Daten als OTLP JSON, während ein Gespräch läuft. Jede Nachricht ist ein kleines resourceSpans-Batch, kein einzelner Trace nach Gesprächsende.
Die Authentifizierung erfordert CONVAI_WRITE, xi-api-key (oder Authorization) und EDITOR-Zugriff auf den Agenten-Workspace. Stellen Sie die Verbindung her, nachdem das Gespräch gestartet wurde.
Monitoring für den Agenten aktivieren
Setzen Sie vor dem Anruf monitoring_enabled: true und konfigurieren Sie monitoring_events. Siehe Echtzeit-Monitoring.
Sitzungsprotokoll
- Stellen Sie mit Authentifizierungs-Headern eine Verbindung her.
- Empfangen Sie
{"type": "connected"}. - Empfangen Sie ein Root-Span-Batch (
elevenlabs.conversation,elevenlabs.source=monitoring). - Empfangen Sie den zwischengespeicherten Verlauf (etwa die letzten 100 Ereignisse), dann
{"type": "history_complete"}. - Empfangen Sie Live-Span-Batches, wenn Ereignisse auftreten.
Mit events_format=json (Standard) gibt der WebSocket rohe Client-Ereignisse anstelle von resourceSpans zurück. Die Steuerbefehle entsprechen Echtzeit-Monitoring.
Trace-Struktur
Strukturierte Ereignisse werden dedizierten Attributen zugeordnet (zum Beispiel elevenlabs.user.text, elevenlabs.agent.text). Unbekannte Ereignisse verwenden elevenlabs.event.data mit gekürztem JSON.
Gehen Sie nicht davon aus, dass die Ereignisreihenfolge der Sprechreihenfolge entspricht. Korrelieren Sie Live-Spans mit Post-Call-Daten über
dieselbe traceId.
Beispielverbindung
OTLP-JSON-Struktur
OpenTelemetry-Traces aller Schnittstellen verwenden dasselbe OTLP-JSON-Batch-Layout:
Einschränkungen
- Kein direkter Push an Ihren OTLP-gRPC-Endpunkt.
- Payloads sind wie OTLP-Export strukturiertes JSON, kein rohes Protobuf über die Verbindung.