Campaign CRM Data Migration: A Practical Checklist

By Pulsar Campaigns Team. Published .

A contact import can finish successfully and still leave your team with the wrong data. A shared email address might collapse two people into one record. An empty column might erase an existing value. An unsubscribe might arrive as a note that the sending tool never checks.

For campaign and nonprofit operations teams, the useful question is whether staff can trust the new system on the first working day. Use this checklist before moving contact, volunteer, event or fundraising records. It is an operational framework, not a description of any one CRM's import features or jurisdiction-specific legal advice.

1. Define what is moving and who owns the decision

Name a migration owner and a reviewer. Agree which system remains authoritative until the move is approved.

Inventory each record type, its source, its owner and the relationships it needs. An event registration should still connect to the correct event and person. A contribution record should retain its identifier, date, currency and connection to the appropriate contact.

Do not move sensitive information merely because it exists in a spreadsheet. Separate necessary operational data from obsolete exports and unnecessary free-text notes. Identify retention requirements and unresolved ownership questions before uploading anything.

Write down a cutover time and a process for changes made after the initial export. Otherwise, a clean import may already be out of date.

2. Make recovery possible before making changes

Keep an untouched source export and a separate working copy. If importing into an existing CRM, preserve the destination's relevant records and configuration before the import, too.

Record export times, row counts, file versions and the person responsible. Store copies in approved, access-controlled storage. A contact CSV does not necessarily capture attachments, relationships, permissions or automation settings; check what your recovery plan actually covers.

Test the recovery method in a safe environment. NIST's storage guidance emphasizes both backup integrity and the ability to restore, rather than treating the existence of a backup as sufficient.

Sources: NIST SP 800-209: security guidelines for storage infrastructure

3. Write the field map before opening the importer

For every source column, specify its destination field, data type, allowed values, transformation and treatment of blanks. Review automatic mappings rather than assuming similar labels mean the same thing.

These are conceptual fields, not promised fields in a particular product. Confirm your destination supports them. For every blank, decide whether it means unknown, leave unchanged or clear the existing value, then test that behavior.

A simple mapping example. These are conceptual fields, not promised product fields.
Source fieldIntended destinationRule to verify
Legacy contact IDExternal referencePreserve exactly, including leading zeros
Mobile phonePhone numberPreserve country code; do not guess missing digits
Email opt-outEmail suppressionMap to an enforced sending restriction
Registration dateRegistration timestampPreserve date and time-zone meaning
Organization IDOrganization relationshipMatch against the correct organization record

4. Clean duplicates without merging different people

Decide how records will be matched before choosing create, update or a combined import mode. Preserve source identifiers and maintain a source-to-destination ID crosswalk.

HubSpot's documentation illustrates why this matters. Unique identifiers help distinguish records, update existing data and preserve associations. Its matching rules are product-specific, so confirm the equivalent rules in your destination.

Remove accidental whitespace and standardize formats in the working copy. Send ambiguous matches for review. Shared household inboxes, recycled phone numbers and matching names do not prove that two records describe one person.

Document merge decisions and which source supplied each retained value. Keep conflicting communication preferences out of automatic newest-record-wins logic.

Sources: HubSpot: understand the import tool

5. Preserve permissions and suppression as separate data

An email address is not evidence of permission to send. Preserve available consent evidence, including its source, date, channel and stated scope. Keep email, SMS and other communication preferences distinct.

Export unsubscribes, suppression records and relevant delivery restrictions deliberately. Do not assume a normal contact export contains all of them. For example, HubSpot provides a dedicated opt-out import that makes addresses ineligible for specified email sends; it is different from an ordinary contact import.

Where records conflict, hold the affected channel from sending until reviewed. Treat missing consent evidence as unresolved, not as a new opt-in. Confirm applicable law and provider rules with your organization's responsible adviser.

Keep outbound automations paused until restrictions are loaded and tested. A suppression recorded only in a note cannot be assumed to block a message.

Sources: HubSpot: import an opt-out list

6. Give the migration team only the access it needs

Assign individual accounts and the permissions needed for each task. Someone checking field mappings may not need permission to export the entire database or send messages.

This applies NIST's least-privilege principle. Grant access appropriate to the work, rather than broad access by default. Review temporary permissions after cutover.

Avoid passing exports through personal inboxes or broadly shared folders. Include temporary files in the cleanup plan, subject to your retention requirements.

Sources: NIST SP 800-12 Rev. 1: information security guidance

7. Run a small, deliberately difficult trial

Choose a sample that includes ordinary records and known edge cases: missing emails, shared addresses, accented names, leading-zero IDs, multiple event registrations and communication restrictions.

Salesforce recommends testing a small CSV before using its Data Import Wizard. Its nonprofit import training also demonstrates a dry run for examining matching results. Use a sandbox or validation-only mode when your tool supports one; otherwise agree a controlled test and recovery method.

Inspect the records themselves, not just the success screen. Check updates, relationships, restrictions and error reports before increasing the batch size.

Sources: Salesforce: Data Import Wizard guidance; Salesforce: nonprofit import dry-run example

8. Reconcile, approve and keep a rollback route

Set acceptance criteria before the full import. At minimum, verify the checks below.

For example, if a 100-row trial produces 82 new records, 12 updates and six rejected rows, all 100 rows are accounted for. It still fails review if the 12 updates changed the wrong people or a suppressed address became sendable.

Define stop conditions such as unexpected overwrites, broken relationships or suppression failures. Keep an import log and a tested rollback procedure. Removing newly created records alone will not reverse updates to existing records, and no database rollback can recall messages already sent.

Have the reviewer approve the result before enabling normal workflows. Retain the old system or an appropriate recovery path until acceptance and retention decisions are complete.

  • Every input row has an explained outcome: created, updated, rejected or intentionally excluded.
  • Record counts reconcile after documented duplicates and exclusions.
  • Relationships connect to the intended records.
  • Financial totals, where in scope, reconcile by currency and relevant period.
  • Communication restrictions remain effective.
  • Ordinary staff can complete essential tasks with their assigned permissions.

Your final go-live check

Do you have an approved field map, preserved restrictions, reconciled results, limited access and a recovery route that someone has actually tested? If one is missing, resolve it before the next batch.

Sources and review

Sources checked . Product documentation can change. Check your destination's current guidance before importing.