Product Designer, AI Agents
Fintech SaaS
B2B

Scope
One workflow: a supplier asks to change their bank details, and the case ends with the payment being released or a complaint being raised. My focus was the agent design: why the work is split across several agents, what each may and may not do, which guardrails prevent an incorrect payment, and where a person must decide.
A fake request costs the next payment
Fraudsters pose as a supplier and ask a company's finance team to change the bank details on file. If the change goes through, the next payment goes to the fraudster. In 2025, 74% of US organisations were hit by business email compromise (AFP, 2026 Payments Fraud and Control Survey); one such request cost Toyota Boshoku $37 million (Abnormal AI, 2023), and Abu Dhabi Police warned businesses in October 2026 (Gulf News). The obvious fix creates a second problem: treating every request as fraud leaves genuine suppliers unpaid. The design has to stop fraud without making real suppliers wait.
Research and design direction
What the research showed. I read public reviews and supplier guides for two existing tools, Trustpair and Eftsure, mostly Eftsure, and added my own scenario thinking. Three problems kept coming up, and each set a design direction. There were no user interviews.

Dividing the work between six agents
This is not one screen or one chatbot. I split the work across six AI agents so that no single agent can both read untrusted email and move money. Text inside a request is treated as data, never as instructions. Each gets only the access its job needs and a hard limit on what it may do. Four people hold the decisions that cannot be undone: the caller, a senior approver, a security or IT reviewer and a finance manager. My aim was trust in both directions: the company is protected, and a genuine supplier is never treated as a suspect.

How much control each action gets
Any agent can stop a case. Only a person can let it go. A wrong stop costs a delay. A wrong go costs money. To decide how much control each action gets, I rated it on impact, reversibility, reliability, sensitivity, and how easily a mistake would be noticed. Every action touches financial data, so the chart shows only what varied.

One decision matters most. I made the call go to the contact on file, never the one in the request, because a fraudster controls every detail in the request, including the phone number.
Designing the flow: when agents work and when people step in
Agents prepare, people decide, and every case ends with the payment being released or a complaint being raised with the supplier.

Design rules behind the flow: The checks run in parallel so a genuine supplier is not kept waiting. Each problem goes to the person who can judge it: security reviews fraud signals, and the finance manager reviews contract rules. When anything fails, the default never changes: hold the payment, change nothing, tell the person. An agent that is down or missing information never guesses. Silence never counts as approval: if nobody responds, the case waits and no agent proceeds on its own. A stuck case escalates after two working days, which is my proposal.
When an agent gets it wrong: An agent can be confidently wrong or invent a contract rule. So every agent passes its confidence on, and low confidence stops at a person. The policy check may only quote rules from the contract on file and say so when it finds none. A fraudster's request may contain hidden instructions, so the request reader can read but never act.
When a real supplier is held by mistake
A hold must never become a dead end. Anyone who clears a flag must say why, and the requester sees the new step.
What is logged: Who released it, when, which agent's flag it was, and a short reason they must write.
What the requester sees: The status screen shows the new step and its owner, for example, "Cleared by security review; call the contact on file next", so nobody has to chase.
Designing what each person sees
Nobody hears "the risk agent says"; they hear what it means for them. Three screens carry the trust: step progress for the requester, a call checklist for the caller, and a senior approval view with a "Why?" on every flag.
Requester. Where the case is, who owns it, and how long it has waited. Payments are clearly on hold. This is a status view: the requester decides nothing. Showing the owner and the wait lowers anxiety and stops people chasing by email outside the system.



What I would test next
This is a concept built from desk research, so each choice above is a hypothesis, and the stuck-case timings are my proposal. I would first interview accounts-payable staff, then run each agent's instructions on a real model 3 to 5 times, including a request with hidden instructions, and measure four things, each defined so I can tell whether the design works:
False holds. Genuine supplier requests held up by a flag that turned out to be wrong. This is the cost of caution: real suppliers kept waiting.
Genuine flags caught. Fake or altered requests stopped before payment, including test cases I plant. This is the reason the system exists.
Time to release. Time from request to payment released, for genuine changes. It shows whether safety is slowing real suppliers.
Override rate per agent. How often a person clears or reverses each agent's hold. It shows which agent's flags are noisy or weak.