Human-in-the-Loop AI

AI Approval Workflow Patterns: Five Runtime Blueprints

For the process owner who already knows which actions need review: five ways to wire the pause, decision, expiry and resume path without losing state or executing twice.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • An approval workflow is a durable state transition, not a message with buttons. The run must stop in a named state that survives restarts and can resume exactly once.
  • Show the proposed action, supporting evidence, policy or threshold, consequences and alternatives in the approval payload. A bare approve button invites guesswork.
  • Define approve, edit, reject, expire and escalate before launch. Rejection is a normal branch with an owner, not an error that strands the run.
  • Bind the decision to the exact proposal with an immutable identifier or hash. If the payload changes, the prior approval no longer applies.
  • Measure override rate, expiry rate and decision time per gate. Volume alone cannot tell you whether the gate catches anything or merely adds latency.
AI approval workflow patterns are reusable state machines for pausing a run, presenting a specific proposed action to an authorized person, and resuming once after approve, edit, reject, expiry or escalation. Use preflight approval for a whole bounded plan, step-up approval for one consequential tool call, exception approval for cases outside the normal path, two-person approval where duties must be separated, and time-boxed review only where a complete rollback is real.

Write the state-transition contract before choosing a pattern

The parent human-in-the-loop guide decides which actions need a person and whether that gate is temporary or permanent. This page starts one level lower: the action already deserves review, and the runtime has to stop without losing its place.

Google Cloud's architecture guidance describes the core pattern as a predefined checkpoint where an agent pauses and an external system waits for human review. The word “waits” carries most of the engineering work. The pending state must survive a restart, late decision and duplicate notification.

The minimum contract for every approval state, regardless of pattern.
FieldDecision to write down
Pending stateThe durable state name and exact point before execution
ProposalAction, target, normalized payload, evidence and immutable proposal ID
AuthorityEligible roles, delegation rules and separation constraints
OutcomesApprove, edit, reject, expire, cancel and escalate destinations
TimeDecision deadline, reminder cadence and expiry owner
ResumeSingle-use token or idempotency key and the next step for each outcome
RecordRequest, presentation, decision, actor, time, changes and execution receipt

Five runtime patterns and the process shape each one fits

Choose by where uncertainty and consequence enter the run, not by interface preference.
PatternPause pointBest fitCharacteristic risk
Preflight plan approvalBefore any state-changing stepA short, bounded plan whose steps are visible togetherApproval becomes stale when the plan changes
Step-up action approvalImmediately before one tool callMost work is safe; one send, update or release is consequentialToo many step gates fragment the reviewer's context
Exception approvalWhen deterministic rules cannot route the caseStable normal path with named unknown or conflict statesLoose exception rules either hide cases or flood the queue
Two-person approvalBefore an action requiring separate dutiesPayments, credential changes or other internally controlled actionsTwo clicks from the same chain of influence are not independent
Time-boxed review with rollbackImmediately after execution, before rollback expiresReversible internal changes where speed mattersThe supposed rollback may not reverse external effects

Preflight and step-up approval solve different context problems

Preflight approval lets the reviewer see the whole intended path: “read these cases, update these three fields, then draft a reply.” Bind the decision to a plan version. If later evidence changes a destination, amount or action, the runtime returns to pending rather than treating the old approval as a blank cheque.

Step-up approval leaves harmless work running and pauses only at a consequential action. The review screen needs enough prior context to decide without replaying the full run: source facts, policy result, proposed payload, effect, alternatives and the reason this gate fired. Keep the pending proposal immutable; an edited proposal creates a new version before execution.

A supplier email at a step-up gateSimulated example data
The run has validated the supplier record and drafted a request for one missing document. The gate shows the recipient, subject, complete message, missing-field evidence and supplier case. The reviewer edits the deadline and approves proposal version 2. The original approval token cannot execute version 1 or any later edit; the mail provider's message ID closes the step.

Exception and two-person patterns need explicit ownership

An exception gate is cheaper than reviewing every normal case, but only if “exception” is a written state. Missing required data, conflicting sources, unknown category, policy denial and exhausted retries are examples. Give each state a queue, owner and deadline. An unrecognized case must fail toward the queue, never around it.

Two-person approval adds a constraint: the second decision must come from a distinct authorized identity, and often from a different role. Record both decisions against the same proposal. If the first approver edits it, the second sees the revised version; if the second changes it, the first decision is stale and the sequence restarts.

  1. 01Create one immutable proposalCode
    Normalize the action and calculate the proposal hash before notifying anyone.
  2. 02Resolve eligible reviewersCode
    Exclude the initiator and enforce required role or department separation.
  3. 03Collect decisions in orderHuman approval
    Show the same current proposal and invalidate prior decisions after any material edit.
  4. 04Execute onceCode
    Consume a single-use authorization and retain the destination receipt.

Design rejection, expiry and retry as normal branches

Approval is not the only successful outcome. A rejection may close the case, request corrected inputs, return work to the proposing step or hand the job to a person. The reviewer should choose from clear outcomes and may add context; they should not have to open a separate system to keep the process moving.

Expiry must not silently become approval. Mark the proposal expired, revoke its resume token and route to a named owner. Escalation may notify a delegate, but it must not widen the set of actions or preserve an approval beyond a changed payload.

Retries happen after ambiguous network failures. Before sending again, read the destination using the same idempotency key or external reference. A durable approval state prevents the model from rebuilding a slightly different proposal after restart and losing the original decision.

Measure whether each gate earns the attention it consumes

NIST's current monitoring work notes that human review does not scale automatically with deployment volume. Measure the gate as its own process. The useful signals are decision time, edit or rejection rate, expiry rate, escalation rate, repeat submissions, post-approval failures and incidents that the gate should have caught.

Signals and the question each one should trigger; none is a target by itself.
SignalQuestion to investigate
Near-zero edit and rejection rateIs the gate unnecessary, or are reviewers rubber-stamping?
Rising expiry rateIs ownership wrong, payload context weak or volume too high?
Repeated edited proposalsCan a deterministic rule capture the correction earlier?
Long decision time on one tierDoes that tier need a different reviewer pool or earlier evidence?
Post-approval execution failuresIs idempotency, authorization or destination validation broken?

Limitations and when not to use this

  • A human gate cannot make an unsafe action safe when the reviewer lacks authority, context, time or a real ability to reject it.
  • Post-action review belongs only where rollback is complete and tested. Messages seen by people, disclosed data and many financial or physical effects are not truly reversible.
  • These patterns define workflow behavior, not sector-specific approval obligations. Finance, employment, healthcare and regulated uses need the relevant practitioner and legal review.

Sources

  1. Choose a design pattern for your agentic AI systemGoogle Cloud Architecture Center Accessed 29 July 2026
  2. Challenges to the monitoring of deployed AI systemsNIST Accessed 29 July 2026
  3. AI Risk Management Framework CoreNIST Accessed 29 July 2026

Write the state transition contract

For one consequential action, name the pending state, payload, decision roles, expiry, rejection destination and idempotency key before drawing the happy path.

Write the state transition contract
About the author

Uli Prantz

Builds and operates all-agents

Uli Prantz builds all-agents, the process-automation platform this site documents. He writes about the operational side of automating recurring business work: where deterministic code beats model judgment, where it does not, and where a human still has to approve.

Bring one process. We will scope it in 30 minutes.

You leave the call knowing whether it is a fit, what can become code and what still needs a person.

Book a discovery call