How to import contacts without making a mess

Most CRM mess traces back to one import: no duplicate matching, careless field mapping, or skipping a test batch. All three are avoidable with a few minutes of setup before the real import runs.

An admin approves every new account by hand. Nothing is created until then. We reply by email; no newsletter, no sequence.

app.salescrew.io/inbox
The unified reply inbox with classified threads

The short answer

  • Importing a list without matching it against existing CRM records first creates a fresh duplicate for every contact already present under a slightly different email or name. This one mistake accounts for a large share of the CRM cleanup work teams later need.
  • Field mapping should be deliberate, not automatic. Mapping a spreadsheet column to the nearest-sounding CRM field without checking what that field represents fills it with data that does not match its intended use elsewhere in the system.
  • A small test import of 20 to 50 records, checked against expectations before running the full list, catches mapping and duplicate-matching problems while they are still cheap to fix.
  • Decide in advance what happens when an imported record conflicts with an existing one. Which value wins, or does it merge? That avoids ad hoc decisions made mid-import that are hard to reconstruct later.

Why one bad import creates months of cleanup work

A contact import looks like a simple operation. Take a spreadsheet, load it into the CRM. What decides whether it goes well is a handful of decisions made before the import runs, not during it. The two that matter most are duplicate matching (does the import check whether a contact already exists before creating a new record) and field mapping (does each source column land in the CRM field it is meant to represent).

Skipping duplicate matching is the single most common source of CRM mess. A list of 2,000 contacts imported without checking against existing records can produce hundreds of duplicates if there is any overlap with contacts already in the system. That then requires a separate, more painful cleanup project to untangle. Matching on email at minimum, and ideally a secondary signal like name plus company, before creating a new record avoids most of this at the source.

Field mapping errors are less dramatic but compound quietly. A source column labeled "Title" might map automatically to a CRM field meant for something narrower, like job title specifically rather than a general description. The mismatch is not obvious until someone tries to filter or report on that field later and finds it full of inconsistent data.

A clean-import checklist

StepWhy it matters
Match against existing contacts by email (and ideally name + company)Prevents creating duplicates for people already in the CRM
Map each source field deliberately, not automaticallyAvoids populating a field with data it was not designed to hold
Decide the conflict rule in advance (existing value wins, new value wins, or merge)Prevents ad hoc decisions made mid-import that are hard to trace later
Run a test import of 20-50 records firstCatches mapping and matching problems before they scale to the full list
Check suppression before the imported contacts enter any cadenceAvoids emailing someone who had already opted out under a different list

What to actually do for a large or messy source list

If the source list is itself messy, inconsistent name formatting, mixed-case emails, missing fields, cleaning it in the spreadsheet before import is usually faster than cleaning it inside the CRM afterward. In the CRM, each fix is a separate manual edit rather than a bulk operation on a spreadsheet column. Standardizing email casing and trimming whitespace are small steps that stop otherwise-identical contacts being treated as different by an exact-match dedupe check.

Disclosure: SalesCrew is our product. Its import wizard matches against existing contacts before creating new records and lets a person map each field explicitly rather than guessing automatically. Suppression is checked before an imported contact enters any cadence. It does not clean a messy source spreadsheet before import. That step happens in the source file first.

A large import is hard to fully undo

Once thousands of records are imported and merged into existing ones, reversing the import cleanly is rarely possible. A test batch and a deliberate field mapping cost a few extra minutes. An import mistake at full scale can cost days of manual cleanup.

Questions

What is the most common mistake when importing a contact list?
Importing without matching against existing records first. That creates a fresh duplicate for every contact who was already in the CRM under a slightly different email or name. This single mistake is behind a large share of CRM cleanup projects.
Should every field in a source spreadsheet be mapped into the CRM?
Only fields that mean something in the CRM's schema. Mapping a source column to the nearest-sounding CRM field without checking what it represents fills fields with data that does not match their intended use. That creates confusion later.
Is a test import worth the extra time?
Almost always. Importing 20-50 records first and checking the result against expectations catches field mapping errors and duplicate-matching problems before they happen at the scale of the full list, where they are much more expensive to undo.