Вебхук

Вебхук — механизм, при котором внешняя система отправляет HTTP POST-запрос на указанный URL, когда происходит определённое событие. Это позволяет ассистенту реагировать на события в реальном времени: новое сообщение от пользователя, оплата заказа, изменение статуса в CRM — без необходимости постоянно опрашивать API.

Нужно внедрить это в бизнесе?

Покажем, как это работает на практике: демо на ваших данных за 1 рабочий день. Запуск от 0 ₽.

Получить демо

Вебхук против polling: в чём разница

Polling — ассистент сам периодически спрашивает сервер: «Есть что-то новое?». При частоте опроса 1 раз в секунду — 86 400 запросов в сутки, большинство из которых возвращают пустой ответ. Высокая нагрузка на API, задержка до 1 секунды.

Webhook — сервер сам уведомляет ассистента при событии. 0 лишних запросов, задержка 50–200 мс. Telegram Bot API, WhatsApp Business API, AmoCRM, Bitrix24 — все они поддерживают вебхуки. Для продакшн-ассистентов webhook всегда предпочтительнее polling.

Как настроить вебхук для Telegram-ассистента

Один API-вызов: setWebhook?url=https://yourdomain.com/webhook. После этого Telegram будет отправлять каждое входящее сообщение POST-запросом на указанный URL. Сервер должен отвечать HTTP 200 в течение 60 секунд; если нет — Telegram повторит доставку до 3 раз с нарастающей задержкой.

Важно: вебхук-эндпоинт должен быть доступен по HTTPS с валидным TLS-сертификатом. Самоподписанные сертификаты Telegram не принимает для внешних URL — используйте Let's Encrypt или Cloudflare.

Верификация вебхуков

Любой может отправить POST-запрос на ваш вебхук-URL, если знает адрес. Для защиты используют: (1) секретный токен в заголовке — Telegram добавляет X-Telegram-Bot-Api-Secret-Token; (2) HMAC-подпись — Stripe, GitHub, AmoCRM подписывают тело запроса секретным ключом, сервер проверяет подпись; (3) IP-фильтрацию — разрешить запросы только с IP-диапазона платформы.

Как работает webhook в чат-ассистенте

Когда пользователь пишет ассистенту в Telegram, Telegram отправляет POST-запрос на URL вашего сервера — это и есть webhook. Сервер должен ответить за 300ms, иначе Telegram повторит запрос. В отличие от polling (ассистент сам спрашивает «есть новые сообщения?»), webhook не тратит запросы впустую и отвечает мгновенно. Для регистрации webhook нужен HTTPS-сервер с валидным SSL-сертификатом — self-signed не работает.

Обсудим ваш проект?

Бесплатный аудит: посчитаем эффект от ИИ в ваших процессах и назовём срок и бюджет внедрения.

Получить бесплатный аудит

Отладка webhook-ошибок

  • Telegram не доставляет сообщения. Проверьте getWebhookInfo — там видны последние ошибки и количество ожидающих обновлений.
  • Дублирование обработки. Если сервер отвечает медленнее 300ms, Telegram повторяет запрос. Нужна идемпотентная обработка по update_id.
  • IP-фильтрация. Webhook от Telegram приходит с фиксированных IP-диапазонов — в production полезно ограничить доступ только с них.
Сергей Полухин

Сергей Полухин

Co-Founder & CTO PapAI Soft · профиль

Частые вопросы

Как защитить webhook от несанкционированных запросов?

Три метода: (1) проверка секретного токена в заголовке запроса (Telegram Bot API поддерживает X-Telegram-Bot-Api-Secret-Token), (2) IP-фильтрация (разрешить только IP-диапазоны Telegram), (3) проверка подписи HMAC при работе с другими платформами (VK, WhatsApp). Минимум — секретный токен.

Что делать, если webhook перестал работать?

Диагностика: getWebhookInfo → pending_update_count (накопились ли обновления) → last_error_message (последняя ошибка). Частые причины: истёкший SSL-сертификат, изменился IP сервера (IP-фильтрация), сервер отвечает >10 секунд. После исправления Telegram сам возобновит доставку без повторной регистрации.

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

Где применяется

Разработка ИИ-ассистентов → Чатбот для Битрикс24 →

Хотите настроить интеграции через вебхуки? Обсудим задачу.

C

Продукт команды PapAI Soft

Проверьте регламент на реальных звонках

Ещё один продукт нашей команды: CANAL сам оценивает звонки менеджеров по вашему регламенту и показывает цитату-доказательство под каждым выводом. Есть бесплатный тариф без карты.

Посмотреть CANAL →