Recordings and transcripts
What a finished call leaves behind, and how to read it.
Every call produces a detail record. Answered calls also produce a transcript and, unless you have turned it off, an audio recording.
curl "$TONE_API/v1/calls/$CALL" -H "Authorization: Bearer $TONE_KEY"
curl "$TONE_API/v1/calls/$CALL/transcript" -H "Authorization: Bearer $TONE_KEY"
curl "$TONE_API/v1/calls/$CALL/recording" -H "Authorization: Bearer $TONE_KEY" -o call.wavThe call record
Beyond the obvious — outcome, duration, what was billed — a call carries:
| Field | |
|---|---|
summary | A short account of what happened, written after the call |
outputs | The output variables you declared on the agent, extracted from the transcript |
evaluations | Your evaluation criteria, each with a verdict and a rationale |
variables | The per-call values this call was given |
agentVersion | Which version of the agent ran it |
endReason | How it ended, in more detail than disposition |
Recordings
The recording is a stereo WAV: the caller on the left channel, the agent on the right. Two channels rather than a mix, because a mixed recording cannot answer "who was talking?" — which is the question you have when reviewing a call that went wrong.
It streams as audio/wav and is not wrapped in the usual envelope. Expect
several megabytes.
Recording is controlled per number:
curl "$TONE_API/v1/numbers/$NUMBER" -X PATCH \
-H "Authorization: Bearer $TONE_KEY" -H 'content-type: application/json' \
-d '{"recordCalls": false}'⚠️ recordCalls can only turn recording off. It is combined with the
platform-level setting, so it can never enable recording where the deployment has
it disabled. Telling the caller they are being recorded is your obligation, not
ours — the opening line is the usual place.
Absences are meaningful
A call with no transcript is a call with no speech: unanswered, busy, or a
sandbox call where nobody spoke. A call with no recording either was never
connected or ran on a number with recording off. hasRecording and
hasTranscript on the call record tell you before you fetch.