- Конечные точки вебхуков получают
telephony.complete(телефонные звонки) илиweb.complete(веб-звонки и тестовые звонки с микрофоном в конструкторе) со стабильной полезной нагрузкой, описанной ниже,event_idдля каждой доставки, тайм-аутом 30 с и повторными попытками в течение до 24 ч. - Устаревший вебхук с единым URL получает одну синхронную попытку (тайм-аут 10 с, без повторных попыток) с немного отличающейся полезной нагрузкой — см. Различия устаревшей полезной нагрузки.
Полезная нагрузка запроса (доставки на конечные точки)
Причины завершения
Формат расшифровки
Каждая запись вtranscripts представляет собой один ход диалога. Роли:
user (речь звонящего), model (речь агента и вызовы инструментов),
tool (результаты инструментов) и system (события звонка, например
смена языка).
Для полностью структурированной истории ходов (с маркерами прерываний,
ack-prompts и исходными позициями) используйте
GET /v1/calls/{call_id}/history.
Отличия устаревшей полезной нагрузки
Устаревший webhook-конверт с одним URL имеет вид{"type": "telephony.complete" | "web.complete", "data": {…}} и содержит
без event_id; его data отличается от полезной нагрузки endpoint:
- Массив ходов находится в
history, а не вtranscripts(та же схема ходов, что и выше). - Набор полей представляет собой исходный отчёт об окончании звонка и может включать дополнительные внутренние поля помимо таблицы выше — считайте неизвестные поля информационными.
- Веб-звонки (
direction: "web") не содержатfrom_number/to_numberи добавляютorigin_domain. - Тестовые звонки микрофона в конструкторе передаются как
telephony.completeпо устаревшему пути (система endpoint сопоставляет их сweb.complete). - Координация перевода: когда звонок завершается переводом, устаревший
webhook вызывается синхронно и может вернуть
{"transfer_ready": false}, чтобы указать, что цель перевода не готова. Любой другой ответ (или отсутствие устаревшего webhook) позволяет переводу продолжиться. Доставки endpoint никогда не используются для этого.
Пример обработчика
Распространённые сценарии использования
Интеграция с CRM
Сохраняйте расшифровку каждого звонка и URL записи вместе с данными
клиентов.
Аналитика
Передавайте расшифровки в конвейер для тематического моделирования, извлечения
сигналов CSAT или мониторинга доли переводов.
Проверка качества
Открывайте звонки в инструменте QA для проверки человеком или пропускайте их через
собственную модель оценки.
Уведомления
Уведомляйте сотрудника при переводе или сбое.
Связанные материалы
telephony.incoming / web.incoming
Блокирующий аналог, запускаемый в начале звонка.
Каталог событий
Другие типы событий, на которые можно подписаться.
API истории звонков
Те же данные доступны через REST для дозагрузки или повторного воспроизведения.