WhatsApp webhook может доставляться повторно, и это нормально для многих API. Проблема начинается, когда система каждый повтор считает новым событием.

В CRM могут появляться дубли сообщений, заявки создаются дважды, клиент получает повторный ответ, а менеджер видит хаос в диалоге.

Коротко: нужно хранить идентификаторы событий и обрабатывать webhook идемпотентно.

Почему возникает проблема

Провайдер может повторить webhook, если сервер долго отвечает, вернул ошибку или связь оборвалась. Также разные типы событий могут относиться к одному сообщению.

Что проверить сначала

  • есть ли уникальный id события или сообщения
  • какой HTTP-ответ возвращает endpoint
  • как быстро сервер отвечает на webhook
  • не запускает ли очередь повторную обработку
  • разделены ли message и status events

Как я решаю такую задачу

Я делаю webhook-обработчик устойчивым к повторам: быстро принять событие, записать id и обработать один раз.

  • логирую входящие webhook-события
  • выделяю уникальный ключ события
  • добавляю таблицу или кеш обработанных id
  • убираю повторное создание заявок
  • тестирую retry и таймауты

Что подготовить для оценки

  • ссылку на страницу, панель или систему
  • что именно должно происходить в норме
  • пример ошибки или скриншот
  • когда проблема появилась
  • тестовый доступ без лишних прав, если он нужен

Каким должен быть результат

Повторный webhook не должен создавать повторную заявку, повторный ответ или лишнее действие в CRM.

Чего лучше не делать

Не отключайте webhook целиком из-за дублей. Правильнее сделать обработку устойчивой к повторной доставке.

FAQ

Можно ли исправить без полной переделки?

Чаще всего да. Я сначала ищу точную причину сбоя и предлагаю минимальную правку, которая не ломает рабочую часть проекта.

Что нужно прислать для оценки?

Нужны ссылка или описание системы, пример ошибки, время появления проблемы и доступ к той части, где можно безопасно проверить причину.

Как понять, что задача решена?

Должен быть повторяемый тест: до правки ошибка воспроизводится, после правки сценарий проходит стабильно и результат можно проверить без догадок.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и коротко опишите, как должно работать. Я посмотрю задачу, предложу план и скажу, какие доступы понадобятся.

Итог

WhatsApp webhook нужно проектировать с учетом повторной доставки, иначе дубли неизбежны.