Merge Two Contact Lists Into One
Paste two lists together and you get a second header row, the same people twice, and records that disagree. This example works through a fictional merge and keeps every disagreement visible.
What Usually Goes Wrong
• The second list's header row sitting in the middle of the file
• The same person in both lists, identical
• The same person in both lists, with one list missing the phone number
• The same person with two different companies
• Different capitalization between the two sources
The Sample File, Before
10 rows of fictional data with the problems above. Every person and company is invented.
Open This File in the Workspace Download the CSV
| Name | Phone | Company | |
|---|---|---|---|
| Amara Nwachukwu | amara@nwachukwu-example.com | +14045550121 | Nwachukwu Example Co |
| Björn Sandvik | bjorn@sandvik-example.no | +4722555012 | Sandvik Example AS |
| Clara Whitcombe | clara@whitcombe-example.co.uk | Whitcombe Example Ltd | |
| Diego Fuentes | diego@fuentes-example.es | +34915550124 | Fuentes Example SL |
| Name | Phone | Company | |
| Amara Nwachukwu | amara@nwachukwu-example.com | +14045550121 | Nwachukwu Example Co |
| clara whitcombe | Clara@Whitcombe-Example.co.uk | +442079460125 | Whitcombe Example Ltd |
| Diego Fuentes | diego@fuentes-example.es | +34915550124 | Fuentes Holding Example SA |
| Esme Laurent | esme@laurent-example.fr | +33155550126 | Laurent Example SARL |
| Björn Sandvik | BJORN@sandvik-example.no |
How to Clean It
1. Paste the second list under the first in one sheet, with the same column order, and save as CSV. Keep both originals.
2. Run the combined file with duplicates, lowercase emails, Merge duplicate emails and name capitalization.
3. Read the review list for pairs that disagree.
4. Decide each pair in the workspace's Review step: keep one row, or keep both.
5. Export the cleaned file and the change log, and keep the log with the originals.
Prefer the command line or an AI agent? The same result comes from smartdata-clean clean merged-lists.csv --dedupe-rows --lower-emails --merge-duplicate-emails --names. See tools for agents.
The Result
10 rows in, 4 removed, 6 out. The stray header and the identical repeat are removed. Björn's second row is dropped because it only had an email, which the first row already has. Clara's first row is dropped in favour of the more complete one with her phone number. Diego stays twice: the two lists name different companies, and only you know which is right.
| Name | Phone | Company | |
|---|---|---|---|
| Amara Nwachukwu | amara@nwachukwu-example.com | +14045550121 | Nwachukwu Example Co |
| Björn Sandvik | bjorn@sandvik-example.no | +4722555012 | Sandvik Example AS |
| Diego Fuentes | diego@fuentes-example.es | +34915550124 | Fuentes Example SL |
| Clara Whitcombe | clara@whitcombe-example.co.uk | +442079460125 | Whitcombe Example Ltd |
| Diego Fuentes | diego@fuentes-example.es | +34915550124 | Fuentes Holding Example SA |
| Esme Laurent | esme@laurent-example.fr | +33155550126 | Laurent Example SARL |
What the tool left for you
The tool listed these 2 items for a person to check:
• Row 9 shares an email with row 5 but has different Company. Both rows were kept. Decide which is right.
• Name capitalization was applied to "Name". If that column holds company names or acronyms, check the changes in the log.
Checked, not just claimed
The original file, the cleaned file and the change log were run through the separate verifier. Result: PASS.
✓ Removed rows with a valid, verified reason: 4 of 4
✓ Rows: 10 in, 4 removed with a logged reason, 6 out
✓ Cells compared: 24; changed: 2; every change matched to the log: yes
✓ Log entries: 7; not matching the files: 0
The verifier confirms that the change log explains every difference between the two files. It does not judge whether each cleaning choice suits your situation; that part is yours.
The cleaning report
Where a Tool Stops and a Person Starts
When lists have different columns, different ID schemes or thousands of conflicts, the merge needs rules agreed with you first and a review pass afterwards. That is the Complex Cleanup service.
See Service Levels From $19 How We Check Our Work
The tool never copies a value from one row into another. It removes a row only when everything in it is already in the row that stays.