AISARAISAR
All webhooks

AI agents

AI action rejected

ai.action.rejected

Fires when an operator rejects an AI-agent-proposed action. The action is not executed — only the rejection is logged; the underlying CRM/contact state stays untouched. The agent receives no automatic feedback about the rejection.

HTTP request

AISAR sends a signed POST request to your webhook_url:

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

{
  "event": "ai.action.rejected",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-05-11T12:08:00.000000Z",
  "company_id": 1,
  "data": {
    "ai_action": {
      "id": 999,
      "company_id": 1,
      "conversation_id": 45,
      "tool_key": "close_conversation",
      "ai_agent_instance_id": 7,
      "approval_status": "rejected",
      "comment": "AI agent proposed to close the conversation",
      "reason": "Customer says issue is solved",
      "rejected_by_user_id": 22,
      "rejected_reason": "Customer asked another question right after",
      "approved_by_user_id": null,
      "execution_result": null,
      "created_at": "2026-05-11T12:00:00.000000Z",
      "resolved_at": "2026-05-11T12:08:00.000000Z"
    }
  }
}

The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.

Example payload

json
{
  "event": "ai.action.rejected",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-05-11T12:08:00.000000Z",
  "company_id": 1,
  "data": {
    "ai_action": {
      "id": 999,
      "company_id": 1,
      "conversation_id": 45,
      "tool_key": "close_conversation",
      "ai_agent_instance_id": 7,
      "approval_status": "rejected",
      "comment": "AI agent proposed to close the conversation",
      "reason": "Customer says issue is solved",
      "rejected_by_user_id": 22,
      "rejected_reason": "Customer asked another question right after",
      "approved_by_user_id": null,
      "execution_result": null,
      "created_at": "2026-05-11T12:00:00.000000Z",
      "resolved_at": "2026-05-11T12:08:00.000000Z"
    }
  }
}

Payload fields

FieldTypeDescription
ai_action.idintegerAction ID (same as in `ai.action.pending`)
ai_action.tool_keystringTool the agent invoked
ai_action.approval_statusstringAlways `rejected`
ai_action.rejected_by_user_idintegerOperator who rejected
ai_action.rejected_reasonstring|nullOptional note supplied by the operator
ai_action.execution_resultnullNo execution happens on rejection — always `null`
ai_action.resolved_atstringWhen the operator decided (ISO 8601)