Self-Service Refunds

Turning a contact centre process into an automated self-service journey, without increasing fraud

Turning a contact centre process into an automated self-service journey, without increasing fraud.

E-commerce

Service design

Cross platform

Cost reduction

Shipped

75%

of refunds via self-service UI

88%

auto-approved

~13%

contact centre calls reduced

ROLE

Product Designer

Product Designer

TEAM

PM, Data, 3 Engineers

PM, Data, UX Research, 4 Eng

PLATFORM

Web, iOS, Android

Web, iOS, Android

TIMELINE

2 months

2 months

Role

  • Led end-to-end UX across web, iOS and Android

  • Designed the refund flow and system behaviours: eligibility, auto-approval and escalation

  • Partnered with backend engineers on APIs and business rules

  • Aligned stakeholders across Product, Engineering and Customer Operations

  • Ran usability testing and iterated the flow

  • Introduced design QA reviews to raise build quality and accessibility

Discovery

  1. Mapped the current refund journey and its operational costs

  2. Identified the 3 key drivers: cost, customer friction and lack of structured data

  3. Found that most refund requests were low risk and repetitive, a good fit for automation

Role

  • Led end-to-end UX across web, iOS and Android

  • Designed the refund flow and system behaviours: eligibility, auto-approval and escalation

  • Partnered with backend engineers on APIs and business rules

  • Aligned stakeholders across Product, Engineering and Customer Operations

  • Ran usability testing and iterated the flow

  • Introduced design QA reviews to raise build quality and accessibility

Discovery

  1. Mapped the current refund journey and its operational costs

  2. Identified the 3 key drivers: cost, customer friction and lack of structured data

  3. Found that most refund requests were low risk and repetitive, a good fit for automation

Order received

Order recieved

Order
recieved

Missing item or
product wrong

Missing item or product wrong

Missing item
or product
wrong

Call center

Make refund
manually

Make refund manually

Key insight

Most refunds didn't need a human. They needed clear rules and a simple flow.

Approach: key decisions and trade-offs

Productise refunds

Turn a contact centre task into a product feature

Automated low-risk cases

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

Structured reasons, not free text

Mandatory, granular reasons:
Better data and accountability at the cost of slight friction

Multi-item refunds

Several items in one request: More efficient, but increases potential refund value

Limited discoverability

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

Native app design

Use native iOS and Android patterns instead of copying web

Solution

Order details

Order recieved

Order
recieved

Select items

Missing item or product wrong

Missing
item
or product
wrong

Choose
reason

Choose reason

Choose
reason

Request

Request

Track status

Track status

Track

status

A self-service refund system embedded in the order journey:

  • Item-level refund selection

  • Structured reasons with optional comments

  • Configurable eligibility window

  • Auto-approval for low-risk cases

  • Status tracking and notifications

  • Rolled out across platforms: web first, then native apps

Validation & Impact

Usability validation

  • Users could complete refund requests without assistance

  • Multi-item flow reduced errors and confusion

Changes from testing

  • Clearer refund reason selection (reduced hesitation)

  • Better visibility of selected items and total value

  • Simplified confirmation feedback

Results

  • 75% of refunds moved to self-service

  • 88% of requests auto-approved

  • ~13% fewer contact centre calls

  • ~48% of refunds made on mobile web

  • Refund rates didn't increase after launch

Adoption

Self-service refunds were rapidly adopted, becoming the primary channel without increasing overall refund rates.

Design QA

During build, we found gaps between design and production, especially in interactions and component behaviour. I introduced regular design QA reviews and clearer documentation, so the feature shipped with consistent quality across platforms.

Learnings

  • Ease and risk go together. Making refunds easy increases risk, so the real challenge was balancing convenience with control.

  • Designing rules is design work. The approval rules we defined with backend drove as much impact as the interface.

  • Friction can be intentional. Limiting discoverability and structuring inputs prevented abuse without hurting usability.

  • Good recovery builds loyalty. Fast refunds kept customer trust after a bad experience.