Вебхуки
Получайте события чатов и звонков клиента на собственный эндпоинт — с подписью и проверкой
Получайте события чатов и звонков в реальном времени на собственный сервер — Happ отправляет POST с JSON, когда что-то происходит, и вы можете запускать оповещения в Slack, поиск в CRM, аналитику или собственные рабочие процессы.
Подключение
- Откройте каталог Интеграции и нажмите Подключить на Вебхук чатов или Вебхук звонков.
- В модальном окне введите URL вебхука — HTTPS-эндпоинт, который принимает события.
- При желании задайте Секрет вебхука для проверки запросов.
- Нажмите Подключить.
Отдельной страницы вебхуков, переключателей подписки на события и журнала доставок в приложении нет — в модальном окне только URL и необязательный секрет.
Отправляемые события
| Вебхук | Срабатывает на |
|---|---|
| Чат | Каждое сообщение в отслеживаемом чате — от клиента, от агента и от оператора |
| Звонок | Завершение звонка — одна доставка после звонка с длительностью, метаданными и ссылкой на запись, если она есть |
Событие звонка
Вебхук звонка присылает один плоский JSON на каждый завершённый звонок (без вложенного result_json). Основные поля:
| Поле | Значение |
|---|---|
event_type | Всегда post_call |
call_uuid | Уникальный ID звонка — дедуплицируйте по нему, один и тот же звонок может прийти больше одного раза |
externalNumber | Телефон клиента, тот же, что в истории звонков; null, если номера не было (например, веб-звонок) |
direction | inbound, outbound или null |
summary, callSuccessful | AI-итог и вердикт: success, failure или unknown |
dynamicVariables | Переменные, с которыми запущен звонок, возвращаются обратно — передайте ID контакта в CRM или заказа при запуске звонка и прочитайте его здесь. Системные переменные VA (system__*) не передаются |
Полная схема и пример: api.happ.tools/reference.
Проверка запросов
Задайте секрет вебхука, и каждая доставка будет нести два заголовка:
| Заголовок | Значение |
|---|---|
Authorization | Basic <secret> — ваш секрет как есть, не base64 от user:password |
X-Signature | sha256=<hex> — HMAC-SHA256 от сырого тела запроса, вычисленный вашим секретом |
Для проверки пересчитайте HMAC-SHA256 от сырого тела (до разбора JSON) и сравните за константное время. Если ваша платформа не даёт доступа к сырому телу, проверяйте заголовок Authorization. Без секрета ни один из этих заголовков не отправляется. Тот же механизм, что и у инструментов агента.
Используйте только HTTPS, отвечайте 200 быстро (а сами события обрабатывайте асинхронно) и делайте обработку повторных доставок идемпотентной.
Вебхуки и вебхуки инструментов
| Вебхуки интеграций | Вебхуки инструментов | |
|---|---|---|
| Триггер | Автоматически по событиям | Вызывается AI во время разговора |
| Направление | Happ → ваш сервер | Happ → ваш сервер → ответ → AI |
| Ответ | Подтверждение HTTP 200 | JSON, который использует агент |
| Сценарий | Мониторинг, логирование, оповещения | Динамический поиск, действия |
О вебхуках, которые AI вызывает посреди разговора, см. Инструменты.
Дальше
- Инструменты — вебхуки, которые вызывает AI
- Уведомления — встроенные оповещения
- Интеграции — полный каталог
Help me solve it
Happ answers right away and hands over to a manager when needed.