Интеграция: Webhook

Назначение

Webhook интеграция позволяет запускать flow внешними HTTP-запросами.

Управление webhook (служебные endpoint)

Требуют авторизации пользователя и доступа к tenant.

  • POST /webhook - создать или обновить webhook.
  • GET /webhooks?tenant_id=... - список webhook tenant.
  • DELETE /webhook/{tenant_id}/{webhook_id} - удалить webhook.

Публичный endpoint выполнения

  • POST /webhook/{tenant_id}/{webhook_id}
  • GET /webhook/{tenant_id}/{webhook_id}

Если webhook приватный (is_public = false), нужен API-ключ:

  • X-API-Key: <key>
  • или Authorization: Bearer <key>

Формат запроса

Минимально:

{
  "content": "Текст запроса",
  "context": {
    "source": "crm",
    "orderId": "123"
  }
}

Поддерживается JSON, form-data и query params.

Формат ответа

Успех:

{
  "content": "Ответ flow",
  "context": {
    "...": "..."
  }
}

Долгое выполнение:

{
  "executionId": "...",
  "executionKey": "...",
  "status": "pending",
  "message": "Flow execution is in progress. Use GET /results to retrieve results when ready."
}

Дополнительно

  • Поддерживается throttling на webhook уровне.
  • Можно задать variables, которые добавляются в context каждого вызова.
  • Таймаут и лимит LLM вызовов берутся из настроек flow.