Learn

Human-in-the-Loop AI: Approval Patterns for Real Work

If you own a process you are about to hand to software, this guide shows you where the approvals go, which pattern each one should use, and which gates must never come off.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • Decide approvals action by action, not process by process. Most processes need a person on two or three specific irreversible steps and on nothing else.
  • Pick the pattern from the consequence of the action, not from your confidence in the model: block what cannot be undone, allow undo where reversal is genuinely complete, sample high-volume cheap work, and require two approvers where money leaves the company.
  • A gate approved every single time is not a control. Track how often a review changes the outcome; if that number sits at zero, either the gate should come off or nobody is reading it.
  • Temporary learning gates come off when the system has proved it can do the step. Permanent gates never come off, because their reason is who is answerable, not whether the machine is capable.
  • Design the decline path before the approve path. If declining costs more effort than approving, your reviewers will approve.
Human-in-the-loop AI means a named person has to decide on a specific action before or shortly after the system takes it. The useful question is not whether to keep a human in the loop, but which actions stop for one, which pattern that stop uses, and whether the stop is temporary or permanent. This guide gives six named approval patterns, a four-tier risk model for choosing between them, and the rule that decides which gates survive automation: liability, not capability.

What counts as an approval gate, and what only looks like one

The phrase gets stretched to cover everything from a person glancing at a dashboard to a mandatory countersignature. For designing a process, only one meaning is worth using: at a named point in the run, the process stops, shows a person the exact action it is about to take, and does nothing until that person decides.

Four properties have to hold. Remove any one of them and you have monitoring rather than control.

  • A specific pending action. Not “the system is working on refunds” but “refund €420 to this customer, on this card, for this period”. A reviewer can only approve something concrete; vagueness here produces approvals nobody remembers giving.
  • A person with the authority to decline. A named role, not a shared mailbox, and someone for whom saying no is a normal outcome rather than an escalation.
  • An action that is genuinely blocked. The step does not happen until the decision is made. A message telling you what has already been sent is a log entry, however prompt it is.
  • A recorded decision. Who decided, what they were shown, and what happened next. Without the record, the approval is real when it happens and worthless three months later, which is exactly when you will need it.

It follows that a daily digest, a confidence score with no person attached, and a Slack channel that fills up faster than anyone reads are not gates. They are useful, but they do not stop anything.

Gates are also expensive. Each one adds latency and consumes review attention you will need for the gate that actually matters. The most common design mistake is not too few approvals but too many, spread evenly across a process. That arrangement does not fail loudly. It fails by being ignored.

Six approval patterns, and when each one fits

These six cover almost every approval you will need to design. Most real processes use two or three of them at different steps, which is the point: the pattern belongs to the action, not to the process.

The pattern library. Pick per action, not per process, and expect one process to use several.
PatternWhat happens at run timeUse it when
Approve before send (blocking gate)The run pauses with the prepared action visible. Nothing happens until a person approves, edits or declines.The action is irreversible or externally visible: a payment, a customer email, a contract, a public post.
Review after with undoThe action executes immediately. A person reviews within a defined window and can reverse it.Reversal is cheap and complete, and speed matters more than being right the first time.
Sampling / spot-checkEverything runs unattended. A fixed share, or a deliberately chosen slice, is reviewed afterwards to detect drift.Volume is high, the cost of any single item is low, and you need standing evidence that the process is still correct.
Threshold escalationBelow a stated limit the process acts alone. At or above it, a blocking gate fires.Risk scales with a number you can read reliably: amount, discount, refund size, headcount, quantity.
Dual approval (four eyes)Two different people must approve, and whoever raised the request cannot be one of them.Money leaves the company, payee or bank details change, or fraud is a realistic scenario rather than a theoretical one.
Exception-only reviewClean cases finish unattended. Only cases matching named exception rules stop for a person.The happy path is well understood and you can write the exceptions down as rules.

