Migration · Checklist

How to Migrate Email Platforms Without Emailing Unsubscribed Contacts

A suppression-safe migration checklist for exporting every contact state, resolving conflicts conservatively, proving eligibility, and preventing old opt-outs from re-entering campaigns.

Updated 2026-08-15 | 8 min read | Reviewed against linked primary sources
Direct answer

Export sendable and blocked contact states from the old platform, import the related files together, normalize and deduplicate by email, let the strongest suppression state win, retain the source evidence, and run a dry-run eligibility review before any live campaign is scheduled.

What you will be able to do

  • Treat unsubscribe, complaint, bounce, cleaned, blocklisted, and non-subscribed records as migration data, not disposable rows.
  • Resolve duplicate status conflicts conservatively before profile fields or list membership are merged.
  • Require a verifiable later permission event before a blocked address can become sendable again.
  • Prove the final audience, unsubscribe path, reply handling, and sender authentication with a staged cutover.

The most dangerous migration failure is not a missing custom field. It is an old opt-out becoming eligible because the new platform received only an active CRM export. Operators repeatedly ask whether re-imports will preserve unsubscribe state, and community reports show why status mapping causes anxiety during platform changes.

A safe move treats suppression history as part of identity. The goal is not to copy every historical record into a new tool; it is to carry enough evidence forward that a fresh list, integration, or profile update cannot silently erase a recipient's prior decision.

Inventory every contact state before exporting

List the states that can prevent marketing email in the source system. Depending on the provider, these may appear as unsubscribed, non-subscribed, cleaned, bounced, complained, blocklisted, unconfirmed, opted out of all email, or opted out of a specific subscription type.

Export both the campaign-ready audience and every blocked state. Keep the full account archive separately when the provider offers one. A sendable-only export is not a complete migration because it cannot protect against an address reappearing in a later CRM, billing, form, or integration sync.

  • Subscribed or active contacts with permission evidence
  • Unsubscribed and globally opted-out contacts
  • Non-subscribed or unconfirmed contacts
  • Hard-bounced, cleaned, complained, rejected, or blocklisted contacts
  • Subscription type, source, timestamp, and list context when available

Normalize identity before comparing status

Trim whitespace and compare email addresses case-insensitively before looking at profile differences. One person can appear across several files with different names, companies, tags, or lifecycle fields. Those profile conflicts are secondary to the marketing state attached to the normalized address.

Keep a trace of every source row used in the decision. The import review should show which files were recognized, which addresses duplicated, which statuses conflicted, and which final state was selected. That record lets an operator explain why a contact is blocked without reopening the old platform.

Make the strongest blocked state win

Do not use last-upload-wins logic. If an address is subscribed in one file and unsubscribed or complained in another, the blocked state should win until a reviewer verifies a legitimate later permission event. A current profile value or recent purchase is not automatically consent for promotional email.

Document the precedence used by the migration. A conservative default places complaint and unsubscribe ahead of permanent bounce or cleaned, then non-subscribed or unconfirmed, and finally subscribed. The exact labels vary by source platform; the governing principle is that ordinary profile updates cannot weaken suppression.

Conflict review
ava@example.com | subscribed.csv | subscribed
ava@example.com | unsubscribed.csv | unsubscribed
ava@example.com | crm-export.csv | active customer

Final marketing state: unsubscribed
Reason: blocked state overrides list membership and profile activity

Retain a minimal suppression record

Deleting the address can delete the fact that it must not be mailed. Retain the normalized identifier, blocked state, source, observed timestamp, and any evidence required by your policy. Keep unrelated profile data out of the suppression record when it is no longer needed.

Delivery-provider suppression and workspace-level marketing suppression solve related but different problems. Provider suppression may stop a hard bounce or complaint at delivery time. Campaign eligibility should also exclude unsubscribe and permission states before a message is prepared or scheduled.

Require evidence for any later resubscription

A new CSV row, CRM update, or integration event should not automatically resubscribe a blocked address. Define the events your policy accepts as new permission, such as a completed signup form tied to the relevant subscription type with a timestamp and source.

Route ambiguous changes to review. Preserve the old blocked observation beside the newer permission evidence so the decision remains auditable. If the message purpose changed materially, confirm that the new permission actually covers it rather than assuming a prior customer relationship is enough.

Run a dry-run audience reconciliation

Before saving or sending, compare source totals with the proposed result: unique contacts, sendable, unsubscribed, non-subscribed, bounced or cleaned, complained, invalid, and conflicting. Sample addresses from every path, including contacts present in both active and blocked files.

Generate a downloadable review that records accepted and excluded rows without exposing unnecessary contact data. The campaign owner should approve the final eligible count and the reason each exclusion category exists before content is connected to the audience.

  1. Upload all related provider exports together.
  2. Review file recognition, duplicates, conflicts, and final statuses.
  3. Inspect representative sendable and blocked contacts.
  4. Confirm the campaign uses only the reconciled eligible audience.
  5. Save the migration review with the cutover record.

Prove the first send and the paths that stop sending

Use an internal seed, then a small engaged segment. Verify the sending domain, From address, links, reply routing, visible unsubscribe, one-click unsubscribe where required, bounce and complaint processing, and the immediate eligibility change after an opt-out.

Keep the old sender active only for the short proof window, and prevent overlapping campaigns from both platforms. After the new path is proven, stop old sends, retain the export archive, and monitor unexpected eligibility changes, complaints, and bounce patterns during the first production campaigns.

Frequently asked questions

Should I import unsubscribed contacts into the new platform?

Import enough information to preserve them as blocked suppression records, not as sendable campaign recipients. The new system needs to remember the address and status so a future file cannot accidentally make it eligible.

What if the same email is subscribed in one file and unsubscribed in another?

Apply a documented conservative precedence rule and keep the address unsubscribed until a reviewer verifies a legitimate later permission event. Do not let file order decide.

Can a new purchase or CRM update resubscribe someone?

Not by itself. Define which explicit permission events cover the message type, keep their source and timestamp, and review ambiguous cases before changing a blocked marketing state.

Put the guide into practice

Review every contact state before the cutover

Upload subscribed and blocked provider exports together, inspect the reconciliation report, preserve the safest state, and prove a small campaign before retiring the old sender.

Start a safe migration

Continue reading

Contact Data · Checklist

The Pre-Send CSV Checklist: Clean Your Email List Before a Campaign

Learn how to check consent, duplicates, invalid addresses, suppression history, and personalization coverage before importing an email campaign CSV.

7 min read
Personalization · Playbook

How to Send Personalized Emails From a CSV Without Writing Every Email

A practical workflow for turning spreadsheet contact data into relevant, recipient-specific emails while keeping your approved message under control.

7 min read
Deliverability · Checklist

Gmail Bulk Sender Requirements: A Practical Campaign Checklist

A practical guide to Gmail sender requirements covering SPF, DKIM, DMARC, one-click unsubscribe, spam rates, consent, and gradual sending volume.

6 min read

Use the guide for your current platform

See the exact exports, blocked states, native rebuilds, cost model, and cutover checks for the system you are leaving.

Switching platforms? Explore all migration guides