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.