> For the complete documentation index, see [llms.txt](https://ai-security-docs.akto.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-security-docs.akto.io/agentic-guardrails/how-to/manage-human-approval-requests.md).

# Manage Human Approval Requests

## Overview

**Human Approval** is a Rule Behaviour option for guardrail policies. When the policy is triggered, Akto blocks the attempt and sends it to a reviewer instead of only alerting after the fact or blocking permanently. The request is routed to the approvers you designate, who approve or deny it. Approving the specific actor, always or for a fixed number of days, allows future attempts through. Every decision is recorded in the approval history.

## How It Works

1. You create or edit a guardrail policy and set **Rule Behaviour** to **Human Approval**.
2. The next time that policy's condition is triggered, Akto **blocks the attempt**, the same as a Block rule would.
3. The event is logged to the **Needs Approval** tab in **Guardrail Activity**, instead of **Active**.
4. The request is routed to the **designated approvers** configured for the policy.
5. An approver opens the event and chooses **Approve** or **Deny**.
6. On **Approve**, the approver chooses how long the approval lasts: **Always**, or a specific **number of days**. For that duration, Akto stops enforcing that policy against the approved actor. Once the window expires, enforcement resumes and the next attempt is blocked and logged to **Needs Approval** again.
7. On **Deny**, enforcement stays in place and the actor's attempts keep being blocked.
8. Each decision is added to the approval history, so you can see who approved or denied a request and when.

{% hint style="info" %}
If an event is left undecided in the **Needs Approval** tab, the policy keeps blocking that actor's attempts, and each new attempt is logged as its own event.
{% endhint %}

## Set a Policy's Rule Behaviour to Human Approval

{% stepper %}
{% step %}
Navigate to **Guardrails → Guardrail Policies**.
{% endstep %}

{% step %}
Open an existing policy, or select **Create Guardrail** to configure a new one.
{% endstep %}

{% step %}
Go to the **Scope** section and locate **Rule Behaviour**.

<figure><img src="https://1895868029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkpBG2Nfd5ZbNmahr8W6H%2Fuploads%2Fgit-blob-e132592d6a4bae290b2faa1e9a0977b85685812d%2Fimage%20(239).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select **Human Approval**.
{% endstep %}

{% step %}
Save the policy using **Create Policy** or **Update Guardrail**.
{% endstep %}
{% endstepper %}

For the rest of the policy configuration, see [Create Guardrail Policies](/agentic-guardrails/how-to/create-guardrail-policies.md).

## Review a Human Approval Request

{% stepper %}
{% step %}
Navigate to **Guardrails → Guardrail Activity**.
{% endstep %}

{% step %}
Select the **Needs Approval** tab. This lists every blocked attempt that is waiting on a reviewer decision.
{% endstep %}

{% step %}
Review the event's columns for context:

| Column           | Description                                                         |
| ---------------- | ------------------------------------------------------------------- |
| Severity         | Risk level assigned to the detection                                |
| Actor            | The user, host, or endpoint that triggered the policy               |
| Username         | The signed-in user associated with the attempt, if available        |
| Policy Triggered | The guardrail policy that blocked the attempt                       |
| Detection Type   | The layer the violation was detected at (e.g. Session)              |
| Rule Violated    | The specific rule within the policy that matched (e.g. BlockedHost) |
| Behaviour        | Shows **Human Approval** for events in this tab                     |
| Compliance       | Compliance frameworks associated with the violated rule             |
| Collection       | Associated data collection                                          |
| Detected         | Timestamp when the attempt occurred                                 |
| {% endstep %}    |                                                                     |

{% step %}
Select **Approve** or **Deny** in the **Action** column for the event. Only the designated approvers for the policy can act on the request.
{% endstep %}

{% step %}
In the confirmation dialog, review the actor named (e.g. a specific server or domain) and the policy it will bypass.
{% endstep %}

{% step %}
Under **Approve for**, choose:

* **Always** – Permanently stop enforcing this policy against this actor.
* **Number of days** – Enter a duration. Enforcement resumes automatically once it elapses.

<div data-with-frame="true"><figure><img src="https://1895868029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkpBG2Nfd5ZbNmahr8W6H%2Fuploads%2Fgit-blob-7c713956ce0723771afdbb06d6d5e0f1cee65ef0%2Fimage%20(240).png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Select **Approve** to confirm.
{% endstep %}
{% endstepper %}

## Track Approval History

Every approve and deny decision is recorded, so you can audit who handled each request, what they decided, and when. Use the approval history to review past decisions and confirm that approvals are being granted for an appropriate duration.

{% hint style="warning" %}
Approving a request does not retroactively unblock the attempt that triggered it. The original attempt was already blocked. Approval only changes enforcement for that actor going forward, for the duration you set.
{% endhint %}

{% hint style="info" %}
**Needs Approval** is currently in **Beta**.
{% endhint %}

## What's Next

* [Create Guardrail Policies](/agentic-guardrails/how-to/create-guardrail-policies.md): configure the full set of detection and scope settings for a policy.
* [Guardrail Activity Detailed View](/agentic-guardrails/how-to/guardrail-activity-detailed-view.md): review the full event context available for any guardrail activity, including Needs Approval requests.
