Incoming Webhooks

Запуск flow в ImpactBot из внешней системы (CRM, e-commerce, custom app).

Use cases

  • Юзер сделал заказ в Shopify → trigger flow с подтверждением в Telegram
  • Stripe payment succeeded → trigger thank-you flow
  • Custom app event → запуск drip-кампании

Создание

Settings → Integrations → Webhook → Create:

  • Event name (например `order.created`)
  • Trigger flow (какой flow запустить)
  • Optional: signature secret (для verify)

ImpactBot даёт URL: ``` https://api.impactbot.ru/api/webhooks/incoming/{webhook_id} ```

Отправка события

```bash curl -X POST 'https://api.impactbot.ru/api/webhooks/incoming/abc123' \ -H 'Content-Type: application/json' \ -H 'X-Signature: hmac_sha256_of_body' \ -d '{

"client_id": "user-uuid",
"event": "order.created",
"data": { "amount": 100, "currency": "RUB" }

}' ```

Что происходит

1. ImpactBot validates signature 2. Lookup webhook config 3. Find client by client_id или email 4. Set variables из data: `#{order_amount}`, `#{order_currency}` 5. Trigger flow с переданными данными

Variables в flow

Доступны как `#{webhook.data.field}`: ``` message: "Заказ на #{webhook.data.amount} ₽ принят" ```

Error handling

  • Invalid signature → 401
  • Unknown webhook_id → 404
  • Client not found → 404 (или auto-create если `auto_create_client: true`)
  • Flow not found → 500

Rate limit

300 events/min на webhook. При превышении — buffered в queue.