Self-Service Refunds
Scaling refunds from contact centre dependency to automated, self-serve journeys

75%
of refunds via self-service UI
88%
auto-approved
~13%
contact centre calls reduced
Context
First-time shoppers represent a significant share of growth, but conversion was heavily constrained by early funnel friction. Users were required to register before validating delivery availability, creating uncertainty at a critical decision point.
Role:
Product Designer (end-to-end) leading UX across web and native apps, aligning experience, patterns, and accessibility.
The challenge
Design a scalable refund experience that:
Reduces contact centre dependency
Maintains fraud control
Works across web and native apps
Balances ease vs. abuse risk
Key constraint: Refunds are financially sensitive, cannot optimise purely for ease
Order received
Missing item or
product wrong
Call center
Make refund
manually
Context
Refunds were handled through the contact centre, creating friction for customers and significant operational cost. Even at ~5% of orders refunded, manual handling didn’t scale and lacked the structured data needed for supplier accountability.
Role:
Product Designer (end-to-end) leading UX across web and native apps, aligning experience, patterns, and accessibility.
The challenge
Design a scalable refund experience that:
Reduces contact centre dependency
Maintains fraud control
Works across web and native apps
Balances ease vs. abuse risk
Key constraint: Refunds are financially sensitive, cannot optimise purely for ease
Order received
Order
recieved
Missing item or
product wrong
Missing item
or product
wrong
Call center
Make refund
manually
Key decisions

Productised refunds
From contact centre to capability:
Faster UX, but controlled exposure to avoid abuse

Automated low-risk cases
Auto-approval + escalation for edge cases:
Reduced cost while maintaining control

Structured inputs, not free text
Mandatory, granular reasons:
Better data and accountability at the cost of slight friction

Batch refund flow
Multi-item refunds with summary:
More efficient, but increases potential refund value

Limited discoverability
Placed behind order details intentionally:
Prevents misuse while keeping access available

Native app design
Using last trends patterns and removed web friction:
Improved usability and consistency across platforms
Process
Analysed current refund journey and operational costs
Identified key drivers: cost, friction, lack of data
Designed end-to-end refund flow (item → reason → summary → status)
Defined system behaviours (auto-approval, cut-offs, eligibility)
Iterated UI patterns across web + native
Partnered with backend on APIs and rules logic
Solution
A self-service refund system embedded in the order journey:
Item-level refund selection
Structured reasons + optional comments
Configurable eligibility window (e.g. 7 days)
Auto-approval for low-risk cases
Status tracking and notifications
Cross-platform: web → webview → native apps
Solution
Registration was the largest drop-off point
20% of users saw unavailable products after slot selection
Late discovery of issues reduced trust and intent
Registration was the largest drop-off point
20% of users saw unavailable products after slot selection
Late discovery of issues reduced trust and intent
Validation & Results
Usability validation
Users could complete refund requests without assistance
Multi-item flow reduced errors and confusion
Key improvements
from testing
Clearer refund reason selection (reduced hesitation)
Better visibility of selected items and total value
Simplified confirmation feedback
Behavioural outcomes
Majority of refunds shifted to self-service (~65–75%)
High success rate of requests (~86% approved)
Increased usage on mobile (~48% via mobile web)
Adoption
Self-service refunds were rapidly adopted, becoming the primary channel without increasing overall refund rates.


Design QA & Iteration
During implementation, we identified gaps between design intent and production output, particularly in interaction patterns and component behaviour.
I introduced regular design QA reviews and improved documentation to align teams and resolve inconsistencies early. This iterative collaboration helped ensure the feature shipped with a high level of quality and consistency across platforms.x


Key learning
Making refunds easy increases risk — the real challenge was balancing convenience with control.
The biggest impact came from auto-approval rules, not the interface itself.
Limiting discoverability and structuring inputs helped prevent abuse while keeping the experience usable.
Faster, self-serve refunds helped maintain customer trust and retention after a bad experience.
Integrating UX, backend logic, and operational workflows was key to delivering measurable impact.
Making refunds easy increases risk — the real challenge was balancing convenience with control.
The biggest impact came from auto-approval rules, not the interface itself.
Limiting discoverability and structuring inputs helped prevent abuse while keeping the experience usable.
Faster, self-serve refunds helped maintain customer trust and retention after a bad experience.
Integrating UX, backend logic, and operational workflows was key to delivering measurable impact.
Key decisions


Productised refunds
From contact centre to capability:
Faster UX, but controlled exposure to avoid abuse


Automated low-risk cases
Auto-approval + escalation for edge cases:
Reduced cost while maintaining control


Structured inputs, not free text
Mandatory, granular reasons:
Better data and accountability at the cost of slight friction


Batch refund flow
Multi-item refunds with summary:
More efficient, but increases potential refund value


Limited discoverability
Placed behind order details intentionally:
Prevents misuse while keeping access available


Native app design
Using last trends patterns and removed web friction:
Improved usability and consistency across platforms
Process
Analysed current refund journey and operational costs
Identified key drivers: cost, friction, lack of data
Designed end-to-end refund flow (item → reason → summary → status)
Defined system behaviours (auto-approval, cut-offs, eligibility)
Iterated UI patterns across web + native
Partnered with backend on APIs and rules logic
Validation & Results
Usability validation
Users could complete refund requests without assistance
Multi-item flow reduced errors and confusion
Key improvements
from testing
Clearer refund reason selection (reduced hesitation)
Better visibility of selected items and total value
Simplified confirmation feedback
Behavioural outcomes
Majority of refunds shifted to self-service (~65–75%)
High success rate of requests (~86% approved)
Increased usage on mobile (~48% via mobile web)