Документация › Интеграции › Вебхуки
Вебхуки, события проекта на ваш адрес
Обновлено 2 октября 2026 г.
Платформа сама отправляет POST-запрос на ваш адрес, когда в проекте что-то произошло: бот создал заявку, начался новый диалог, прошла оплата, отключился WhatsApp. Так ваша система, Zapier, Make или своя таблица узнают о событии сразу, без опроса.
⏱ 6 мин · 👤 для владельца и разработчика · 🟢 live
За 30 секунд:
- Интеграции → Вебхуки → «Добавить вебхук»: название, адрес
https://, события, по желанию заголовки для авторизации.- Кнопка «Тест» шлёт пробный запрос и говорит честно: адрес ответил 2xx и вебхук работает, или ответил ошибкой (и какой), или до него не достучаться.
- Ваш сервер не ответил или ответил 5xx: платформа повторит, до пяти раз.
- Не путайте с функцией «Своя интеграция по API»: там бот сам идёт к вам посреди разговора, а здесь платформа сообщает о событиях.
Как подключить
- Интеграции → Вебхуки → «Добавить вебхук».
- Название для себя (например, «CRM вебхук»).
- Адрес: только
https://и только публичный адрес (неlocalhostи не внутренняя сеть). - События: отметьте нужные (список ниже).
- Заголовки запроса (по желанию): JSON для авторизации, например
{"Authorization": "Bearer ваш_токен"}. Не нужны, оставьте поле пустым. При редактировании заголовки не показываются: пустое поле сохраняет прежние. - Сохраните и нажмите «Тест»: на адрес придёт запрос с
"event": "test",project_id,integration_id,timestampиmessage. На экране появится «Адрес ответил 200: вебхук работает» или, если адрес вернул ошибку, её код и что проверить.
События
| Событие | Когда приходит |
|---|---|
lead_created | бот оформил заявку |
conversation_started | бот ответил в новом диалоге |
message_received | бот ответил в уже существующем диалоге |
payment_received | прошла оплата |
ai_error | бот не смог ответить клиенту из-за ошибки ИИ |
whatsapp_disconnected | WhatsApp отключился |
schedule_problem | движок записи не смог разобрать график |
tokens_low | баланс проекта на исходе |
trial_expiring | заканчивается бесплатный период |
Что приходит
Тело всегда одной формы:
{
"event": "lead_created",
"project_id": "…",
"timestamp": "2026-10-01T10:15:00.000Z",
"data": { … }
}Что лежит в data:
lead_created:client_name,phone,lead_status,summary,source_event_name.conversation_started,message_received:chat_id,user_message(что написал клиент),ai_response(что ответил бот),channel.- Остальные события:
event,project_id,project_name,titleиbody(готовый текст уведомления, тот же, что получает владелец),data(подробности события) иfired_at.
Надёжность
- Срок ответа 10 секунд. Не уложились, и это считается сбоем.
- Повторы. Сбой связи, таймаут, ответ 5xx, 408 или 429: событие встаёт в очередь повторов. Очередь разбирается раз в три часа, попыток до пяти, паузы растут, последняя попытка примерно через полтора дня после первой. Ответ 4xx значит «не приму», и такое событие не повторяется: исправьте адрес или авторизацию.
- Перенаправления не выполняются. Укажите конечный адрес, а не тот, что отвечает 301 или 302.
- Дубли возможны. Событие вроде «мало баланса» приходит снова, пока причина не устранена, а повтор после сбоя может прийти к уже обработавшему серверу. Считайте приём идемпотентным: ориентируйтесь на
event+timestampи содержимоеdata.
Журнал доставок. Под списком вебхуков кнопка «Показать» открывает лог последних 30 доставок: событие, адрес, код ответа, время и ошибка.
Авторизация и безопасность
- Подписи у запросов нет. Проверяйте секрет в заголовке (поле «Заголовки») или в адресе (
?secret=…). В журнале доставок адрес хранится без параметров, поэтому секрет из адреса участники проекта не увидят. - Служебные заголовки (
Host,Content-Lengthи подобные) задать нельзя, они отбрасываются. - Адрес проверяется перед каждой отправкой: внутренние и частные адреса заблокированы, запрос идёт ровно на тот IP, который прошёл проверку.
Дальше: → Своя интеграция по API
Связано: Публичный API · Логи событий · Что можно подключить
Не получилось? → нажмите «Тест» и посмотрите код ответа в журнале доставок