Все вебхуки
ИИ-агенты
ИИ-действие подтверждено
ai.action.approvedСрабатывает, когда оператор подтверждает предложенное ИИ-агентом действие и оно выполняется (контакт действительно блокируется, диалог действительно закрывается). Результат выполнения приходит в поле `execution_result`.
HTTP-запрос
AISAR отправляет подписанный POST-запрос на ваш webhook_url:
http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...
{
"event": "ai.action.approved",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-05-11T12:05: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": "approved",
"comment": "AI agent proposed to block contact (reason: spam)",
"reason": "Contact is sending spam content",
"approved_by_user_id": 22,
"rejected_by_user_id": null,
"rejected_reason": null,
"execution_result": {
"ok": true,
"action": "contact_blocked",
"contact_id": 89,
"reason": "Contact is sending spam content"
},
"created_at": "2026-05-11T12:00:00.000000Z",
"resolved_at": "2026-05-11T12:05:00.000000Z"
}
}
}Заголовок X-AISAR-Signature содержит HMAC-SHA256 подпись тела запроса — используйте её, чтобы убедиться, что запрос пришёл от AISAR.
Пример payload
json
{
"event": "ai.action.approved",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-05-11T12:05: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": "approved",
"comment": "AI agent proposed to block contact (reason: spam)",
"reason": "Contact is sending spam content",
"approved_by_user_id": 22,
"rejected_by_user_id": null,
"rejected_reason": null,
"execution_result": {
"ok": true,
"action": "contact_blocked",
"contact_id": 89,
"reason": "Contact is sending spam content"
},
"created_at": "2026-05-11T12:00:00.000000Z",
"resolved_at": "2026-05-11T12:05:00.000000Z"
}
}
}Поля payload
| Поле | Тип | Описание |
|---|---|---|
ai_action.id | integer | ID действия (тот же, что в `ai.action.pending`) |
ai_action.tool_key | string | Инструмент, который вызвал агент |
ai_action.approval_status | string | Всегда `approved` |
ai_action.approved_by_user_id | integer | Оператор, подтвердивший действие |
ai_action.resolved_at | string | Когда оператор принял решение (ISO 8601) |
ai_action.execution_result | object | Результат фактической операции: `ok: true/false` и `action` — что изменилось (`contact_blocked`, `conversation_closed`). При неудаче `ok: false` и поле `reason` (например, `contact_not_found`, `already_blocked`, `exception`) |