A CRM import can multiply a small spreadsheet mistake across sales assignments, automations, reports, and marketing audiences. The safest import begins with preservation. Keep the source unchanged, identify every record, and create an explicit mapping from source values to destination fields before uploading anything.
Back up the source file
Save a read-only copy with a date, source system, exporter, and purpose. Calculate a checksum if the process is sensitive or repeated. Work from a duplicate in a restricted folder. A backup is useful only if the team can identify it and knows who may restore it.
Record the number of rows, columns, blank email values, and obvious duplicate keys. These baseline counts make post-import reconciliation possible.
Preserve contact IDs
Export the stable identifier from the source system, not just names and addresses. If the destination assigns its own ID, store the source ID in a dedicated field or import ledger. This lets the team trace a result, reverse a batch, and distinguish updates from new contacts.
Never use an email address as the only durable identity. Addresses change and may be shared, reused, or duplicated across legitimate records.
Normalise email fields
Trim outer whitespace, remove non-printing characters, and make sure one cell represents one address. Do not split or invent values automatically without review. Preserve the original column beside a cleaned working column so every transformation is visible.
Case normalisation can aid matching, but the original local part should remain available. Avoid silently fixing domain typos. A plausible correction may belong to someone else.
Find duplicates carefully
Identify exact duplicates, normalised duplicates, and records that share an address but have different IDs. Each group needs a rule. Two records may represent a duplicate import, two contacts sharing a family inbox, or separate business entities using a central billing address.
Choose the surviving record by authoritative ownership, activity, consent, and field completeness. Do not merge suppression or objection history away.
Verify the email column
Send only the minimum necessary data to a verification service, typically a temporary row ID and the working email value. Record the result, reason, provider, and check time in new columns. Keep invalid, risky, and unknown rows in the reconciliation file even if they will not enter an active audience.
A positive result does not prove consent or ownership. A timeout does not prove invalidity. Map each category to a documented import action.
Preserve consent
Consent fields need their original source, wording or notice version, timestamp, and scope. Do not convert a blank into opted in. Do not treat a verified address as permission. If the destination cannot represent the same detail, stop and decide how the evidence will remain accessible.
Different platforms use different subscription models. Test how global, channel, and audience-level preferences map before the main import.
Preserve suppression records
Bring across hard-bounce, unsubscribe, complaint, and do-not-contact states before activating any automation. A record that is excluded from marketing may still need to exist for service or audit purposes. Keep eligibility separate from technical address status.
Compare the import file against the destination's existing suppression data as well. Otherwise, an old excluded address can re-enter through a new source ID.
Map status fields
| Source evidence | Destination field | Default action |
|---|---|---|
| Clear usable result | Verification status and checked time | Import subject to consent |
| Invalid result | Data-quality status | Import as excluded or hold outside active use |
| Catch-all or risky | Review reason | Route by business context |
| Unknown or temporary | Retry state | Do not convert to invalid |
| Unsubscribed or complained | Suppression state | Always preserve exclusion |
Document destination pick-list values exactly. Free-text labels lead to variants that break filters and reporting.
Handle catch-all results
A catch-all response does not establish whether the named mailbox exists. Keep the record separate from clearly invalid addresses. For an existing customer or known vendor, relationship evidence may justify import. For an unconfirmed prospect, a manual-review or lower-priority queue may be more appropriate.
Do not repeatedly verify the same catch-all row expecting certainty. Use a retry cap and record the final policy decision.
Avoid duplicate contacts
Understand the destination's matching key and update mode. HubSpot, Salesforce, and Mailchimp are named in this checklist because teams commonly move data among them, not because their import behaviour is identical. Review the current documentation for the exact account configuration and object type.
Disable nonessential automations during a controlled import when possible. A duplicate created for seconds can still trigger a message, task, webhook, or attribution change.
Test a sample import
Build a representative sample containing blanks, duplicates, international characters, suppressed contacts, risky results, existing IDs, and new records. Import into a sandbox or isolated audience. Check field mappings, ownership, timestamps, automations, and rollback steps.
A sample of only clean rows proves very little. Include the cases that could cause harm.
Post-import checks
- Compare created, updated, skipped, and failed counts with the source ledger.
- Inspect a sample from every result category.
- Confirm suppression and consent states before enabling sends.
- Check that no unexpected workflows, notifications, or assignments fired.
- Store the import report and delete temporary verification exports on schedule.
- Assign unresolved rows to an owner with a deadline.
Mailthentic describes a CRM-oriented verification workflow. Whichever service and destination are used, the durable controls are source preservation, explicit mappings, a representative test, and row-count reconciliation.
Secure the working files
Import projects often create more copies than the production CRM: analyst downloads, verification uploads, corrected exports, rejected-row files, and emailed reports. List every copy, restrict it to the project team, and set a deletion date before work begins. Do not use personal cloud storage or email attachments as an informal transfer mechanism.
When the import is approved, keep the minimal ledger needed to explain it and remove temporary datasets. The final record should identify the source, transformation version, operator, approval, counts, and unresolved exceptions without preserving unnecessary duplicate contact data.
Ask a second reviewer to compare that ledger with the destination before the batch is declared complete.
Plan rollback before upload
Identify which destination records will be created, updated, or merged. Export the current values for every field the import can change, keyed by destination ID. Confirm whether the platform can reverse an import and whether that reversal also undoes automation side effects. Often it cannot.
Set a short observation window during which the team avoids unrelated bulk edits. If counts or mappings fail, stop automations, preserve the import report, and restore only the fields changed by the batch. A rollback that overwrites newer customer changes can cause more damage than the original import.
Account for platform differences
HubSpot may represent marketing eligibility differently from a Salesforce contact or a Mailchimp audience member. Custom fields, duplicate rules, required objects, and subscription categories also vary by account configuration. Use current vendor documentation and a sandbox rather than a generic spreadsheet template.
Map one concept at a time: identity, ownership, lifecycle stage, technical result, consent, and suppression. When a destination lacks an equivalent field, document the loss and keep the authoritative evidence elsewhere. Do not squeeze several meanings into one free-text status simply to finish the import.
Control what happens after import
List every workflow that can react to a created or updated contact, including welcome messages, lead assignments, webhooks, scoring, ad audiences, and data enrichment. Pause what is safe to pause, then re-enable in a defined order after reconciliation.
Watch error logs and queue depth as well as the CRM screen. A visually correct record can still have emitted an incorrect event to another system. Document downstream counts and resolve duplicates before declaring success.
Comments (0)
No comments yet. Be the first to share your thoughts!
Leave a Comment
Your email address will not be published. Required fields are marked *