Skip to main content

Детали звонка

Открыв строку, вы увидите весь разговор целиком со всем, что платформа зафиксировала о нём.

Транскрипт и события звонка

Транскрипт показывает каждую реплику по порядку, а переходы между нодами отображаются прямо перед репликой той ноды, в которую произошёл переход. Рядом с транскриптом платформа показывает события звонка в том месте, где они произошли — у каждого есть иконка, краткая сводка и статус-пилюля, по клику на которую раскрывается полная информация (запрос/ответ, стадии или аргументы):
  • «Вызов функции» — был вызван инструмент или функция, с аргументами, ответом и длительностью выполнения.
  • «Поиск по базам знаний» — был выполнен запрос к базе знаний, с найденными пассажами и их релевантностью.
  • «Перевод звонка» — попытка перевода, со стадиями (hold, dialing, answered, briefing, bridged и так далее) и итогом.
  • «Напоминание о тишине» — было воспроизведено напоминание.
  • «Авто-завершение» — звонок завершился автоматически, например после долгой тишины.
  • «Автоответчик» — был обнаружен автоответчик, и агент оставил сообщение. У события бывает пометка «маркер на промежуточном»: автоответчик опознан по характерной фразе («вы позвонили…», «оставьте сообщение») прямо посреди приветствия, не дожидаясь, пока распознавание отдаст готовый результат.
  • «Абонент положил трубку» — звонок завершил человек.
  • «Code-узел» — выполнился code-шаг и обновил переменные.
  • Событие с кодом turn_rollback — пауза расколола фразу абонента надвое; см. реплику, склеенную из обрывков ниже.
Список типов этим не исчерпывается: там же появляются «Наблюдатель», «Коррекция агенту», «Инцидент», «Разметка паузы», «Функция до звонка» и «Функция после звонка», ошибки распознавания, синтеза и модели. Статус-пилюля у события одна из: ок, предупреждение, ошибка, в процессе, пропущено, таймаут, подавлена. События, произошедшие после последней реплики, отображаются хвостом под транскриптом. Некоторые реплики несут собственные пометки:
  • «прервана» — реплика была прервана абонентом, показана только произнесённая часть.
  • «не прозвучало» — реплика была сгенерирована, но абонент её не услышал; она показана приглушённой, чтобы можно было понять, что агент собирался сказать, не приняв это за реально услышанное. Подсказка у пометки различает две причины: звонок оборвался раньше, чем реплика зазвучала, — или речь перебили до первого звука.
  • «брифинг оператору» — приватное сообщение, которое агент передал оператору-человеку во время перевода; абонент его не слышит.
  • «сказано во время реплики агента» — реплика абонента, прозвучавшая поверх непрерываемой реплики агента; см. ниже.
Реплики, которые агент произносит вне обычного хода разговора — напоминание при тишине, прощание, сообщение на автоответчик, фраза на удержании, — показываются каждая отдельным блоком со своей меткой времени и своими метриками. Прерывание такой реплики правит именно её, а не предыдущую обычную. Такая реплика тоже получает пометку «не прозвучало», если её перебили до первого звука.
Перебивание обрезает ровно ту реплику, которую перебили. Если на одном ходу агент говорил дважды, обрезка ляжет на вторую фразу и не тронет первую — ту, которую абонент действительно услышал.

Абонент говорил, когда перебивать было нельзя

