Вебхуки

Обновлено:

Где: Настройки > Интеграции > Вебхуки

Для чего это нужно:

«Пересылайте входящие события на ваш сервер». SyBox передаёт копию каждого выбранного события на указанный адрес вашего сервера прямо в момент его возникновения. События WhatsApp приходят в собственном формате Meta. Сообщения клиентов из Messenger, Instagram, Telegram, TikTok и онлайн-чата, а также события диалогов (завершение, метки, контакты, сделки, обращения CRM) приходят в собственном формате SyBox. Сообщения электронной почты и SMS не передаются.

Кому доступно: главному администратору и сотрудникам с правом «Управление каналами». Для создания вебхука или повторного включения приостановленного также требуется право «Показывать номер контакта», так как в событиях передаются реальные номера клиентов.

События на выбор:

  • «Входящее сообщение»: клиент прислал сообщение.
  • «Статус сообщения»: отправленное вами сообщение отправлено, доставлено, прочитано или не удалось доставить.
  • «Реакция»: клиент поставил реакцию на сообщение.
  • «Диалог отмечен как завершённый»: диалог был отмечен как завершённый сотрудником, автоматизацией или автоматически после молчания клиента.
  • «Метка добавлена или удалена»: к диалогу была добавлена или с него была снята метка.
  • «Контакт создан или обновлён»: был создан новый контакт либо изменились имя, email или поля контакта. При импорте контактов эти события не отправляются.
  • «Сделка закрыта»: в диалоге была зафиксирована сделка.
  • «Обращение CRM открыто или закрыто»: обращение CRM было открыто либо закрыто как решённое, нерешённое или отменённое. Обращение не привязано к номеру, поэтому его получает только вебхук, охватывающий все номера, а не ограниченный отдельными номерами.

Последние пять событий приходят в собственном формате SyBox для любого канала. На странице документации для разработчиков приведён пример каждого из них.

  • «Расшифровка голоса» (дополнительно): отправка голосового сообщения задерживается на короткое время (до двух минут), чтобы отправить его сразу вместе с расшифрованным текстом. По умолчанию выключено.

Как добавить вебхук

  1. Перейдите в Настройки > Интеграции > Вебхуки.
    Settings, Webhooks: an active webhook with its last result, and the "Add webhook" button
  2. Нажмите «Добавить вебхук».
    The new webhook window: its name and the address it calls
  3. Укажите «Название».
  4. Введите «URL назначения». Это должен быть «Публичный https-адрес, доступный для нас». Обычный http, а также локальные и внутренние IP-адреса не принимаются.
  5. В блоке «События» отметьте хотя бы одно событие. «Входящее сообщение» выбрано по умолчанию.
  6. Необязательно: включите «Расшифровка голоса», чтобы получать голосовые сообщения вместе с текстом.
  7. В блоке «Номера» оставьте вариант «Все номера», чтобы отслеживать все линии WhatsApp, либо выключите его и выберите только нужные номера.
  8. Нажмите Сохранить.
  9. В окне появится «Ключ подписи». «Скопируйте сейчас — показывается только один раз». Сохраните его на своём сервере.

Как работает доставка:

  • Данные передаются в том же формате, что и в стандартных вебхуках WhatsApp от Meta.
  • Каждый запрос подписывается вашим секретным ключом точно так же, как это делает Meta. Если на вашем сервере уже настроена проверка подписи вебхуков Meta, достаточно просто подставить секретный ключ от SyBox.
  • Если ваш сервер не отвечает успешным кодом, SyBox будет повторять попытки с увеличивающимся интервалом в течение примерно одного часа. После этого попытки прекращаются.
  • В редких случаях (например, при сбое связи по таймауту) одно и то же событие может прийти дважды. Сервер должен корректно обрабатывать дубли.

Как протестировать вебхук

  1. Убедитесь, что вебхук включён. Если он выключен, появится сообщение «Сначала включите этот вебхук.»
  2. На его карточке нажмите «Отправить тестовое событие». Вы увидите сообщение «Тестовое событие отправляется. Его результат появится в разделе «Доставки».»
  3. Через несколько секунд откроется список «Доставки» с ответом вашего сервера. На карточке также отобразится последний ответ вашего сервера и время попытки. Успешный ответ (например, «HTTP 200») подсвечивается зелёным, ошибка — красным. Статус «Последняя доставка: никогда» означает, что событий ещё не было.
    To test a webhook: "HTTP 200" marked on the screen in SyBox

