Components

Adding Human Approvals in Agent Workflows

Overview

Insert checkpoints for human approvals or data input anywhere in your agent workflows when full automation isn't possible. Approvals are the simplest form of Human-in-the-Loop. They prompt the assigned person to approve before the agent run moves forward. You can add relevant context, like variables, to help them make the decision and create a clear, useful request for the approver, even if they're not a platform user.

How to Use It

  1. Add the Human Approval Step In Agent Studio, drag the Human Approval Step from the Flow Control section onto the canvas.

Choose Approvers

  1. Choose Approvers Assign one or more approvers—or a user group—to receive the request.

Tip: you can also select a user group that will receive the request. They will be notified via both the platform notification center and (optionally) email.

Choose Approvers

Note: Following an agent's submission of an approval request, notifications are sent to all selected approvers in the notification center. Email notifications are also sent if that option is activated.

  1. Execution and Notifications

Once the approval step is reached, the agent pauses and sends the request.

Approver Notifications

  1. The content for the approval request body will be generated using the combined input from the previous steps.

    Approval Request Body

  2. Agent Builder can describe the approval and the denial route. This is very important information for the approver to be aware what will follow up after the action.

    Approval and Denial Routes

    Here's how it appears in the approval request:

    Approval Request View

  3. Enable email notifications if you want the approvers to receive an email with a link to the approval table.

    Email Notifications

  4. Upon completion of the agent's execution, it will stop (halt), and an approval request will be created. The agent builder can monitor the status in the logs. Following the approval or rejection, the execution log will be updated to reflect subsequent actions.

    Execution Log

  5. In the notification center, the approver will receive a message with a link to the approval:

    Notification Center

    and they will receive an Email with a link to the request.

  6. The approver can check, edit, and either approve or decline the request to let the agent continue its work based on the request details.

Approve or Decline

  1. Once approved, the agent builder or admin can review what happened following the approval or decline.

How Long an Approval Request Stays Open

How long a request waits depends on how the agent run was started. Streamed runs have a hard limit; everything else has none.

Streamed runs: 10 minutes

Runs that stream their output back to a live session — the Agent Studio playground, chat sessions, and API calls made with asyncOutput: true — keep the run open and wait for the decision inline. That wait is capped at 10 minutes.

The clock starts when the request is created, not when an approver opens it. If nobody acts within those 10 minutes:

  • The request moves to Canceled and appears that way in Productivity > Approvals.
  • The run stops at the approval step. Neither the approval route nor the denial route executes.
  • The request can no longer be actioned. A late approve or decline is rejected with "This approval request is no longer pending and cannot be actioned."

The 10-minute limit is fixed. No setting extends it, and it applies to the Human Approval, Form Review, and Webhook Approval steps alike.

Don't put a real approver behind a streamed run

Ten minutes is enough to try an approval out in the playground. It is not enough for someone to read a request, think about it, and respond during a normal working day. For approvals a person is genuinely expected to consider, run the agent without streaming.

Everything else: no expiration

Any run that is not streaming its output halts at the approval step and persists its state. The request stays Pending with no deadline — hours, days, or indefinitely — until someone acts on it. Nothing needs to stay connected in the meantime.

When an approver approves or declines, the run resumes from the halted step with the inputs it had when it paused.

Because pending requests never expire on their own, stale ones accumulate in Productivity > Approvals. Clearing them is a manual step: stopping the execution cancels its pending requests.

How a request can end

What happensResulting statusEffect on the run
An approver approvesApprovedResumes down the approval route
An approver declinesDeclined (Denied in the API)Resumes down the denial route
Nobody acts within 10 minutes on a streamed runCanceledStops at the approval step; neither route runs
Someone stops the executionCanceled — every pending request for that executionExecution ends
Nobody acts on a non-streamed runPending, indefinitelyStays halted

Enforcing your own deadline

Airia does not apply a deadline to a pending request, so a process that needs one has to supply it. The Webhook Approval Step is the place to put it: your system receives the webhook, starts its own timer, and calls the Airia callback with "status": "Denied" when that timer expires. The agent then follows the denial route instead of waiting forever.

When to Use It

Critical Decisions or High Stakes

If an agent is about to take an action that could have serious implications (e.g., send an email to a client, delete a record, trigger a financial transaction), you should route to a human for approval.

Use Case Examples:

  • Approving a customer refund above $1,000
  • Publishing AI-generated content
  • Sending sensitive documents externally

Uncertain Model Confidence / Ambiguity

When your AI agent or LLM has low confidence in its output or multiple plausible answers, it's smart to pause for human review.

Use Case Examples:

  • Entity resolution where multiple customers match
  • Legal document classification
  • AI-generated SQL query that could delete or overwrite records

Tip: You can base this on LLM output confidence scores or ambiguity flags in your own logic.

Agent-as-Assistant / Support Agent Copilot

In customer support or sales, the agent can prepare a draft response, but a human agent needs to review or edit before sending.

Use Case Examples:

  • AI-generated response to a high-value customer's complaint
  • Draft email with pricing info
Was this page helpful?

On this page