Article content and detailed guides remain in English. The selected language applies to controls and quick instructions.

Back to articles

Data Quality Best Practices for Email List Migrations Between ESPs, CRMs and Marketing Platforms: Pre-Migration Audit, Cleaning, Mapping and Post-Migration Validation

On this page

Why Migrations Damage Email Lists

Migrating email lists between platforms (ESP to ESP, CRM to CRM, or ESP to CRM) is one of the highest-risk moments for data quality. Common problems:

Problem What happens Impact
Field mapping errors Data from one field ends up in the wrong field (first name in last name, company in city) Broken personalisation; incorrect segmentation; unusable records
Suppression list gaps Hard bounces, unsubscribes, spam complaints from the old platform are not transferred Sending to previously bounced or unsubscribed addresses; compliance violations; deliverability damage
Duplicate creation Same contact imported multiple times due to format differences (JOHN@example.com vs john@example.com) Duplicate communications; inflated contact counts; wasted marketing spend
Consent record loss Opt-in dates, consent sources and consent types not transferred Inability to prove consent under GDPR/CCPA; compliance risk
Engagement history loss Open/click/conversion history not migrated Loss of segmentation by engagement; inability to identify inactive subscribers; re-engagement campaigns hit engaged subscribers
Custom field data loss Custom fields in old platform have no equivalent in new platform Loss of segmentation criteria; incomplete contact profiles
Date/time format errors Date formats differ between platforms (MM/DD/YYYY vs DD/MM/YYYY vs ISO 8601) Incorrect dates; broken automations triggered by date fields
Character encoding issues Special characters (accents, non-Latin characters) corrupted during export/import Broken names; incorrect personalisation; unprofessional appearance

Pre-Migration Audit

Step 1: Inventory your data

What to document Where to find it Why it matters
Total contact count (all lists, all statuses) Old platform dashboard or export Baseline for post-migration validation
Contact count by status (active, unsubscribed, bounced, cleaned, pending) Old platform contact management Each status must be handled differently during migration
Suppression lists (hard bounces, unsubscribes, spam complaints) Old platform suppression/blocklist section Must be transferred to prevent compliance violations
Custom fields (names, types, values) Old platform contact field settings Must be mapped to new platform fields or created as custom fields
Lists and segments (names, criteria, member counts) Old platform list management Must be recreated in new platform; counts used for validation
Engagement data (last open, last click, total opens, engagement score) Old platform analytics or contact export Determines whether engagement history can be migrated
Consent records (opt-in date, source, type, IP address) Old platform consent log or contact export Required for GDPR/CCPA compliance; must be preserved
Tags and categories Old platform tagging system Must be mapped to new platform's tagging/categorisation
Automations triggered by contact data Old platform automation builder Must be recreated or adapted in new platform

Step 2: Clean before you migrate

Cleaning data before migration is less work than cleaning it after. Migration is the best opportunity to eliminate bad data because you are already touching every record.

Cleaning task How to do it Why now
Remove hard bounces from active lists Export hard bounce list; confirm these are excluded from active contact export Importing known bad addresses into new platform damages sender reputation immediately
Verify unsubscribe status is current Cross-reference unsubscribe list against active contacts; remove any active contacts that appear on unsubscribe list CAN-SPAM, GDPR and CASL require honouring unsubscribes; any gap creates compliance risk
Standardise email format Lowercase all emails; trim whitespace; remove any with invalid format Prevents duplicates caused by capitalisation differences; removes obviously invalid addresses
Deduplicate Identify and merge duplicate contacts before export Migrating duplicates means paying for duplicate contacts in new platform and sending duplicate messages
Remove role-based addresses from marketing lists Identify and tag info@, sales@, support@, admin@, webmaster@ addresses Role-based addresses have higher complaint rates and should not receive marketing email
Standardise name fields Fix capitalisation (all caps, all lowercase); separate combined name fields; remove titles from name fields Clean names prevent embarrassing personalisation errors
Validate date formats Ensure all date fields use consistent format Prevents date interpretation errors during import
Handle empty/null fields Decide on convention: empty string, null, "N/A," or do not import Consistent handling prevents segmentation errors

Field Mapping

Common mapping challenges