Each pattern has a characteristic way of going wrong, and knowing it is more useful than knowing the definition.

  • Approve before send. The strongest control and the most expensive one. Its failure mode is queue latency followed by rubber-stamping: as volume rises, the reviewer approves in batches without opening the detail. Keep the blocking gates in a single run to the low single digits, so each one still means something.
  • Review after with undo. Only honest if the undo restores the world, not just your database. A refund can be clawed back; an email cannot be unsent, and a cancelled order that already triggered a shipment is a phone call rather than a rollback. Test the undo path before relying on it, and treat anything the customer has already seen as irreversible.
  • Sampling and spot-checks. Borrowed from quality control, and honest about its limits: sampling measures whether the process is still correct and protects no individual item. Operations engineering accepts the same trade, with Google's site reliability guidance arguing that 100% is the wrong reliability target for basically everything. The same holds for review coverage. Use sampling to catch drift on low-stakes work, never as the only control on an irreversible action that matters.
  • Threshold escalation. Only as reliable as the field it reads. If the amount can be wrong because of currency, tax, or a batch that aggregates several items, the threshold silently mis-tiers the case and nobody is asked. Two rules make it durable: state the limit in the written procedure rather than in the code alone, and add an aggregation rule so five requests just under the limit from the same counterparty still escalate.
  • Dual approval, or four eyes. Public-sector internal-control standards describe it as segregation of duties: dividing key duties such as authorising, processing and recording, payment, review, and custody of assets among different people, so no single person controls every part of a transaction. Automation does not change that logic; it just means one of the parties is software. Expensive per item, so reserve it for payments, changes to bank or payee records, and credits above a limit.
  • Exception-only review. The cheapest sustainable pattern and where most processes should end up. It requires you to write the exception rules down, and it requires one discipline: anything that does not match a known rule counts as an exception. The process fails towards the human, never past them.

Match the pattern to the risk tier, not to your confidence

Tier the action by what a mistake costs, not by how well the system has been performing lately. Confidence moves weekly. Consequence is a property of the action itself and does not move at all. Three questions settle the tier: can it be undone completely, who is affected, and what does the worst plausible error cost.

Risk tiers and their default pattern. Moving an action down a tier needs evidence; moving it up needs none.
TierTypical actionsDefault patternWhat it takes to relax it
Tier 0 — internal and reversibleTagging a ticket, updating an internal record, drafting into a queue, writing a note.Sampling, or no gate at all.A short review of a weekly sample. Relax freely; this tier is where automation should be boring.
Tier 1 — external but recoverableRoutine replies with standard information, scheduling, internal notifications, non-binding status updates.Exception-only review, or review after with undo.A written exception list, plus evidence that the exceptions actually get caught rather than quietly matching the happy path.
Tier 2 — money or commitmentPayments, refunds, credit notes, discounts, purchase orders, anything creating an obligation.Approve before send, with threshold escalation handling the small end. Dual approval where funds leave the company.A limit somebody owns, an aggregation rule, and a named person accountable for the losses under the limit.
Tier 3 — decisions about a personDeclining an application, ending a service or access, anything with legal or similarly significant effect on an individual.Blocking gate, permanently. Dual approval where identity and money both move.Nothing. This tier does not relax as the system improves, and accuracy is not the argument that would relax it.

Tier 3 is where the law arrives before your judgment does. Under Article 22 GDPR, a person has the right not to be subject to a decision based solely on automated processing that produces legal or similarly significant effects, and where such processing is permitted, the right to obtain human intervention, to express a view and to contest the decision. That intervention has to exist as a real step, performed by a real person with the authority to change the outcome.

The tier attaches to the action, not to the process. One refund process can contain a Tier 0 note, a Tier 1 reply, a Tier 2 payment and, if it can also close an account, a Tier 3 decision. Tiering the whole process gives you either an automation that cannot move or a gate on the wrong step.

Temporary learning gates and permanent gates are different objects

Two approvals can look identical on screen and mean completely different things. One exists because the system has not yet shown it can do the step; it is evidence-limited and should disappear. The other exists because somebody has to be answerable for the decision, which no level of accuracy discharges; it is liability-limited and should not.

One question separates them: what would have to become true for this gate to come off? If the answer is “the system gets reliably good at it”, the gate is temporary. If the answer is “someone else would have to be willing to be answerable”, it is permanent, and improving the model is beside the point.

