Перейти к содержанию

Вебхуки и уведомления

Вебхуки

Вебхук отправляет событие трекера на ваш HTTP-эндпоинт — в свою CRM, Google Sheets через прослойку, Slack-бота, что угодно.

Настройка: Настройки → Webhooks. Указываете имя, URL, события (через запятую) и секрет.

Новый вебхук создаётся выключенным

После создания нажмите Вкл в списке — до этого события в него не идут. Секрет больше не показывается нигде: API отдаёт только признак «секрет задан». Забытый секрет не восстановить, только заменить новым.

В интерфейсе вебхук можно создать, включить, выключить и удалить. Смена URL, списка событий или секрета у существующего вебхука делается через Admin API (PUT /admin_api/v1/webhooks/{id}, частичное обновление) — или пересозданием вебхука.

События

Событие Когда
conversion.created записана конверсия — из постбэка или браузерного события (/action, /px.gif)
rule.fired сработало авто-правило с действием Webhook
rule.recovered авто-правило вернуло цель в работу, и в его действиях восстановления есть Webhook

Вебхук получает только те события, которые перечислены в его поле «События»: если там оставить один conversion.created, срабатывания правил в него не придут.

Тело запроса

Обёртка одинаковая для всех событий, полезная нагрузка — в data.

{
  "event": "conversion.created",
  "timestamp": "2026-08-24T10:15:00.123456789Z",
  "data": {
    "conversion_id": "3f1c…",
    "click_id": "9a2b…",
    "campaign_id": "1d4e…",
    "flow_id": "77aa…",
    "offer_id": "5b0c…",
    "status": "sale",
    "payout": 12.5,
    "currency": "USD",
    "transaction_id": "TX-1024",
    "timestamp": "2026-08-24T10:15:00.120000000Z"
  }
}
{
  "event": "rule.fired",
  "timestamp": "2026-08-24T10:15:00.123456789Z",
  "data": {
    "rule_id": "8c31…",
    "rule_name": "Stop-loss: ROI < −30%",
    "workspace": "0f21…",
    "target_kind": "campaign",
    "target_id": "1d4e…",
    "target_name": "FB • RU • Nutra",
    "dry_run": false,
    "metrics": { "clicks": 1258, "conversions": 3, "roi": -62.4, "cr": 0.24 }
  }
}

В metrics приходит полный снапшот метрик правила, здесь показаны несколько полей для примера.

Заголовки запроса

Заголовок Содержимое
X-Minik-Event имя события
X-Minik-Timestamp время отправки, RFC3339 с наносекундами, UTC
X-Minik-Signature sha256=<hex> — HMAC-SHA256 тела запроса на вашем секрете

Проверка подписи на принимающей стороне (Python):

import hmac, hashlib

def valid(secret: str, body: bytes, header: str) -> bool:
    expected = "sha256=" + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, header)

Подпись считается по сырому телу запроса — проверяйте её до разбора JSON. Если секрет не задан, заголовок с подписью не отправляется — но задайте его: без подписи ваш эндпоинт примет что угодно от кого угодно.

Доставка и повторы

  • Метод — POST, Content-Type: application/json, таймаут 10 секунд на попытку.
  • Успех — любой ответ 2xx. Иначе трекер повторяет: всего до 5 попыток с паузами 2, 4, 8 и 16 секунд.
  • Каждая попытка пишется в журнал доставок — с телом запроса, кодом и телом ответа (ответ сохраняется до 8 КБ). Журнал хранится 30 дней.
  • Один вебхук держит одновременно не больше 64 событий (в очереди, в отправке и в ожидании повтора). Сверх этого события отбрасываются — мёртвый эндпоинт не тормозит доставку остальным.

Время последней доставки и её код видны прямо в списке вебхуков. Полный журнал попыток отдаёт Admin API: GET /admin_api/v1/webhooks/deliveries (параметры webhook_id, limit).

URL — только наружу

Адрес проверяется в момент подключения и на каждом редиректе: loopback (127.0.0.1), приватные сети (10/8, 172.16/12, 192.168/16), link-local и 169.254.169.254 (метаданные облака) блокируются. Причина прямая: ответ вашего эндпоинта сохраняется в журнал доставок, иначе вебхуком можно было бы читать внутренние сервисы сервера.

Права: список вебхуков виден с правом settings на просмотр, создание и изменение требуют редактирования, удаление — удаления.

Уведомления в интерфейсе

Центр уведомлений в шапке — канал inapp действия «Уведомить» у авто-правил: срабатывания и восстановления. Уведомление создаётся каждому участнику воркспейса и прилетает мгновенно, по push-соединению. Есть отметка «прочитано» и «отметить все».

Telegram

Общий канал алертов для авто-правил. Настройка — Настройки → Интеграции → Telegram, там же кнопка Тест.

Токен бота хранится зашифрованным и не отдаётся через API.

Доступные каналы

Наружу события уходят вебхуком и в Telegram, внутри панели — в центр уведомлений. Отдельных каналов e-mail и Slack, как и отчётов по расписанию на почту, нет: их подключают вебхуком через свою прослойку.