History and call summary

Call history

GET /calls/history/ — the ended calls of the key’s lines, newest first. Each has the fields of GET /calls/<id>/ and behaviour — a short summary once the recording is analysed (else null).

The next page comes with the cursor parameter set to next_cursor. An empty next_cursor means the last page.

ParameterFinds
channel_idOne line of the key
since, untilCall start from this moment and before that one (ISO 8601; UTC when no zone)
directionin — incoming, out — outgoing
answeredtrue — somebody talked, false — nobody did (missed, declined)
markerCalls with such a moment; several comma-separated — with any of them (list below)
sideclient or ours — whose moment: the client’s or ours (an operator, the program)
min_answer_wait_msThe client once waited at least this many milliseconds for an answer
limitCalls per page: 50 by default, at most 100
curl "https://dialogs.tehprof.kz/api/v1/gw/calls/history/?marker=interruption&side=ours&since=2026-11-01" \
  -H "Authorization: Bearer gw_xxx"

{ "calls": [ { "id": 5288, "direction": "in", "duration_sec": 214,
    "behaviour": { "talk_ms": { "ours": 81200, "client": 96400 },
                   "interruptions": { "ours": 3, "client": 1 }, ... } } ],
  "next_cursor": "MjAyNi0xMS0x..." }

Hidden dialogues and rings to employees’ phones during forwarding are not in the history.

Repeat calls

Every call has a repeat field — whether this client called this line before. Only the same client’s incoming calls to the same line count.

  • count_7d — how many times the client called the line in the 7 days before this call.
  • last_at — when they called last before this one; null — never.
  • last_answered — somebody talked in that call. false — the client calls again after a missed call: call them back first.

Call summary

GET /calls/<id>/behaviour/ — the conversation in numbers: who talked how long, how fast they answered, how the sides passed the floor to each other. It is computed from the call recording’s sound — no speech recognition and no AI.

  • Calls with a recording have a summary.
  • While the summary is being computed, the answer is ready: false.
  • When it is ready, call.analysed comes to the webhook.

Sides: ours — the operator or the program, client — the client. On a one-track recording (sides: 1) there is only talk and silence in all.

FieldMeaning
talk_ms, overlap_ms, silence_msHow long each side talked; both at once; nobody
interruptionsHow many times a side began over the other and kept on for a second or more
answer_wait_msmedian, max — how long the client waited for ours to answer
turnschanges — how many times the floor passed to the other side, per_minute — the same per minute, longest_ms — each side’s longest monologue
response_latency_msHow soon a side began after the other stopped: median, p90, count. Below zero — it began before the other finished
speech_rateSyllables a second while the side talks: over the call, in the first and the last third
backchannelsShort «uh-huh», «yes» over the other side’s speech: the listener shows they are listening. Not an interruption
filled_pausesHeld even sounds of 0.3 s or more: «er», «mm» or a drawn-out syllable
pitchVoice pitch: median_hz and range_st — how far it moves, in semitones
loudness_dbMean loudness of the side’s speech. Depends on the line’s level: compare within one call
entrainmentHow much the sides’ pace, loudness and pitch drew together from the first third of the call to the last: 1 — they ended alike, 0 — no change, below zero — they drew apart
dynamicsEach side’s loudness, pace and pitch range minute by minute
markersMoments on the call’s timeline: at_ms, kind, side, duration_ms
Moment (`kind`)What happened
interruptionBoth talked at once for over a second
raised_voiceA side spoke twice as loud as its usual for a second or more
silenceThe longest pauses; a pause has no side
pause_after_oursAfter our turn the client was silent for a second or more
loudness_jumpA client’s utterance four times the power of their recent ones
longest_monologueEach side’s longest monologue

The version field tells which fields the summary has: calls analysed earlier may lack some of them.

What was at the client’s end

The summary also tells what was heard at the client’s end: hold music, ringback, a speakerphone, another voice. These moments are in markers with a confidence from 0 to 1, and marker in the history finds them too.

Moment (`kind`)What happened
hold_musicHold music
repeated_promptThe same recording played again: a voice menu or a bot repeated its prompt
ringbackTelephone tones at the client’s end
client_deviceThe client’s device by its sound: handset, speakerphone, headset. In the history — the device parameter
client_voice_changedAnother voice spoke at the client’s end
background_changedThe background got louder or quieter and stayed so: direction, delta_db

Install TehProf Dialogs in your CRM

Installing the app and connecting WhatsApp by QR code are free. The line subscription is billed separately.