Clean the list before it lands on the new platform

You have signed for Klaviyo, or Braze, or whatever the new stack is, and the old platform has given you a CSV of 180,000 contacts. The temptation is to import everything and sort it out later. Later is the problem.

A new account has no sending history. Your first campaign is the whole evidence base the new platform and the receiving mailbox providers have about you, and a file carrying four years of accumulated dead addresses turns that first campaign into the worst possible introduction.

The order the work happens in

  1. Export before you cancel anything

    Pull the suppression list and the bounce history out of the old platform as well as the contacts. Those two files are the record of who already failed, and they are usually the first thing lost in a migration.

  2. Merge the suppressions in first

    Anyone who unsubscribed, complained or hard bounced on the old platform must arrive on the new one already suppressed. Losing that history is how a migration produces complaints from people who opted out two years ago.

  3. Verify what is left, not what you exported

    Running the whole export wastes credits on addresses you already know are dead. Suppress first, deduplicate, then check the remainder.

  4. Import in segments, engaged first

    Load the people who opened something in the last ninety days and send to them first. A strong opening signal on a new account buys tolerance for everything that follows.

  5. Hold the rest back two weeks

    The dormant half of the list can wait until the account has a delivery record. There is no deadline forcing you to introduce your worst data on day one.

What each result means here

The same four results and their flags, read against this job. A catch-all worth keeping in one situation is one to exclude in another.

ResultWhat to do with it
ValidImport, and put it in the first segment if it has engaged recently.
InvalidDo not import. Keep it in a file of what you removed, because a migration audit trail is worth having.
Catch-allImport but hold it out of the first three sends. The new account has no reputation to spend on a maybe.
UnknownSame treatment as catch-all. It is a non-answer from the receiving server rather than a fault in the address.
Role flagImport only where the role address is genuinely your contact, which at small firms it often is.
Disposable flagDrop it. A throwaway address that was signed up years ago is not coming back.

How you know it is finished

The new platform holds the suppression history, the engaged segment has been imported and mailed once, and the dormant remainder is sitting in a file with a date on it rather than in the sending list.

What this does not fix

A 180,000-address migration after suppression and deduplication is usually well under the raw export. At $139 for 100,000 credits the cleaning cost of a typical migration is smaller than one month of the platform you're moving to, and unknown results are not billed.

Questions people ask

Should I verify before or after importing to the new platform?

Before. An import writes the bad addresses into the new system, and several platforms count them against your account from that moment. You will also find a CSV far easier to fix than a live database.

Does the new platform not clean the list for me?

It removes addresses after they bounce, which means it learns by damaging your new account's reputation. That's the cost you avoid by checking first.

What about the suppression list from the old platform?

Export it and import it first, before any contacts. It is the record of who opted out and who already failed, and re-mailing those people is the most avoidable mistake in a migration.

Try it on the file in front of you

100 free checks a month, no card. Addresses we could not get an answer on come back labeled as unknown, and those are not billed.