What a trace holds
- Spans, each tagged with a normalized kind:
llm,tts,stt,vad,tool,code,telephony,livekit,session, orother. GenAI spans carry model, token, and cost fields promoted for fast filtering. - Logs, attached to a span or to the trace as a whole, with a severity and body.
- A session reference (room / call / session id) that links a trace back to its conversation when the two can be matched.
Send telemetry
If your calls come from Vapi, you get traces for
free — Zelto turns each pulled call’s Vapi platform logs into a trace, with no
exporter to install. See
Vapi → Traces.
owner or
admin role. Point your exporter at Zelto’s
ingest host and authenticate with that key (a bearer token):
/v1/traces and logs to /v1/logs — the
OpenTelemetry SDK appends those paths to the endpoint above for you. Both
OTLP/HTTP encodings are accepted — protobuf (what most exporters send by
default, including the OpenTelemetry Python SDK a LiveKit agent uses) and
JSON — so you don’t have to match a specific one. gRPC (:4317) is not
accepted; use the HTTP endpoint above.
The OpenTelemetry Python SDK (which LiveKit’s agents run on) sends
http/protobuf and does not implement http/json, so leave
OTEL_EXPORTER_OTLP_PROTOCOL at http/protobuf (its default). Zelto accepts
both encodings regardless.429 with a Retry-After header — standard OpenTelemetry
exporters honor it and back off automatically, so no batches are lost. If your
agent legitimately exports at a high volume, ask your Zelto contact to raise the
per-organization ingest rate.
If traces aren’t appearing, confirm the exporter is pointed at the ingest host
above and is sending a valid
Authorization: Bearer ingest key.Native JSON
If your agent doesn’t speak OTLP, post a simpler Zelto-native JSON body of spans and logs to/webhooks/otel with the same bearer key. Use OTLP where you can —
it’s the zero-code path.
Backfill from tool calls
Already recording tool calls but not yet exporting OpenTelemetry? Zelto can project your existing tool-call history into traces so the view isn’t empty while you wire up an exporter — each tool call becomes atool span, and a
call’s tool calls share one trace. Only calls from the last 90 days are kept (the
trace retention window). Ask your Zelto contact to run the tool-call backfill for
your organization.
Related
- Conversations — the transcript-and-analysis view of a call; a trace links to its conversation when the session id matches.
- LiveKit — point a LiveKit agent’s OpenTelemetry exporter at Zelto to stream traces.

