Skip to main content
Каждое тело вебхука содержит поле type, значение которого соответствует одному из типов событий на этой странице. Когда вы подписываетесь на конечную точку, массив events должен содержать нужные типы событий (или быть пустым для подписки на все события). Эти события доставляются в двух вариантах:
  • Доставки в конечную точку всегда являются неблокирующими уведомлениями с повторными попытками: отвечайте любым статусом 2xx; конверт содержит event_id для дедупликации.
  • Блокирующие обмены выполняются только через устаревший вебхук с одним URL: запрос конфигурации telephony.incoming / web.incoming (номера в режиме вебхука и ключи виджетов, тайм-аут 10 с) и отправка инструментов в режиме вебхука tool dispatch. Ваш ответ определяет ход текущего звонка.
Примеры полезной нагрузки ниже показывают конверт конечной точки в порядке передачи по сети (ключи отсортированы по алфавиту: data, event_id, type); устаревшие доставки содержат те же data без event_id.

События звонков

telephony.incoming

Отправляется, когда входящий звонок поступает на один из ваших номеров телефона. Доставки на эндпоинт — это уведомления без ожидания ответа, отправляемые для каждого входящего звонка независимо от того, настроен ли для номера агент или вебхук. Номера без назначенного агента дополнительно получают блокирующий запрос конфигурации в устаревшем вебхуке — полную схему запроса и ответа см. в telephony.incoming / web.incoming.

telephony.complete

Отправляется, когда завершается входящий или исходящий телефонный звонок. Неблокирующее. Включает полную расшифровку, URL записи и сводку по биллингу. Схему полезной нагрузки см. в telephony.complete / web.complete.

telephony.tool

Отправляется после вызова инструмента-функции во время телефонного звонка. Неблокирующее уведомление для аудита — к моменту доставки этого события инструмент уже выполнен; оно охватывает ваши собственные инструменты-функции (не встроенные инструменты, инструменты базы знаний, подключений приложений или MCP).
response — это результат выполнения: {"status": <http status>, "response": <your endpoint's JSON>} при успехе или {"status": <status>, "error": "<message>"} при ошибке.

web.incoming

Эквивалент telephony.incoming для веб-канала, отправляемый при запуске сеанса веб-виджета или тестового звонка с микрофона в конструкторе. Доставки на эндпоинт выполняются без ожидания ответа для каждого веб-сеанса. Публикуемые ключи в mode="webhook" дополнительно получают блокирующий запрос конфигурации в устаревшем вебхуке — этот блокирующий запрос имеет другую структуру (origin_domain, publishable_key_prefix; номера телефонов отсутствуют). См. telephony.incoming / web.incoming.
from_number всегда содержит литерал "web". Для сеансов виджета в режиме вебхука to_number пусто (номер агента для сеанса назначается после конфигурации); для тестовых звонков с микрофона в конструкторе origin_domain и publishable_key_prefix пусты.

web.complete

Эквивалент telephony.complete для веб-канала, охватывающий звонки через веб-виджет (direction: "web") и тестовые звонки с микрофона в конструкторе (direction: "test"). Неблокирующее. Структура полезной нагрузки такая же, как у telephony.complete, с добавлением origin_domain; значение from_number устанавливается в "web".
В устаревшем вебхуке с единым URL тестовые звонки с микрофона в конструкторе исторически передаются как telephony.complete — там только звонки с direction: "web" используют тип web.complete. Система эндпоинтов сопоставляет и веб-звонки, и тестовые звонки с web.*. Исторические полезные нагрузки могут содержать устаревшие значения direction: widget или mic.

web.tool

Эквивалент telephony.tool для веб-канала. В data передаётся origin_domain вместо from_number / to_number.

События качества

call.graded

Отправляется при завершении запуска ИИ-оценки для звонка. Не блокирует выполнение.
Звонок может быть оценён несколько раз — за быстрой эвристической оценкой часто следует оценка полной моделью, когда становится доступна запись, также возможна повторная оценка вручную. Каждый завершённый запуск отправляет собственное событие call.graded; считайте последнюю дату graded_at источником достоверных данных.

issue.reported

Отправляется при создании отчёта о проблеме — либо пользователем из панели управления (source: "user"), либо автоматически при оценке звонка (source: "system"). Не блокирует выполнение.
Повторная оценка звонка заново формирует созданные системой отчёты о проблемах, из-за чего для повторно созданных отчётов снова отправляется issue.reported. Выполняйте дедупликацию по call_id + title, если вам нужно только одно уведомление для каждой исходной проблемы.

События тестовых звонков

test-call.completed

Отправляется, когда запуск тестового звонка достигает конечного статуса — completed или failed, включая запуски, которые завершились ошибкой при запуске и не создали звонок. Не блокирует выполнение. Полезно для интеграции пакетных запусков CI с вашими системами чатов и уведомлений.

События оповещений

alert.triggered

Отправляется, когда правило оповещения с включённым каналом Доставлять в вебхуки разработчика пересекает заданный порог. Не блокирует выполнение. Правило срабатывает один раз, а затем соблюдает период ожидания, поэтому длительное нарушение создаёт одно событие за каждое окно периода ожидания.
См. руководство по оповещениям, чтобы создавать правила, настраивать метрики, периоды ожидания и каналы по email / Slack.

Связанные материалы

telephony.incoming / web.incoming

Блокирующая полезная нагрузка входящего вызова, на которую необходимо ответить.

telephony.complete / web.complete

Расшифровка и метрики после вызова.

Конечные точки вебхуков

Подпишите URL на подмножество этих событий.

Инструменты функций

Как создаются события telephony.tool / web.tool.