The same approval screen, two different objects. Sort every gate you have into one column before you automate.
QuestionTemporary learning gatePermanent gate
Why does it exist?The system has not yet demonstrated it can perform this step correctly on the cases that really occur.Someone must be answerable for this decision to a customer, an auditor, a regulator or a court.
What removes it?Evidence: enough clean runs across the branches that actually show up, including the awkward ones.A change in who carries the liability, or in the rule that put it there. Never a model improvement.
Who decides?The process owner, once coverage and the written procedure look good enough.Whoever owns the exposure, which is usually finance, legal or the department head rather than the person automating.
What does a 100% approval rate mean?The gate has done its job and is now a candidate for removal or downgrade to sampling.Nothing at all. Approving every time is the expected outcome; the record of the decision is the point.
Where does it live after automation?Gone, replaced by exception rules and a sampling routine that watches for drift.Inside the automated process, firing on every run, for as long as the process exists.

The frequent mistake is treating every gate as temporary: as accuracy improves, approvals get stripped out in a batch and the ones that were never about accuracy go with them. The opposite mistake produces a process where nothing runs without a signature, a reviewer approving hundreds of items a day, and no real control anywhere. Sorting the gates into these two columns before you automate costs an afternoon and prevents both.

Why approvals decay: automation bias and finite attention

Approval gates rarely fail because someone approved one wrong thing. They fail because the gate stopped being read. Regulators have named the mechanism: Article 14 of the EU AI Act requires that high-risk systems be designed so natural persons can effectively oversee them, and specifically that the measures address automation bias, the tendency to over-rely on output produced by the system. It also requires that overseers have the competence, training and authority to intervene. Authority is the part most internal designs skip: a reviewer who cannot decline without a difficult conversation is not overseeing anything.

Treat the following as design requirements for the approval itself, not as training you deliver once.

  • Show the action, not a summary of it. The reviewer should see what will actually be sent, paid or changed, next to the source it was derived from, close enough together to compare without clicking away.
  • Make declining as cheap as approving. One click plus a reason from a short list. If declining means writing an email to whoever built the automation, approval becomes the path of least resistance and the gate is decorative within a month.
  • Measure the change rate, not the approval count. The number that tells you whether a gate is alive is how often a review changes the outcome: declines plus edits, as a share of items reviewed. A gate at zero for a sustained period is either ready to be removed or no longer being read, and those two need opposite responses.
  • Bound the review volume deliberately. Decide how many items one reviewer can genuinely read in a working day and design the gates so that number is not exceeded. Any design that needs a person to inspect every output forever will fail at whatever volume outruns their attention, and it will fail quietly.
  • Capture the reason for every decline. A recorded reason is the raw material for improving the procedure. Without it, the same correction gets made every week and the process never learns it. Gates also accumulate, so review the list on a schedule: for each gate, is it temporary or permanent, and what has its change rate been?

One process, three gate placements: a worked example

The trade-off is easier to see on one process than in the abstract. The figures below are invented for this example; the shape of the trade-off transfers, the numbers do not.

Refund handling at a subscription businessSimulated example data

The process. Around 60 refund requests arrive per week by email. For each one: read the request, look up the account and its last three charges, apply the refund policy (full refund within 14 days, pro-rata to 60 days, none after), issue the refund in the payment provider, reply to the customer, and log the outcome in the CRM.

Placement A — one blocking gate on everything. Every request stops before the refund is issued: 60 approvals a week for one reviewer, roughly two and a half hours of work, cleared in two batches. About 58 are approved exactly as prepared and 2 are changed. Median resolution is around a day and a half, because requests wait for the next batch. By week four the reviewer is approving from the summary line without opening the charge history, which is the moment the control stops existing.

Placement B — tiered. Refunds under €100 that match a policy rule exactly run unattended: about 44 of the 60. Everything else stops for a blocking approval: above the limit, accounts with a prior chargeback, and any request that does not match a rule. That is 16 approvals a week, roughly 50 minutes. Five of the unattended refunds are sampled each week to confirm the policy is still being applied correctly. The same 2 outcomes change per week, but they now sit inside 16 items that get read properly instead of 60 that do not. Median resolution falls to about three hours on the automated path and stays at roughly a day for the gated cases.

