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.
All contacts
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.
Scored how confident we were in each match, so people could trust a bulk merge instead of reviewing every row by hand.
Cut duplicate contact creation by 60% and data entry time by 20–30%. Shipped the MVP in about three weeks.
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.
Merging safely — once two contacts are combined, there's no easy undo.
Getting people to trust a match a machine made, not one they made themselves.
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.
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.
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.
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.