Действие «Вебхук»

Отправляет POST с данными в ваш URL — для интеграции с CRM/аналитикой.

Поля

  • url — куда слать (HTTPS обязателен)
  • payload — JSON с данными (поддерживает `#{variables}`)
  • secret — для подписи запроса (HMAC-SHA256 в `X-ImpactBot-Signature`)
  • retries — 0/3/5 попыток

Что включается в payload

```json { "client_id": "...", "flow_id": "...", "block_id": "...", "timestamp": "2026-04-27T10:30:00Z", "data": { ...your custom payload... } } ```

Дедупликация

Webhook event_id используется для idempotency на стороне ImpactBot — даже если повторно вызвали блок, webhook id уникален. Ваша система может проверять.

Порядок событий не гарантируется

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

На практике: клиент оформил заказ и через секунду его отменил — приёмник может увидеть сначала `order.cancelled`, затем `order.created`. Если он строит состояние по последнему событию, заказ останется активным, и ошибка будет тихой: обе доставки успешны, обе 200.

Что делать: сверяйте `occurrenceId` и метку времени события и игнорируйте то, что старше уже применённого. Полностью — в руководстве «Вебхуки», раздел «Порядок событий не гарантируется».

Verify signature на стороне получателя

```python import hmac, hashlib

def verify(body: bytes, signature: str, secret: str) -> bool:

expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)

```