Bad data going in means bad data coming out. It doesn’t matter how good your new CRM is if the contacts you import are duplicated, missing key fields, or full of outdated information. Data cleaning is the least glamorous part of a CRM migration, but it’s the part that determines whether the migration actually improves your situation.
This guide covers the data cleaning steps you should run through before migrating to any new CRM, including what to look for, how to fix it, and how to know when your data is clean enough to import.
Why Data Cleaning Matters More Than the Import
A CRM migration has two phases: getting the data out and getting it in. Most people focus on the import step. The export and cleaning phase is where migrations actually succeed or fail.
Free CRM Implementation Checklist
70% of CRM implementations fail. Don't be one of them. Get our 40+ point checklist covering all 5 implementation phases.
Get the Free ChecklistIf you import duplicates, you’ll spend hours manually merging records after the fact. If you import stale contacts, you’ll be filtering around dead data forever. If you import inconsistent field values, your segmentation and reporting will be wrong from day one.
Spending a few hours cleaning your data before import saves days of cleanup after.
Step 1: Assess What You Have
Open your export file and get a clear picture of the data before touching anything:
- How many total records are in the export?
- What percentage of records have an email address?
- What percentage have a phone number?
- What percentage have a company name?
- How many have blank or near-blank records (just a name, nothing else)?
This audit shapes what you do next. If 40 percent of your records are missing email addresses, that’s a problem to solve, not paper over.
Step 2: Remove Dead Records
Before anything else, remove records that shouldn’t come with you:
- Test contacts and placeholder records (names like “Test User” or “AAAA”)
- Hard bounced email addresses, if your current CRM tracks those
- Contacts who unsubscribed or requested deletion (if you’re in a GDPR or similar jurisdiction, these shouldn’t be migrated at all)
- Contacts you haven’t interacted with in years and have no intention of reaching out to
- Duplicate email addresses, keeping only the most complete record
This step alone often cuts 10 to 20 percent of a contact list. That’s not a loss, that’s cleanup.
Step 3: Deduplicate by Email
Email address is the primary identifier for a contact in most CRMs. Duplicates on email create duplicate records in your new CRM, which then need to be manually merged later.
In Google Sheets
To highlight duplicates:
- Select your email column
- Format > Conditional Formatting > Custom formula
- Enter:
=COUNTIF($A:$A,A1)>1 - This highlights every email that appears more than once
For each highlighted group, review the records and keep the most complete one. Then delete the duplicates.
In Excel
- Select the data range including the email column
- Data > Remove Duplicates
- Select only the email column as the duplicate identifier
- Review what Excel finds before confirming the removal
Step 4: Standardize Field Values
Inconsistent field values are a common problem in CRM data. The same value entered 20 different ways over three years. Common examples:
Status or Stage Fields
Sort your status column and look at all the unique values. You might find: “Lead”, “lead”, “LEAD”, “New Lead”, “Prospect”, “prospect”, “Prospecting”. Decide which values you’re keeping in your new CRM and use find-and-replace to standardize your existing data before import.
Country Names
Pick a format (full names or ISO codes) and apply it consistently. “United Kingdom”, “UK”, “U.K.”, “GB”, and “England” should all become the same value.
Phone Numbers
Phone number formatting is usually inconsistent in any dataset older than a year. Use find-and-replace to remove characters like dashes, parentheses, and dots, then decide whether to use country codes or national format. Apply the same format throughout.
Company Names
Watch for the same company entered multiple ways: “ACME Corp”, “Acme Corp.”, “ACME”, “Acme Corporation”. These won’t automatically merge in your new CRM. Standardize before you import if company matching matters to you.
Step 5: Fill In Missing Required Fields
Most CRMs require at minimum an email address or a name. Go through records that are missing these and decide what to do with each:
- If you can find the missing information, add it
- If you can’t find it and the contact is important, note it for manual follow-up after migration
- If the contact is not important, delete the record
Don’t import blank records. They clutter your CRM with contacts you can’t actually use.
Step 6: Review Custom Field Data
If you have custom fields in your current CRM, check the quality of data in those fields specifically. Custom fields are often the least consistently filled in because they were added later or were optional.
For each custom field, ask:
- What percentage of records have a value for this field?
- Are the values consistent?
- Is this field still relevant in your new CRM?
Custom fields with very low fill rates or stale data may not be worth migrating. Be selective.
Step 7: Check for Character Encoding Issues
Names with accented or non-Latin characters can get corrupted during export and re-import if encoding is handled incorrectly. Look through your data for names that contain garbled characters, such as a box symbol or question mark where an accented letter should be.
If you find encoding issues, try re-exporting from your source CRM with UTF-8 encoding explicitly selected. The WordPress CRM CSV import guide covers how to ensure correct encoding when saving your file.
How Clean Is Clean Enough?
You won’t achieve 100 percent clean data. That’s not the goal. The goal is to remove the issues that will actively cause problems in your new CRM:
- No duplicate email addresses
- No test or placeholder records
- Consistent values in fields you use for segmentation or filtering
- No obviously wrong or corrupted data
A contact with a missing phone number is fine. A contact with two conflicting email addresses, or a status value that doesn’t match any valid option, is a problem.
Document What You Changed
Keep a log of the cleaning decisions you made. This is useful if someone asks why a particular contact isn’t in the new CRM, or why a field value looks different from what they remember.
A simple note in a text file covering what you removed, what you standardized, and why is enough.
After Cleaning
Once your data is clean, it’s ready to import. For the full import process, see the guide on WordPress CRM CSV import. For the complete migration framework, the pillar guide on migrating to a WordPress CRM covers the full process from export to post-migration verification.
If you’re planning a migration to SkunkCRM, the plugin includes import tools designed to work with standard CSV exports from major CRM platforms. Learn more at skunkcrm.com.