Where we started
Every month, 40% of spend requests expired without a single response. Requests lived inside the People page, buried under employee management tools.
No audit trail, no delegation, no mobile access, built for one admin to handle everything, which worked fine at 20 people and fell apart at 200.
Approvals were something every company needed to get right. Since Pleo wasn't solving it, companies built their own process. WhatsApp groups, Slack conversations, email threads. The actual work was happening somewhere else.
Where we landed
Requests got their dedicated hub, filterable by type, with full context per request and a complete audit trail. Multiple approvers could now act: team leads for day-to-day decisions, admins for final sign-off. And a mobile experience that gave people flexibility to act on the go.
Action rate went from 60% to 80%.
Why it mattered
Improving request approvals was a company KPI tied directly to spend growth. Every expired request was a transaction that never happened: lost transaction fees and lower card usage. For a B2B product, a workflow that actually worked meant more companies getting value from Pleo: more seats, more upsells, a stronger case for new prospects.
Companies were also asking for more ways to manage approvals inside Pleo. But with 40% of requests expiring and the existing flow broken, there was no foundation to build on.
What wasn't working
The expiry rate was the symptom. The real problem was that the approval workflow didn't fit how companies actually operated.
So they worked around it. WhatsApp groups, Slack messages, email chains. Department leads giving the OK, admins updating limits in Pleo after the fact. Four things made that happen:
Discoverability
Requests were buried inside the People page. Approvers regularly missed them.
Accountability
No audit trail. No way to know who approved what, or when.
Scale
The workflow only supported a single admin approver. No delegation, no multi-step approvals.
Fragmentation
The process depended on email notifications and a page nobody really visited, with no mobile experience at all.
What we found
Growing companies hit a point where informal processes stop working. For Pleo's mid-market customers, decisions start requiring more people, urgency gets harder to prioritize, and informal processes get replaced by policy. More employees, more management layers, more requests, but no infrastructure to handle them.
Research kept surfacing the same things. Department leads wanted to be part of the approval decision, not just notified after. Finance teams often lacked the context to make calls on their own. Some companies reviewed requests on a set schedule, others needed to act the same day.
One workflow wasn't going to fit everyone. The fix needed to be flexible, not just easier to find.
What guided the work
Three principles I set at the start to make sure every decision pointed in the same direction.
Scalable by default
Any solution had to work for a 20-person startup and a 200-person company without needing a redesign. If it couldn't grow with the customer, it wasn't the right solution.
Context over clicks
Approvers needed to understand why a request was made, not just that one existed. A request without context is just noise.
Connected, not isolated
Requests couldn't live as a standalone feature. They needed to plug into the broader approval ecosystem (review policies, spending guidelines, audit trails), so actions had meaning beyond the moment.
How we built it
The work happened in 3 phases: Foundations, Integrations, and Mobile. Each one built on the last, and each one changed what we prioritized next.
Putting requests where people could see them
The first decision was where requests should live. I recommended a dedicated sidebar section, separate from the People page entirely. Stakeholders pushed back, sidebar space is limited and everyone wants it.
I built the case with usability testing and usage data, and connected it to Pleo's strategic direction. Users found the section without guidance and moved between request types without friction. The data closed the conversation.
One thing I caught early: returning users needed onboarding cues to notice the change. I flagged it before launch and made sure it was built in.
Audit trail
Accountability was a gap I identified early. Finance teams had no way to trace a decision after it was made: who approved it, when, and why. At the end of the month, that meant digging through hundreds of emails to find a single purchase decision.
I made the audit trail a core part of the new hub. For mid-market companies with multiple approvers and compliance requirements, traceability wasn't optional, it was the thing that made the whole flow trustworthy.
This wasn't the first version: getting to the right solution meant ruling out the wrong ones first. Here's what that looked like.
Getting the right people into the flow
Discovery surfaced something the original design had missed: admins weren't the only ones who needed to approve requests. Team managers had the context and, in many companies, the authority. But the system didn't account for them.
The technical side was harder. Requests ran pre-purchase. Approval systems were built post-purchase. Different teams, different data models, never designed to talk to each other. Connecting them took sustained cross-team coordination and negotiation about scope.
We shipped an MVP first to validate shared ownership before committing to the full build. It worked.
Meeting managers where they were
Phase 2 brought the right people into the flow. But the numbers weren't moving the way we expected. We dug into the data: 92% of manager actions were happening on mobile. The approval flow existed on web only, so managers weren't using it.
Building a mobile experience wasn't a stretch goal. It was the missing piece.
What it changed
60→80%
action rate across full rollout
| Metric | Baseline | Result |
|---|---|---|
| Request action rate | 60% | 80% |
| Lift from navigation fix alone | — | +14% |
| Average response time | 20h | 11h |
Employees stopped waiting on decisions that used to disappear into someone's inbox. Approvers had the context they needed, a clear place to act, and could do it from their phone. Finance had an audit trail for the first time. And the companies that had built their own workarounds in WhatsApp and Slack had one less reason to stay outside Pleo.
Looking back
The biggest lesson came after launch. When the action rate stabilized, I went back into the data to understand why. Some of the inactive requests came from companies that had never approved a single one. For the companies actively using requests, the core problems were solved. But the ceiling wasn't a design problem — it was an adoption one. Better onboarding and activation nudges would have done more than any interface change at that point.
Phasing the work was the right call. We could have tried to ship everything at once, but validating at each step is what kept us from building the wrong things in the wrong order.
If I could go back, I'd push the chat-based direction further before ruling it out. Given how many companies were already running approvals through Slack and WhatsApp, a conversational layer might have been the thing that closed the adoption gap.
Disclaimer
To respect my NDA with Pleo, I've kept confidential details out of this case study. The numbers here are directional — they're meant to show impact, not disclose sensitive data. Everything else reflects my own work and perspective.