01

Blog · October 30, 2026 · 7 min read

Approval Workflow UX: Design for the Approver Who Has Four Seconds

Every B2B product with money, access, or risk in it eventually grows an approval flow. Spend requests, purchase orders, refunds, vendor onboarding, role changes, production access. The first version is usually a button that says "Approve" and a notification that says someone needs you. It works for about six months.

Then volume shows up, and the approval turns into a reflex. A founder on r/SaaS described the routine plainly: a Slack ping, approve, done. Commenters in that thread called manual approvals at scale "fake control" and said the real fix was deciding what actually needs human attention. On r/procurement, the same tension shows up from the other side: finance wants control, teams want speed, and procurement sits in the middle making it work.

We think this is a design problem first and a rules problem second. When an approver clicks yes in four seconds, the product has already decided what they saw in those four seconds. That screen is the control. If it shows a name, an amount, and a green button, the control is the green button.

We work on complex and regulated products, including fintech, B2B SaaS, and marketplaces, and approval flows are one of the places where product design and compliance meet head on. Here is how we approach them.

Start with the approval budget

Every organization has a fixed amount of human attention it can spend on approvals. We call it the approval budget. Each request that reaches a person spends some of it. Spend it on routine renewals and there is nothing left for the new vendor with a three year auto renewing contract.

So the first design question is which requests should never reach a person at all. We map every approval type into three lanes:

  • Auto approved within policy. Recurring charges from known vendors, amounts under a threshold, requests that match a prior approved pattern. These get logged and summarized, never pinged.
  • Fast lane. Routine but worth a glance. One screen, one decision, approvable from a phone.
  • Review lane. New vendors, contracts with legal terms, amounts above a threshold, anything flagged as unusual. These get context, time, and sometimes a second reviewer.

The design work is making those lanes visible. Admins should see what share of requests lands in each lane every month. If the review lane holds 80 percent of volume, the policy is wrong, and no interface will save the approver from reflex clicking.

Show why it routed to you

The single most useful line on an approval card is the routing reason. "You are seeing this because it is over $10,000 and the vendor is new." That sentence tells the approver what to check. Without it, they have to reverse engineer the policy from the request, and nobody does that at 6pm.

A strong approval card answers five questions above the fold:

  1. What is being requested, in plain language.
  2. Why it routed to this person specifically.
  3. What changed since the last time something similar was approved.
  4. What it does to the budget or limit it draws from.
  5. What happens right after approval, and whether it can be undone.

Notice what is missing: the full form the requester filled out. That belongs one tap away. Approvers need the decision context first and the raw record second.

Treat edits as new requests

One of the quietest failures in approval workflow UX is the approved request that changes afterward. A PO gets approved at $8,000, then someone adds two line items and it ships at $14,000 on the original approval. A NetSuite builder on Reddit described this exact gap as the reason they built their own tool.

Our rule: any material edit after approval reopens the request, and the approver sees a diff. Highlight the changed fields, show old and new values side by side, and route again if the new values cross a different threshold. The requester should see this coming before they save, with a short warning that the edit will send it back for approval.

Give the requester a live status

Approval flows are usually designed for approvers and forgotten for requesters. The requester's experience is a black box: submitted, then silence, then either a surprise rejection or a forgotten request sitting in someone's queue.

We design the requester side as a status timeline, the same way we would design a payment status. Who has it now. How long it has been there. What the typical turnaround is for this type of request. What happens if the approver is out. If it is rejected, the reason appears in the product, attached to the specific line or field, with a clear path to fix and resubmit.

Item level decisions matter here. When one flagged line item blocks an entire order, the requester waits on everything. Letting approvers approve most of a request and send one line back keeps work moving without weakening the control.

Design for absence

Approvers go on vacation, change teams, and leave companies. Most approval systems discover this when a request has been stuck for nine days. Delegation and escalation are core flows and deserve real design:

  • Out of office delegation the approver sets up in two taps, with an end date.
  • Automatic escalation after a defined wait, visible to both sides before it happens.
  • Reassignment by admins with a logged reason.
  • A clear owner for every stuck request, shown on the requester's timeline.

Some teams auto approve on timeout. We are cautious about that pattern in regulated contexts. If silence equals approval, an audit will eventually ask who approved it, and "nobody" is a hard answer to give.

Make the audit trail a product surface

Finance and compliance teams eventually need to prove the control worked. If the audit trail is a database table only engineers can query, every audit becomes a fire drill.

We design the approval history as something an admin can read and export: who approved, when, what they saw, what policy routed it, what changed afterward, and any overrides with their stated reason. Segregation of duties belongs inside the flow too. The product should stop someone from approving their own request, and say why, instead of relying on a quarterly review to catch it.

Where AI fits

AI is genuinely useful in approval flows, in specific places. It can summarize a long contract into the three terms an approver should care about, compare a request to similar past approvals, and flag anomalies like a new vendor with a familiar name or an amount just under a threshold.

The decision stays with a person in the review lane, and every AI summary should point to the source it came from. An approver who reads "standard terms" from a model, approves, and later finds a three year auto renewal has learned to distrust the whole surface. We design AI suggestions so the source is one tap away and the approver's decision is logged separately from the model's recommendation.

What we reject

When we audit an approval flow, these are the patterns we push to remove first:

  • Every request routed to a person, regardless of amount or risk.
  • Approval cards that show only requester, amount, and a button.
  • No routing reason on the request.
  • Approvals that survive material edits without a diff or re-review.
  • Rejections without a reason attached to the specific field or line.
  • A requester view with no status beyond "pending".
  • Slack or email approve buttons that skip the context the in-app view shows.
  • Auto approve on timeout for high risk categories.
  • Audit history that requires an engineer to pull.
  • AI summaries with no link to the source document.

Where to start

If your product has an approval flow, pull the last 200 approvals and look at time to decision. A wall of decisions under ten seconds tells you the control has become a reflex. Then sit with three approvers and watch them clear their queue. Note every time they open another tab to find context the card should have shown.

From there, the order of fixes is usually the same: add routing reasons, move routine requests out of the human queue, add diffs on edits, and give requesters a real status timeline.

We do this work as senior designers who ship working software, using AI to move fast and keeping the judgment calls with people who have designed regulated flows before. If your approvals have turned into reflex clicks, we can audit the flow and prototype the fixes in weeks.

Book a discovery call or email ash@uxsignalstudio.com.

Let’s talk about your next step

Have a question or a project in mind?

Tell us where you are and what you want to figure out. We’ll review your message and reply within two business days.

Contact UX Signal Studio

We’ll use your details to respond to your inquiry. This form does not subscribe you to a mailing list. Privacy policy.

Prefer to talk? Book a discovery call

Get the next essay in your inbox

One practical piece on UX and product design, every week or two. No noise.