AISARAISAR
Все вебхуки

ИИ-агенты

ИИ-действие ожидает подтверждения

ai.action.pending

Срабатывает, когда ИИ-агент предлагает чувствительное действие (например, `block_contact`, `close_conversation`, `delete_messages`), требующее подтверждения человеком. Действие остаётся в статусе ожидания без автоматического таймаута, пока оператор не подтвердит или не отклонит его через `POST /v1/ai-pending-actions/{id}/approve` или `/reject` — после этого придёт `ai.action.approved` или `ai.action.rejected`.

HTTP-запрос

AISAR отправляет подписанный POST-запрос на ваш webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "ai.action.pending",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-05-11T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "ai_action": {
      "id": 999,
      "company_id": 1,
      "conversation_id": 45,
      "tool_key": "block_contact",
      "ai_agent_instance_id": 7,
      "approval_status": "pending",
      "comment": "AI agent proposed to block contact (reason: spam)",
      "reason": "Contact is sending spam content",
      "rejected_reason": null,
      "approved_by_user_id": null,
      "rejected_by_user_id": null,
      "execution_result": null,
      "created_at": "2026-05-11T12:00:00.000000Z",
      "resolved_at": null
    }
  }
}

Заголовок X-AISAR-Signature содержит HMAC-SHA256 подпись тела запроса — используйте её, чтобы убедиться, что запрос пришёл от AISAR.

Пример payload

json
{
  "event": "ai.action.pending",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-05-11T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "ai_action": {
      "id": 999,
      "company_id": 1,
      "conversation_id": 45,
      "tool_key": "block_contact",
      "ai_agent_instance_id": 7,
      "approval_status": "pending",
      "comment": "AI agent proposed to block contact (reason: spam)",
      "reason": "Contact is sending spam content",
      "rejected_reason": null,
      "approved_by_user_id": null,
      "rejected_by_user_id": null,
      "execution_result": null,
      "created_at": "2026-05-11T12:00:00.000000Z",
      "resolved_at": null
    }
  }
}

Поля payload

ПолеТипОписание
ai_action.idintegerID предложенного действия — используйте его в API подтверждения/отклонения
ai_action.company_idintegerID компании
ai_action.conversation_idintegerДиалог, в котором работал ИИ-агент
ai_action.tool_keystringИнструмент, который вызвал агент. Сейчас: `block_contact`, `close_conversation`, `delete_messages`
ai_action.ai_agent_instance_idintegerЭкземпляр ИИ-агента, предложивший действие
ai_action.approval_statusstringДля этого события всегда `pending`
ai_action.commentstringКороткое человекочитаемое описание, сформированное агентом
ai_action.reasonstring|nullОбоснование в свободной форме, указанное LLM
ai_action.created_atstringКогда действие было предложено (ISO 8601)
ai_action.resolved_atnullНа этом этапе всегда `null`