Тестовое событие содержит "event": "test" и не передаёт данных клиентов. Отправлять его можно раз в несколько секунд; если нажать раньше, появится сообщение «Тест был отправлен только что. Повторите попытку через несколько секунд.»

Как посмотреть доставки

  1. На карточке вебхука нажмите «Доставки».
  2. В списке отображаются «Последние 50 доставок за прошедшие 7 дней.», начиная с самых новых. Для каждой указаны событие, время попытки и статус:
    • «Доставлено»: ваш сервер ответил успешно.
    • «Ожидает отправки»: попыток отправки ещё не было.
    • «Ошибка, повторная попытка»: ваш сервер не ответил успешно, и SyBox повторит попытку позже.
    • «Не доставлено»: SyBox прекратил попытки.
    • Также отображаются HTTP-код ответа вашего сервера, время ответа в миллисекундах и «Попыток: [число]», если попыток было несколько. Само сообщение не показывается.
  3. Чтобы повторить отправку, нажмите «Отправить снова» у доставки со статусом «Доставлено» или «Не доставлено». Вы увидите «Поставлено в очередь на повторную отправку.» Повторная отправка требует права «Показывать номер контакта», так как при этом данные клиента отправляются заново.

Автоматическое отключение:

Если ваш сервер продолжает выдавать ошибки — 20 неудачных попыток подряд на протяжении более чем часа — SyBox отключает вебхук. На карточке красным цветом отображается «Отключён автоматически после [число] неудачных доставок подряд», а главный администратор получает уведомление «Вебхук был отключён». Ожидающие события сохраняются в течение 24 часов. Исправьте адрес или работу сервера, а затем снова включите вебхук: ожидающие события будут отправлены, а счётчик ошибок сбросится на ноль.

Как изменить, приостановить или удалить вебхук

  1. Нажмите Изменить, чтобы скорректировать название, адрес, события или список номеров.
    To edit, pause or delete a webhook: "Edit" marked on the screen in SyBox
  2. Чтобы обновить секретный ключ, введите новое значение в поле «Ключ подписи». Чтобы оставить текущий, не заполняйте это поле («Оставьте пустым, чтобы сохранить текущий ключ»).
  3. Нажмите Включить / Отключить, чтобы поставить отправку на паузу. События, поступившие во время паузы, встанут в очередь. Если включить вебхук вскоре после этого, они будут доставлены.
  4. Нажмите Удалить и подтвердите: «Удалить этот вебхук?».

Правила и системные сообщения:

  • Название и URL назначения обязательны, также должно быть выбрано хотя бы одно событие. Иначе появится сообщение «Неполные данные».
  • Если адрес не использует протокол https или недоступен извне, появится ошибка: «Публичный https-адрес, доступный для нас».
Я потерял ключ подписи.

Посмотреть его повторно невозможно. Откройте редактирование вебхука, введите в поле «Ключ подписи» новый ключ, сохраните настройки и укажите этот же ключ на своём сервере.

Мой вебхук отключился, хотя я его не выключал.

SyBox отключил его после того, как ваш сервер выдал ошибку 20 раз подряд на протяжении более чем часа. См. раздел «Автоматическое отключение» выше: исправьте работу сервера и снова включите вебхук в течение 24 часов, чтобы ожидающие события были отправлены.

На вебхук ничего не приходит.

Сначала нажмите «Отправить тестовое событие» на его карточке и загляните в «Доставки». Затем проверьте четыре момента: (1) Вебхук включён. (2) Выбрано хотя бы одно событие. (3) К вебхуку привязан нужный номер WhatsApp или выбрано «Все номера». (4) Канал, по которому пришло сообщение, поддерживается вебхуками (WhatsApp, Messenger, Instagram, Telegram, TikTok или онлайн-чат; не почта и не SMS). Затем посмотрите статус последней доставки на карточке.

На карточке горит красная ошибка (например, HTTP 404 или 500).

SyBox смог связаться с адресом, но сервер вернул код ошибки. Проверьте правильность URL и логи вашего сервера.

Не удаётся создать вебхук, пишет, что недостаточно прав.

Для добавления и включения вебхука нужны сразу два права: «Управление каналами» и «Показывать номер контакта». Обратитесь к администратору.