This case study is under NDA

Enter the passcode to view it — reach out if you don't have it.

Incorrect passcode — try again.

← Back to home
Product design · CRM data integrity

Duplicate Contacts

Title companies collect contacts the same way any CRM does — and over time, the same person ends up in the system more than once. This is how we taught the system to catch it, without asking people to double-check its work.

Shipped Feb 2026 · 3 weeks to MVP Product Designer B2B SaaS · Real Estate Title Figma, Claude Code, Storybook
Contacts
Contacts
Companies
Deals

All contacts

Possible duplicate
Sarah Chenschen@examplecorp.com98%
Sarah T. Chens.chen@examplecorp.com
TL;DR
Problem

Duplicate contacts pile up in title company CRMs the same way they do in any CRM. Over time it becomes a real data hygiene problem.

Approach

Scored how confident we were in each match, so people could trust a bulk merge instead of reviewing every row by hand.

Outcome

Cut duplicate contact creation by 60% and data entry time by 20–30%. Shipped the MVP in about three weeks.

60% Less duplicate data created
20–30% Faster data entry, from catching duplicates before they happen
3wks From concept to shipped MVP

Problem

Support ticket tags

This started the way most data hygiene problems do — quietly, and then all at once. The obvious fix looked like automated matching, but merge the wrong two records and a title agent could lose information they need for a closing.

01

Merging safely — once two contacts are combined, there's no easy undo.

02

Getting people to trust a match a machine made, not one they made themselves.

03

AI accuracy across years of messy, inconsistent legacy data.

Research

Sitting down with our PM and engineers to understand what was actually technically possible, it became clear fast that "automated" and "trusted" are two very different things when the thing being merged is someone's contact record.

So we watched admins do it the manual way — comparing duplicate contacts side by side, deciding what to keep. We wanted to know what data actually mattered to them, and whether staring at two full records, field by field, was helping them or just wearing them down. It was clearly the latter: reviewing every field side by side felt like an audit, not a decision. That shaped the three calls below.

Decision 01

Show only what's different

Full side-by-side review wore admins down fast. Hiding identical fields and surfacing just the differences cut the noise without cutting the substance.

Decision 02

Prioritize the fields admins actually check

Not every field carried the same weight in a merge decision. We used what admins actually looked at to decide what earns a spot in the compact view.

Decision 03

Make every merge reversible

Merges can be undone and reverted, one at a time or in bulk, with a log of what changed — so a wrong high-confidence match is never a dead end.

Design

Merge review

The answer we landed on was a match score. High-confidence matches merge in one click, no review needed. Lower-confidence matches surface for a person to actually look at.

Even for the ones that needed review, we didn't want to hand someone two full contact records and make them play spot-the-difference. Most fields matched anyway — so only the fields that actually differed show up on screen. It turned out people wanted to see less, not more: reviewing a duplicate shouldn't feel like an audit.

We also added the option to opt into auto-merging going forward, once someone trusted the system enough. And because even a high-confidence match can be wrong, every merge is logged and reversible — undo a single merge, or roll back a whole batch, no support ticket required.

Outcome

That first stretch takes a bit more attention while the data gets cleaned up — but the whole point was for it to get quieter over time, not busier. Once live, duplicate contact creation dropped by 60%, and data entry got 20–30% faster since agents could see a likely match before creating a new record.

The match score turned out to be the right lever: most duplicates cleared the high-confidence bar and merged with a single click, so manual review only ever showed up for the genuinely ambiguous cases.

What we learned

The biggest lesson wasn't really about the AI — it was about how much say to leave people in decisions being made on their behalf. We kept stripping away friction — fewer clicks, less to review — and had to be careful not to strip away someone's sense that they were still in control along with it. The match score, plus the option to opt into auto-merge later, ended up being the balance: earn trust on the easy, obvious cases first, and let people extend that trust once they'd seen it hold up.

Want to discuss this project?

Get in touch