Designing the cooker and canister swap for KOKO's agents
A paper process that needed a rep stationed in every shop became a five-minute flow in the Agent App, built to survive the ways real customers don't fit the happy path.

The situation
KOKO had shut down its original service points, so when a cooker or canister broke, nothing anyone had designed stood in for a fix. An SMS keyword opened a ticket, and a rep was posted in the shop full time to keep a Google Form moving: shop details, serials for four items, photos of all of them. A customer care agent then charged the wallet, transferred ownership and allocated the free refill by hand, and logged it in a spreadsheet. A paper form closed the loop, because legal needed a signature.
Two weeks of data put 2,676 swaps through this route, each absorbing roughly three minutes of a rep’s time. That is 133.8 hours in a fortnight spent re-keying information a system should have caught. For the customer, a swap ran from thirty minutes to an hour and a half, mostly waiting on a process rather than being served by one.
Before
- 1Customer sends an SMS keyword, a ticket opens
- 2Rep fills a Google Form: shop, four serials, photos
- 3Care agent charges the wallet and transfers ownership by hand
- 4Free refill allocated by hand, logged in a spreadsheet
- 5Paper form signed for legal
After
- 1Identify the registered customer in the Agent App
- 2Scan faulty items, then replacements
- 3SMS terms and a one-time code replace paper consent
- 4Take payment
- 5Confirm the swap
What I designed
My scope was the swap flow inside the Agent App: identifying the registered customer, scanning the faulty items and the replacements, capturing consent, taking payment, and confirming the swap. The harder part was designing for the ways it doesn’t go right, since an agent in a shop with an impatient customer has no time to guess what a system means.


Each failure got its own screen and recovery path, with a clear point at which the agent is told to stop and route the customer to care. A registered item with a damaged tag gets a manual entry field, checked against the record on file. An item the system doesn’t recognize at all gets a hard stop and a customer care number, because there’s nothing left in the app for the agent to act on. I tested the low-balance case before launch, with real KOKO Agents against a prototype alongside the full swap.
What shipped, and what didn’t
Two builds were on the table. The lighter one left the Google Form in place and wired automation in behind it: quick to ship, and enough to hand the care team their hours back. The heavier one moved the entire interaction into the Agent App and removed the form, the shortcode, the stationed rep and the paper consent. The team took the heavier build. Automating behind the form only solves the half of the process care was stuck with, and would have left a customer at roughly twenty minutes with a rep parked in every shop. Building the harder version once was cheaper than coming back for the rest.
I helped scope phase one: a registered customer, readable serials, the standard fee. We expected that path to cover 60 to 70% of swaps, a figure checked against a real day of swap data. Everything else kept running through the manual process, with customer care as the fallback. Two exceptions came up more often than the estimate allowed for: a serial with nothing legible to scan or type, and a refurbished item that failed a second time. I’d have built both into phase one. The workaround was fine at ten shops. At a hundred, its cost caught up with the cost of building it properly.
Results
Swap time moved from 30 to 90 minutes down to 3 to 5, roughly 83% faster. Customer care got back more than 100 hours a month that had been going into manual data entry. Paper consent disappeared, replaced by an SMS carrying the terms and a one-time code, which left legal with a cleaner audit trail than a signed form. Rollout tracked refurbished stock, growing from 10 pilot shops to 100 as supply allowed.
NextBuilding the OS behind the design team