Challenge Example Solution
Combined vs. separate name fields Old: "Full Name" field. New: separate "First Name" and "Last Name" fields Split before import: use text-to-columns on space, or formula to extract first word and remaining words
Different field names for same data Old: "Organization." New: "Company Name" Create mapping document; map by data content, not field name
Field type mismatch Old: "Opt-in" is text ("Yes"/"No"). New: "Opt-in" is boolean (true/false) Convert values before import; document the conversion
Multi-value fields Old: "Interests" is comma-separated text. New: "Interests" is multi-select Parse comma-separated values into individual selections
Custom fields with no equivalent Old platform has custom scoring field. New platform has no equivalent Create custom field in new platform before import; or store in notes/tags
Address format differences Old: single "Address" field. New: separate Street, City, State, ZIP fields Parse address components before import

Mapping document template

Old platform field Old field type New platform field New field type Transformation needed Notes
Email Email Email Email Lowercase, trim Primary key for dedup
Full Name Text First Name + Last Name Text + Text Split on first space Hyphenated last names: split on first space only
Company Text Company Name Text None Direct mapping
Tags Comma-separated text Tags Multi-select Parse into individual tags Max tag length in new platform: check
Created Date MM/DD/YYYY Date Added ISO 8601 Convert format Time zone: assume source platform's default
Opt-in Yes/No text Marketing Consent Boolean Yes=true; No=false; blank=false Document consent handling for audit

Suppression List Transfer

List type What it contains How to transfer Critical notes
Hard bounces Email addresses that permanently failed delivery Export from old platform; import as suppression/blocklist in new platform Never import these as active contacts; doing so damages deliverability
Unsubscribes Contacts who opted out of marketing email Export with unsubscribe date and source; import as unsubscribed status in new platform Legal requirement under CAN-SPAM, GDPR, CASL, CCPA
Spam complaints Contacts who marked your email as spam Export from old platform; add to suppression list in new platform Re-emailing spam complainants causes immediate deliverability damage
Manual removals Contacts you manually removed (threats, abuse, competitors, etc.) Export with removal reason; import as suppressed in new platform Keep removal reason for audit trail
Compliance suppressions Contacts suppressed for legal/regulatory reasons Export with compliance notes; import as permanently suppressed Never re-enable without legal review

Post-Migration Validation

Validation check How to verify Expected result
Total contact count Compare old platform total to new platform total (by status) Active + suppressed counts should match; small variance acceptable for dedup
Suppression list count Compare old platform suppression count to new platform Must match exactly; any gap means suppressed contacts may receive email
Sample record check Pull 20-50 random records from new platform; compare every field to old platform All fields should match; any mismatch indicates mapping error
Personalisation test Send test email using personalisation tokens (first name, company, etc.) to internal addresses All tokens should populate correctly; no broken or misplaced data
Segment recreation Recreate 5-10 key segments in new platform; compare member counts to old platform Counts should be within 5% of old platform (exact match unlikely due to dedup)
Unsubscribe test Search for known unsubscribed contacts in new platform; verify status All should show as unsubscribed; any showing as active is a compliance violation
Date field check Filter by date fields (opt-in date, last purchase, etc.); verify dates are correct No dates should be in the future or unreasonably old (indicates format swap)
Character encoding check Search for contacts with non-Latin characters in name fields Names should display correctly; corrupted characters indicate encoding issue

Using Email Extractor in Migration Workflows

During migration, you may need to consolidate email lists from multiple sources before importing to the new platform. Common scenarios:

Scenario What to do
Migrating from multiple old platforms simultaneously Export from each old platform (CSV, XLSX). Upload all exports to Email Extractor to extract and deduplicate emails across all sources before importing to the new platform
Old platform exports in different formats If some exports are CSV, some XLSX, some PDF reports and some HTML, upload all to Email Extractor to extract emails regardless of format
Reconciling suppression lists across platforms Upload suppression list exports from all platforms to Email Extractor to create one deduplicated master suppression list
Cleaning legacy data from non-standard sources Old contact data in text files, email threads (EML/MSG), documents (DOCX) or other non-spreadsheet formats. Upload to Email Extractor to extract all email addresses
Post-migration deduplication check Export from new platform after import. Upload to Email Extractor to identify any duplicates that survived the import process

For structured list-to-list migration where you need to preserve name, company, consent and engagement fields alongside the email, work with CSV exports and spreadsheet tools (VLOOKUP, Power Query) for field mapping and transformation. Use Email Extractor for the email extraction and deduplication layer, especially when consolidating data from mixed-format sources.

Extract emails

Explore tools

Verify emails

Check address validity before using your list.

ZeroBounce

Email Verification

Verifies email lists and provides tools for monitoring deliverability.

Useful when list cleaning and sender health belong in one workflow.

Explore ZeroBounce (opens in a new tab)