Reducing customer service contacts by 70%
CS contact rate before
CS contact rate after
Time to see impact
CS contact rate before
CS contact rate after
Time to see impact
01 - The Problem
A company scaling fast. A support team not scaling with it.
The Modern Milkman grew from a small Lancashire milkround to a subscription grocery service with hundreds of thousands of customers across the UK and US. As the customer base expanded, delivery complexity grew, and with it, the volume of people contacting customer service about missing items, damaged goods, and delivery instructions not being followed.
By 2022, around 80% of customers who had a delivery issue were reaching out directly to the support team, by phone, live chat, or email. Each contact required a human agent to investigate, verify, and resolve. It wasn’t sustainable.
The challenge wasn’t just operational. Customers wanted speed. Waiting on hold or in a chat queue to report a missing pint of milk is a frustrating experience. The solution needed to serve both sides: reduce load on the team while making resolution genuinely faster and easier for the customer.
02 - Discovery
Understanding the shape of the problem
Working alongside the product and customer service teams, I analysed the most frequent contact reasons. Three categories dominated: missing items, damaged goods, and delivery instructions not being followed (for example, a driver not leaving an order in a safe place, or leaving items somewhere they’d be found by someone else).
Each of these had a clear resolution path. Missing items: credit or redelivery. Damaged goods: credit or redelivery. Delivery instructions not followed: a formal record of the issue plus credit or future redelivery. There was no ambiguity in how the business wanted to respond, the resolution logic was already well-defined. What was missing was a way for customers to trigger it themselves.
I also looked at where customers were going when they had a problem. Most landed on the Help page, specifically to find a phone number or live chat button. That became the intervention point.
03 - Design
A guided flow, not a form
The core design principle was simple: don’t make customers think. Each step should present one clear question. The flow needed to feel helpful, not like you were filling out a complaints form.
1. Entry point: "Report an Issue"
Rather than burying this in a menu, a clear CTA button was added to the Help page. Customers chose the specific delivery they had an issue with, rooting the conversation in a real order rather than an open text field.
2. Issue categorisation
Customers selected the type of problem from a short list: missing items, damaged items, or delivery instructions not followed. This branched them into the right flow immediately.
3. Item-level detail
For missing or damaged items, customers selected exactly which products from their order were affected, no free-text guesswork. They then described what happened in a free-text field, keeping context human without relying on it for resolution logic.
4. Resolution choice
Customers chose their preferred outcome: account credit (applied instantly) or redelivery (with a date selector). Giving the customer this choice was important, it made the resolution feel fair and personal rather than automated.
5. Automated confirmation
Credit was applied to their account immediately. Redeliveries were scheduled without any agent involvement. Customers received confirmation. The loop closed without a single human in the chain.
For delivery instruction issues, the flow captured what the driver had failed to do, both as a record for the business and as context for any follow-up. This branched to a goodwill credit automatically, with additional compensation options if items were also damaged as a result.
04 - Constraints & Trade-offs
Shipping an MVP, not a masterpiece
As with most real product work, the path from ideal to shipped involved compromise. Stakeholder alignment, technical feasibility, and the pressure to test quickly all shaped the final scope. An MVP was agreed with the intention to iterate once we had real usage data.
This is a discipline I’d applied across multiple projects at The Modern Milkman, identifying the minimum version that genuinely tests the hypothesis, shipping it, and using real behaviour to drive the next iteration rather than assumptions. The self-serve flow was a clear case where getting something out quickly was more valuable than holding for a perfect solution.
05 - Outcomes
Impact visible within a week
The drop in CS contact rate was measurable within days of launch. Customers adopted the self-serve flow quickly, when the path to resolution is faster and more convenient than calling or chatting, the choice is straightforward.
CS contact rate: 80% → 10%
The overwhelming majority of delivery issue contacts were eliminated. The support team could focus on genuinely complex cases rather than high-volume, predictable queries.
Faster resolution for customers
Credit applied instantly. Redeliveries arranged without waiting. Customers got their resolution in under two minutes rather than waiting in a queue.
Richer issue data
Structured reporting meant the business could see patterns in delivery issues, which drivers, which routes, which product categories, in a way that unstructured CS logs never allowed.
Scalable by design
As the customer base continued to grow, the CS contact volume didn't grow with it. The system scaled with the company without requiring proportional headcount increases.
For delivery instruction issues, the flow captured what the driver had failed to do, both as a record for the business and as context for any follow-up. This branched to a goodwill credit automatically, with additional compensation options if items were also damaged as a result.
06 - Reflections
What I took away from this project
- The best UX intervention isn't always a new feature, sometimes it's removing a human from a process that didn't need one in the first place.
- Resolution logic that exists in agents' heads is design debt. When you surface it as a system, you make it consistent, fast, and measurable.
- Giving customers agency in how they're compensated (credit vs. redelivery) meaningfully affects satisfaction. The choice itself is part of the resolution.
- An MVP shipped and iterated beats a perfect solution held back. Real usage data is worth more than additional rounds of internal review.
- Quantifiable outcomes take time to establish. The contact rate drop was visible within a week, but knowing it would work required confidence in the research up front.