Если на узле выключено перебивание, а абонент всё равно заговорил поверх реплики агента, его слова сохраняются отдельной записью с пометкой «сказано во время реплики агента». Разговор при этом идёт своим чередом: хода по такой реплике не было, и агент на неё не отвечал — узел не разрешал себя перебить. Запись видна везде, где виден разговор:
  • в карточке звонка — пузырём абонента с этой пометкой;
  • в стенограмме для пост-колл аналитики — строкой Client [during agent's reply]: …;
  • в транскрипте вебхуков — у такой строки стоит out_of_turn: true;
  • в выгрузках отчёта — как обычная реплика абонента.
В метриках ходов (GET /v1/calls/{call_id}/turns) такой записи нет: хода не было, мерить нечего. По той же причине она не увеличивает счётчик ходов в Истории.
Это ровно те слова, которые важнее всего не потерять. Поверх дисклеймера абонент чаще всего говорит «не звоните мне больше» или «вы ошиблись номером». Если вы строите на транскрипте автоматику — отказы, реестр «не звонить», разбор жалоб, — читайте и записи с этой пометкой, а не только реплики внутри ходов.
Непрозвучавшая реплика не считается сказанной — и это меняет ход разговораРеплика с пометкой «не прозвучало» не попадает ни в подсказку языковой модели на следующем ходу, ни в расшифровку для пост-колл аналитики, ни в разбор отсылок вроде «да, это он». Чего абонент не слышал, того для модели не было.Но потерянная реплика остаётся потерянной: агент её не переигрывает. Если вступление перебили до первого звука, абонент его так и не услышит — а разговор пойдёт дальше так, будто вступления не было.
На странице деталей также отображаются итоговые значения переменных звонка и версия сценария, на которой прошёл звонок.

Реплика, склеенная из обрывков

Абонент, сделавший паузу внутри фразы — «Да… нет, не хочу», — для распознавания звучит как две реплики. Если агент к этому моменту ещё не издал звука, платформа откатывает непроизнесённый переход и склеивает обрывки в одну реплику. История такого звонка читается не так, как звучит запись, поэтому стоит узнавать три вещи:
  • Одна реплика абонента там, где в записи их две. На записи стоит merged_from: N — сколько обрывков склеено, — и список fragments с текстом, временем и фазами распознавания каждого. Время самой реплики и её фазы ASR и VAD — у первого обрывка: абонент начал говорить тогда. Языковая модель агента раскола не видит, ей достаётся одна обычная реплика.
  • Агент как будто повторяется. Если продолжением оказался шум, а не речь, переход остаётся, а реплика узла просто произносится заново — под новым номером тёрна и без реплики абонента между ними. Событие turn_rollback рядом имеет статус redo и причину noise. Частые перебивания шумом — повод посмотреть настройки перебивания у агента, а не Историю.
  • Переход в узел, который ничего не сказал. В деталях события отката есть discarded_path — узлы, куда диалог унесло по обрывку до того, как переход отменили. Это и есть объяснение перехода в транскрипте, под которым нет реплики.
Если откат не состоялся, то же событие со статусом committed называет причину: агент успел заговорить (agent_spoke), в отменённой попытке уже был вызов в ваши системы (external_side_effect), абонент услышал реплику (audio_started), сработал лимит в четыре обрывка (limit) или канал не передал признак звука (no_signal). Ни одна из них не влияет на технический вердикт звонка.

Задержки хода диалога

Под каждым ходом стоит компактная строка задержек, по клику раскрывающаяся в детали. Фазы складываются арифметически: ASR + ожидание + LLM + TTSход целиком.
  • ASR — от конца речи абонента до финального транскрипта.
  • ожидание — от финального транскрипта до фиксации конца реплики (производная величина: у потокового распознавания это остаток окна endpointing, у пакетного — около нуля).
  • LLM — от транскрипта до первого токена ответа; внутрь этой фазы попадает вызов классификатора.
  • TTS — от первого предложения в синтез до первого фрагмента звука.
  • ход целиком — итог: от конца речи клиента до первого звука агента.
Фаза VAD (от конца речи до решения, что реплика закончена) целиком включает в себя ASR и поэтому с ней не суммируется — она показывается в развороте деталей, а не в компактной строке. У старых сессий производная «ожидание» считается на лету. Если провайдер не отдал точное время хода, значение помечается как оценка платформы. Деталь звонка: транскрипт с событиями между репликами (переходы, предупреждение) и пометкой «не прозвучало»

Пост-колл аналитика

Карточка аналитики показывает результат пост-колл анализа, когда он готов: резюме, тональность, бейдж успешности, таблицу извлечённых пользовательских полей и уровень аналитики. Если анализ был пропущен, карточка объясняет причину, например автоответчик или отсутствие речи. Кнопки «Перезапустить аналитику» и «Перезапустить (глубокий уровень)» запускают повторный анализ звонка. Состав полей берётся из той версии агента, которой шёл звонок: версия, опубликованная, пока звонок ещё шёл, разбор этого звонка не меняет.
Важно и другое: повторный запуск из кабинета читает текущий черновик агента, а не версию, которой шёл звонок. Для звонка месячной давности обычно это и нужно; если нет — сначала опубликуйте нужную версию или читайте исходный результат в записи самого звонка.
Карточка Пост-аналитика с сообщением о неудавшемся анализе и кнопками повторного запуска

Техническое здоровье

Карточка «Техническое здоровье» показывает, были ли у звонка технические проблемы: «ОК», «Предупреждение» или «Ошибка», с перечислением конкретных причин (например, неудавшийся перевод, медленный ход разговора или ошибка распознавания речи). Если причин нет, карточка так и пишет: «Причин нет — звонок прошёл штатно». Недозвон технического здоровья не портит, если причина на стороне абонента или его оператора: не отвечает, занято, отклонил, неверный номер, номер помечен спамом. Ошибкой становится только сбой инфраструктуры набора — авторизация транка, недоступность провайдера, ошибка маршрутизации; незнакомая причина даёт предупреждение, а не тишину.

Код оператора у недозвона

У недозвона рядом с причиной показывается числовой код, присвоенный оператором связи — например «Занято (486)». Трактовки кодов у операторов различаются, поэтому платформа не выдаёт свою расшифровку, а прямо советует уточнять её у своего оператора. Код есть в кабинете, в выгрузках отчётов, в Web API и в вебхуках — у каждой строки, так что разбор выборки не требует ручного сопоставления. Отдельно стоит знать: причина «абонент отклонил» у большинства операторов на самом деле означает «занято», и платформа теперь различает эти два случая. Для исторических звонков кода нет — он не восстанавливается. Техническое здоровье отражает, как отработала техника звонка, — это отдельная характеристика и от качества разговора (тональность и успешность из аналитики), и от соблюдения правил (см. инциденты). Чтобы найти звонки с проблемами, возьмите фильтр «Здоровье: любое» на странице Истории. Карточка Техническое здоровье с бейджем Предупреждение и причиной Недозвон с кодом оператора: «Неверный номер (404)» — при этом технический вердикт остаётся «ОК»

Отменённый набор

Набор, остановленный до соединения — кнопкой в кабинете или запросом POST /v1/calls/{id}/end через Web API, — получает собственную причину «отменён оператором» в корзине «не соединились». Что из этого следует:
  • попытка контакта на отмену не тратится, частотный потолок на номер — тоже: вы остановили набор сами, платформа не считает это попыткой дозвониться;
  • техническое здоровье звонка отмена не портит — это решение человека, а не сбой платформы;
  • отмена функцией агента до набора и отмена командой извне — разные причины: в разборе инцидента и в отчётности кампании это разные события.
Исторические строки не переписаны. Отличить в старых записях отменённый набор от честного «нет речи» нечем — такой информации в них просто не сохранилось. Разбивка по причинам на границе 22 сентября 2026 разъезжается.

Запись разговора

Если звонок был записан, карточка записи показывает плеер с play/pause, регулировкой скорости воспроизведения, mute и скраббером, по которому можно кликать или тянуть вдоль волны, а также длительность, размер и формат записи и кнопку «Скачать». Пока запись ещё финализируется, карточка показывает индикатор обработки; если запись не удалась или была удалена по истечении срока хранения, карточка сообщает об этом. Отдельный случай — слишком короткий звонок: абонент положил трубку сразу, записывать было нечего, и это не сбой записи. Длительность в карточке записи — авторитетная, сохранённая платформой; оценка браузера используется только как запасной вариант, поэтому число в шапке сессии и длина аудио в плеере совпадают.
Начало разговора попадает в запись целиком. На входящем звонке это первая реплика абонента, на исходящем запись начинается с момента, когда абонент взял трубку, — гудки в файл не попадают.Если часть звука всё же потеряна, на её месте в записи стоит тишина, а карточка помечает пропуск: так видно, что аудио короче разговора, а не что абонент молчал. Порог срабатывания консервативный — помечаются заметные потери, примерно от секунды.
Карточка записи разговора с плеером

Webhook-доставки

Карточка webhook-доставок перечисляет все webhook-уведомления, отправленные по этому звонку: событие, статус доставки (delivered, pending или dead), количество попыток, код ответа и историю попыток. Кнопка повтора позволяет вручную переотправить доставку.

Действия

  • «Открыть агента» — переход к агенту, который обработал звонок.
  • «Прикрепить в Copilot» — добавляет звонок вместе с резюме, тональностью и извлечёнными полями в контекст Copilot-ассистента агента.
  • «Скачать лог» — экспортирует полную запись звонка в файл JSON, включая транскрипт, события, переменные, аналитику и конфигурацию сценария, действовавшую на момент звонка. Файл может содержать персональные данные — обращайтесь с ним соответственно.