Placement C — undo window only. Every refund issues immediately and a reviewer has 24 hours to reverse it. Resolution is minutes. The problem is that the customer has already been told the refund is coming, so reversing it is a second conversation rather than an undo. This placement is right for the CRM note and wrong for the money.

What actually changed between A and B. The number of decisions a person makes fell by roughly three quarters, the number that changed an outcome stayed the same, and what moved is the attention each of those decisions received. The €100 limit is a liability decision rather than a technical one: whoever absorbs refund losses sets it, and it should be revisited when volume or average refund size moves. And if the same process could ever close an account rather than refund it, that action is a different tier and keeps its blocking gate whatever these numbers say.

Where the gates come from: learn, approve, codify, run

Approvals are usually retrofitted onto an automation that already works, which is why they are the first thing dropped when it gets busy. The alternative is to build the process around them from the first run. That is the sequence all-agents uses, and it holds whether or not you use our product.

  1. 01Learn — run it together, approve everything irreversibleAI judgment
    The first runs execute with a model's flexibility while the operator watches, and every irreversible action stops for approval without exception, because you do not yet know which steps are the risky ones. Each accepted run is captured as a concrete example and the written procedure is sharpened afterwards, so the next run starts from what the last one taught.
  2. 02Approve — the owner decides the process is readyHuman approval
    No fixed run count releases a process. The person who owns it decides, based on which branches have actually been seen and how complete the written procedure now looks. A rare branch that has never occurred is a reason to wait, not a reason to hope.
  3. 03Codify — the walk-through, where permanent gates get pinnedHuman approval
    Before anything is automated, the process is walked through step by step with real example data. Steps that follow rules become deterministic code, steps needing genuine judgment stay with the model, and steps where a person must remain answerable are pinned as permanent gates. This is where a temporary approval either disappears or becomes permanent, so make it an explicit written decision rather than an omission.
  4. 04Run — the codified process, with the pinned gates firingCode
    The trigger fires, the deterministic steps run, and the pinned gates pause the run for a person exactly where they were placed. The learning-phase approvals are gone; the pinned ones are not. Runs are recorded and replayable, which is what turns an approval into evidence you can produce later. The governance layer around this decides who holds which permissions and where an escalation goes.

If you take one thing from this into your own design, take the question from the codify step and ask it of every approval you have: what would have to be true for this to come off? The gates that survive it honestly are the ones worth building properly; the rest are queue latency wearing a badge. For a process where the answer is unambiguous in both directions, the accounts payable playbook shows the same patterns applied end to end.

Limitations and when not to use this

  • This page is about approvals inside an operational process. Gates catch bad actions one at a time; they do not tell you whether the system is getting better or worse over months. That question needs measurement over time, which the reliability guide covers.
  • Nothing here is legal advice. Article 22 GDPR and Article 14 of the EU AI Act are cited as primary sources and described narrowly. Whether a particular decision produces legal or similarly significant effects, whether your system falls in scope as high-risk, and what role you play are questions for your own counsel and depend on your jurisdiction.
  • Approval patterns assume you have people with the time and the standing to review. In a team where the person raising the request is also the only possible approver, dual approval is theatre. Say so plainly and choose a different control, such as an after-the-fact review by someone outside the process or a hard cap that simply refuses the action.
  • Do not automate a process whose exceptions you cannot describe. If every case needs a person because you cannot name the rule that would decide it, gates will not rescue it. The process is not ready, and writing the procedure down is the cheaper next step.

Sources

  1. Art. 22 GDPR — Automated individual decision-makingGDPR Accessed 24 July 2026
  2. Article 14: Human oversightEU Artificial Intelligence Act Accessed 24 July 2026
  3. Standards for Internal Control in the Federal Government (Green Book)U.S. Government Accountability Office Accessed 24 July 2026
  4. Embracing RiskGoogle, Site Reliability Engineering Accessed 24 July 2026

Write the gates into the procedure

Take one process, list its irreversible actions, assign each a tier, and put the resulting gates into the written procedure rather than into someone's memory.

Write the gates into the procedure
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