How to merge a customer book without losing data.
Merge a customer book in slices, match by rules you can check, keep households together, and prove the result by comparing business keys before and after. The goal is one record per client, with evidence that nothing changed that was not meant to.
The steps
- Take an inventory: each system, export, and feed the business runs on.
- Score the data first: what is missing, duplicated, or in conflict.
- Write match rules a person can read, and fix conflicts by rule.
- Keep households together, not only individuals.
- Run the merge on a copy, and compare before and after by business keys, not random ids.
- Explain any difference, or do not ship it.
Three mistakes that cost the most
- One lookup per row. It makes a large import take minutes, and it can freeze the app while it runs. Load what you match against once, and look up in memory.
- Trusting deltas that cannot report removals. If an export only shows active records, a cancellation shows up only as a missing row. Use the full file, with a guard if too many records vanish at once.
- Testing on a small sample. Time the run at the real size of the book before anyone relies on it.
After the merge
A clean book drifts. A daily check that lists gaps and conflicts beside the fix keeps it clean. BigStarfish sells this as Glide Data: the Clean Merge, the Scorecard, and a daily data pull.
Common questions
- How do you merge duplicate customers from multiple systems?
- Score the data, write readable match rules, merge on a copy, keep households together, then compare before and after by business keys.
- How do you prove a data migration changed nothing by accident?
- Fingerprint the old and new books by business keys and compare them. The hashes match, or each difference is intended and explained.
- Should I use delta files or full exports?
- Use full exports when the source cannot report what left. A delta from an active-only export does not show a cancellation.
By William Jesse Boone, AI systems architect and founder of BigStarfish, in Missoula, Montana.