CASE STUDY
Lightspeed X-Series
Cleaning up customer data for 500K+ users of Lightspeed's flagship retail POS.
ROLE
Product Designer II
TEAM
PM, Engineering and QA
PLATFORM
Web app + Mobile
TIMELINE
6 Weeks
OUTCOME
−30% duplicate customer records
01
Overview
Retailers' customer lists were full of duplicates, which caused billing errors, broke loyalty programs and slowed support. I designed a flow that detects likely duplicates, groups them, and lets merchants merge them with confidence. It shipped in X-Series and cut duplicate records by 30% for 500K+ users.
02
Problem
X-Series merchants kept the same shopper on file two, three, or five times. Each copy split that shopper's purchase history, so a customer could be billed incorrectly, miss loyalty rewards, or get marketing that didn't fit them. Support teams lost time working out which record was “real” before they could help.
The cost wasn't just messy data. It was lost trust at the counter and marketing merchants were paying for but couldn't use.
03
Approach
Talked to the people cleaning up the mess.
I interviewed customer support agents, data analysts and merchants to see how duplicates hit their day-to-day work.
Mapped the current journey with the PM.
We traced how a duplicate gets created and where it hurts, then redesigned the journey around each pain point.
Explored widely, then cut hard.
I ran cross-functional brainstorms on manual cleanup, automation and group merging, then prioritized with MoSCoW.
Designed with the data, not around it.
Engineering's ML model flagged likely duplicates from historical records; my job was making its output understandable and safe to act on.
Tested and iterated.
Usability tests with merchants and internal teams checked navigation, discoverability of the new detection, and time to merge.
04
Key decisions
DECISION 1
Suggest and group, but let the merchant merge.
Merchants asked for automation, and the model could find duplicates. But merging customers touches billing and purchase history, and support agents worried automation would make their work harder. So the system detects and groups likely duplicates, and the merchant confirms each merge. Fully automatic deletion went to “could have” for later.

DECISION 2
Fix the records, not the whole CRM.
Data-source migration and a full CRM overhaul were real needs, but each would have turned a six-week project into a year. I scoped them out explicitly as “won't have,” so the team could ship the core: accurately identify and merge duplicates.
DECISION 3
Make the merge itself fast.
Merging is the moment of truth, so the merge modal got the most iteration. In testing it was the part users singled out for saving them time.

05
Outcome
06
Leadership
DISCOVERY
Led the discovery.
Led discovery across support, data analysts and merchants, and turned it into the problem statement the team worked from.
SCOPE
Set the scope.
Facilitated the cross-functional brainstorms and ran the MoSCoW prioritization that set scope with the PM.
BUY-IN
Earned support buy-in.
Showed the time savings, gave hands-on help, and changed the design based on the support team’s feedback.
NEXT CASE STUDY
© 2026 Joao Medeiros