Enzo Fernandez

B2B Decision System

R&ODS
B2B·Omnichannel Operations·Decision System Design·2025
Senior Product Designer
-22% Return Errors7 Agents · 4 Markets0 Untraced Exceptions
01 — The Problem

Seven agents managing returns and order disputes across four markets. Each handling 10 to 15 active cases at any given time. Returns are not their primary responsibility. Every minute spent on a routine return case is a minute taken from something that matters more.

Three things became clear from working sessions with agents and coordinators.

Two agents handling the same type of case made completely different decisions. Neither knew what the other did. This was not incompetence. It was the absence of a shared framework.

Contractual deadlines were being missed because there was no proactive signal. The system had no concept of urgency.

When a client called about a case handled two weeks ago by a different agent, the answer was: it depends on whether that agent is available to ask. Information lived in people, not in the system.

02 — Why This Was a System Problem, Not a UI Problem

The initial request was an interface for managing return cases. A list with forms, something cleaner than what existed. I reframed it on day one.

A cleaner form on top of a process without rules produces inconsistent decisions with better presentation. The problem was not visual. It was structural. The question was not "how should this look." It was "what are the rules, and how does the system enforce them."

The most important finding was not operational. Agents did not want another system. Their words, in different variations: "we already have too many things to look at." That resistance was not irrational. It became the constraint that shaped every design decision that followed.

03 — Core Decisions
Decision 1

Reframe the problem before designing anything

What I Decided

Reframe the project from "build a cleaner interface" to "define the decision rules the system will enforce" before opening any design tool.

What I Rejected

Building a cleaner form over the existing process, which is what the team expected and what would have been faster to show.

The Pressure Against It

The team had processes running. A cleaner interface would have been visible, fast to deliver, and politically easier. Two weeks without screens creates real tension with stakeholders who want to see progress.

Why I Held the Position

Seven agents were making different decisions about the same type of case with no shared framework. A cleaner form does not solve that. It presents the inconsistency more neatly. I ran the decision model past coordinators in a two-hour session before drawing a single wireframe. That session surfaced two edge cases that would have become production bugs.

Return Case State Machine

reviewholdexpireapproveoverriderejectdispatchdispatchOPENUNDER_REVIEWON_HOLDEXPIREDAPPROVEDAPPROVED_OVERRIDEREJECTEDDISPATCHED
Decision 2

Deliberate friction in the exception flow

What I Decided

Introduce real friction in the exception flow. Justification field required, minimum 20 characters. Agents cannot approve an out-of-standard case without documented reasoning.

What I Rejected

Minimizing friction across all cases, as the PM requested.

The Pressure Against It

The PM had a legitimate argument. Every additional field is resistance to adoption. Agents already had resistance to a new system. I had to take it seriously.

Why I Held the Position

If an agent can approve an expired case in one click, the override becomes a shortcut, not a documented exception. The Override Dashboard is useless without real justifications. We accepted more friction for the 20% of exception cases to guarantee those decisions are conscious and traceable. Quick-reason chips reduce the effort without eliminating the mechanism.

04 — The System
Agent queue view showing Action chips: Override needed in amber, Ready in green, Escalated in purple. Status as plain text. Case list with urgency signals.
1 / 8
05 — What Changed
BEFOREAFTER
Different agents making different decisions on identical casesShared decision framework enforced by the system
No concept of deadline urgency in the queueProactive signals. Agents see what is expiring before it expires.
Information living in people, not the systemFull case history accessible to any agent regardless of who handled it
No exception traceabilityEvery exception documented with justification, flagged in audit trail
Inconsistent return decisions across agents and markets-22% erroneous return decisions. Consistent logic enforced by the system.
06 — What I'd Do Differently

Run structured validation sessions with agents earlier. I validated informally. With more time, I would have asked agents to walk me through live cases using the model and verified whether the states and transitions matched how they actually thought about their work. Real operational language surfaces edge cases that modeling alone does not.

07 — Key Learning

Agents do not resist automation. They resist opacity. When the system showed the reasoning behind a proposal, not just the conclusion, skepticism dropped immediately. A proposal with visible validation logic is something an expert can evaluate and override. A proposal without it is something they have to accept or reject blindly. Transparency of reasoning drives trust more than accuracy of output.

← Back to work