Botnest
Продажи · Интеграции

Продажи связаны с вашей CRM.

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

Начните с тестового события

  1. В кабинете откройте «Интеграции → Исходящие Webhook».
  2. Укажите название и публичный HTTPS endpoint, выберите необходимые события.
  3. Сохраните однократно показанный секрет на сервере получателя, не в браузере.
  4. Нажмите «Тест» и проверьте статус и попытки в журнале.

Не путайте оплату и выдачу

СобытияЧто произошло
order.created / order.cancelledСоздание / отмена заказа, не подтверждение денег
payment.confirmed / payment.review / payment.refundedПодтверждённая оплата / необходима проверка / подтверждённый возврат
fulfillment.completed / fulfillment.failedВыдача или исполнение завершены / возникла проблема выдачи
access.granted / access.extended / access.revokedПраво доступа предоставлено / срок изменён / прекращён. Не означает вступление в канал.
access.expiredСинхронизация завершения доступа выполнена, включая отзыв

amountMinor — строка: копейки для RUB, целые Stars для XTR. Анализируйте валюты отдельно. Передаются внутренние ID и безопасные статусы, без ключей товаров, адресов и ссылок-приглашений.

Надёжная доставка

Событие записывается в той же транзакции, что и изменение заказа. Новая подписка не рассылает историю. Временные ошибки повторяются до восьми попыток; окончательный сбой можно повторить из журнала. Предыдущие попытки сохраняются.

Проверяйте X-Botnest-Signature: HMAC-SHA256 от точных байтов timestamp.body. Отклоняйте старые timestamps и атомарно исключайте дубли по id события. Повторные доставки возможны, порядок не гарантирован. Ответ 2xx означает принятие; 5xx и временные ошибки вызывают повтор.

Примеры для n8n и Make

Мост проверяет подпись до автоматизатора и сохраняет события в SQLite до ответа 202. Нужны Node.js 24, постоянный диск и HTTPS reverse proxy. Секрет и URL автоматизации задаются в окружении. Это пример для самостоятельного размещения, не подключение, автоматически настроенное Botnest.

Порядок настройки

  1. Импортируйте пример. В n8n используйте production URL опубликованного Webhook; в Make создайте Custom webhook после импорта.
  2. Укажите URL автоматизатора в AUTOMATION_WEBHOOK_URL, секрет Botnest в BOTNEST_WEBHOOK_SECRET, постоянный файл в BOTNEST_INBOX_FILE. Запустите node sales-gateway.mjs за HTTPS reverse proxy.
  3. В Botnest укажите адрес моста с путём /botnest/events, не URL автоматизатора.
  4. В автоматизации добавьте Router/Switch по type, хранилище с уникальным id и действие CRM. Подтверждайте запрос только после успешного выполнения.

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

У моста свои повторные попытки: проверяйте строки failed в SQLite и резервируйте файл. 202 в Botnest подтверждает сохранение в мосте, не завершение CRM. URL автоматизации храните как секрет.

Документация: Webhook n8n · Webhooks Make.

Ответы проверяющего моста

КодЗначение
202Событие сохранено в очередь. Это ещё не подтверждение выполнения CRM.
400Некорректный JSON или структура события.
401Не прошла проверка подписи или времени запроса.
409Этот ID уже сохранён с другим содержимым. Первое событие не заменяется.
503Временная ошибка приёмника или хранилища. Доставка будет повторена.

При остановке через SIGTERM/SIGINT мост дожидается текущей отправки и закрывает SQLite. Резервируйте очередь через SQLite backup или после корректной остановки; копирования только основного файла при работающем WAL недостаточно.