Webhook — это способ, когда один сервис отправляет данные на ваш сайт или скрипт: заявку, оплату, статус заказа, сообщение, лид из CRM или событие бота.
Если данные по webhook не приходят, проблема может быть на стороне отправителя, принимающего URL, SSL, метода запроса, подписи, формата JSON, таймаута или обработки в коде.
Почему это важно
Сломанный webhook часто незаметен для пользователя, но ломает бизнес-процесс: заявка не попадает в CRM, оплата не меняет статус заказа, бот не получает событие.
Основные причины
- неверный URL webhook
- принимающий скрипт отдает 403/404/500
- SSL-сертификат не проходит проверку
- не совпадает подпись или секрет
- код ждет не тот формат JSON
- обработчик отвечает слишком долго
План диагностики
- Проверить URL webhook и метод запроса.
- Посмотреть логи отправителя, если они доступны.
- Проверить access/error log на принимающем сервере.
- Проверить тело запроса, headers и подпись.
- Сделать тестовую отправку и проверить ответ скрипта.
Что можно проверить самостоятельно
- скопировать точный URL webhook
- проверить, открывается ли домен по HTTPS
- посмотреть, есть ли тестовая отправка в сервисе
- сохранить пример payload
- не публиковать секреты webhook в открытом виде
Где обычно ошибаются
- проверять webhook только открытием URL в браузере
- не логировать входящие запросы
- возвращать HTML вместо понятного статуса
- обрабатывать webhook слишком долго без очереди
Как я решаю такую задачу
Я проверяю webhook как интеграцию: запрос приходит или нет, что в headers/body, какой ответ получает отправитель и где данные теряются после приема.
- Фиксирую симптом, URL, время сбоя и действия, после которых появилась проблема.
- Проверяю логи, настройки сайта, интеграции и реальные запросы в браузере.
- Делаю минимальную правку, чтобы не задеть работающие разделы.
- Тестирую результат на десктопе, телефоне и в сценарии, где ошибка проявлялась.
- Передаю короткое объяснение причины и список профилактических действий.
Что подготовить для оценки
- адрес сайта или проблемной страницы
- скриншот ошибки или текст сообщения
- что меняли перед появлением проблемы
- доступ к админке, хостингу или серверу, если он нужен
- приоритет: срочно восстановить работу или спокойно разобраться в причине
Сроки
| URL, SSL или код ответа | 30-90 минут |
|---|---|
| Подпись, JSON и обработчик | 1-3 часа |
| CRM/оплата/очереди | по схеме интеграции |
Вопрос-ответ
Можно ли проверить webhook без доступа к сервису?
Можно проверить принимающий URL, но лучше иметь тестовую отправку или логи сервиса-отправителя.
Почему webhook приходит, но данные не сохраняются?
Значит прием есть, а ошибка дальше: парсинг JSON, валидация, база, CRM или права.
Нужно ли отвечать быстро?
Да. Часто отправитель ждет быстрый 200 OK, а тяжелую обработку лучше выносить в фон.
Итог
Webhook нужно проверять как цепочку: отправитель, URL, SSL, запрос, подпись, обработчик и сохранение данных. Только так можно понять, где именно пропало событие.
Если нужна такая доработка или диагностика, напишите в Telegram: @rabotator_support. Посмотрю проблему, задам несколько точных вопросов и скажу, как исправить без лишней перестройки сайта.