ESP Migration Guide for eCommerce Shops + Free Checklist

ESP migration

Email service providers (ESPs) are essential for brands looking to invest in email marketing.

As your brand grows, you may find yourself outgrowing the capabilities of your current ESP. Choosing and subsequently migrating to a different ESP can be pretty tedious and carry some risks. However, if done correctly, it can set your brand up for more advanced email marketing tactics down the line and more robust growth.

Since there’s been a lot of buzz lately going around the Mailchimp & Shopify breakup, and lots of talk about ESP migrations, I created a post that outlines a general plan of attack with any ESP migration.

esp migration

While I pull examples from different ESPs such as Klaviyo, the general framework should hold for all ESPs, even if the specific functionalities vary from platform to platform.

There are several categories of factors to consider when embarking upon migration, and I’ll be addressing each one of these core areas:

• Subscriber Data Migration
• Deliverability and List Health
• Integrations, Configurations, and Customizations
• Email Content Transition
I also include an ESP Migration Checklist to help you cover all relevant points.

Let’s begin.

1. Subscriber Data Migration

Moving your email subscribers list over to the new ESP is one of your first orders of business. You’ll also want to migrate over all of the subscriber/customer profile data as well. The exact methodologies will depend on your ESP’s functionalities, but regardless, you’ll want these core elements to be pulled across:

• Subscriber profile data such as email address, first/last names, time of subscription, location, and custom fields
• Subscriber order data
• Subscriber event data
• Subscribers’ opt-in/opt-out statuses, i.e. suppression lists

Automatic Syncing

Many ESPs have an automatic integration available to sync subscribers from your old ESP. If this is available, you certainly want to make use of it.

Automatic syncing is a quick and easy way to get the bulk of your subscriber data over to the new ESP. However, be wary of how much data actually passes through. It’s likely that you’ll have to do additional manual imports to get all of the requisite data over.

For example, the Klaviyo sync with MailChimp pulls in subscriber First/Last names, email addresses, member rating, opt-in status, subscription timestamps, opens, and clicks. But it doesn’t automatically pull in custom fields and variables. Thus, in that case, you’ll need to subsequently do a manual sync to map all the additional fields.

Moreover, to get the subscriber order and event data into your new ESP, you’ll want to activate the other relevant integrations, particularly with your shopping cart platform.

Manual Syncing

Most ESPs allow you to manually import and update subscriber data via CSV or other file uploads. This is a great tool in your arsenal during data migration.

When uploading the data, be sure to understand the structure of your data and how your new ESP receives it.

Two things to watch out for are:

• Data Types
• Default vs. Custom Fields

Data Types

ESPs store various data into different data types, such as text/string, number, boolean, date, and lists. Depending on which data type each of your data variables gets mapped to, you may have restrictions on the logic set you’ll have access to when segmenting. It’s important as you sync your data that you pay attention to the data type.

Two examples to quickly highlight this point:

1. Let’s take for example a variable for Age. If you mapped Age to simply Text/String type data, you would only be able to access logic that looks at Text/String:

Now, if you are really going to segment using Age, it’d be much more useful to reference Number type logic, such as:

One caveat here is that some ESPs have the ability to recognize and transform the value into different data types, so they may be able to detect that you wanted to use a Number type, despite uploading it as a Text/String type.

2. Sometimes you’ll have data that varies in length for each subscriber profile. A most common example would be the number of items per order − one subscriber may have ordered 5 items in their order, while another may have only ordered 2 items.

One way to structure the data would be using separate variables for each discrete item, such as:

Item 1
Item 2
I
tem 3
Item 4
Item 5

However, this becomes unwieldy because a) you won’t be able to predict the maximum # of items ordered and b) when utilizing this variable inside emails dynamically, it’s difficult to show exactly what they ordered as there will be many blank variables.

Instead, the better structure here would be a List/Array data type. In this case, your first subscriber with 5 items would have something like this:

Subscriber 1: [Item_1, Item_2, Item_3, Item_4, Item_5]
Subscriber 2: [Item_1, Item_2]

You can also easily loop through the array when pulling the variables inside an email.

Which would result in something like this product table:

Default vs. Custom Fields

Another distinction to pay attention to is default vs. custom fields/variables. Often times, ESPs have their own set of default variable fields that you can map data to. These default fields sometimes have special properties, and may be indicated with a special notation such as a preceding “$” sign. For example, the $value default field in Klaviyo indicates a monetary value associated with orders that get mapped to a subscriber and aggregated to report on CLV, revenue per recipient, monthly order value, and such.

Normally, if your data fits neatly into one of these default values, I’d recommend mapping that variable directly to the default variable of the new ESP.

Custom fields, on the other hand, is entirely defined by you as a user. You can map all sorts of data to them, and name them accordingly (do remember the data type discussion above). One mistake I do see is that people fail to clean up and merge their data fields sufficiently before mapping. This could result in your data being split across redundant variables such as this example:

(Global) Suppression Lists

Another important subscriber list area to pay attention to is making sure your global suppression list is synced up corrected to your new ESP. In essence, your global suppression list consists of all subscribers who have opted out of your marketing emails for various reasons, such as unsubscribe, spam complained, or hard bounced. Keeping your suppression list updated will ensure you don’t accidentally send marketing emails to these contacts who are not eligible.

If your new ESP isn’t automatically pulling this in through the automatic sync, you’ll want to download the suppression list from your old ESP and subsequently upload it into the suppression list section of your new ESP.

Backing Up Data

Before you shut down your old ESP, make sure to back up as much data as possible:

• Download your subscriber lists with all profile properties checked
• Pull all the past email creative into a folder
• Export all metrics reports, preferably the CSVs of the raw data by email message
• Screenshot important segmentation criteria
• Keep a record of A/B testing numbers and results

Worst case is that you’ll never use these again, but more likely you’ll want to reference some of them in the future.

2. Deliverability and List Health

Moving ESPs will almost certainly cause fluctuations in your email deliverability. That said, if you are careful with implementing best practices, you can come out of the migration unscathed (or better yet, in better shape).

There are a host of deliverability house-keeping items you’ll definitely want to be aware of during a migration.

Pick Your Timing

If possible, I recommend avoiding certain times of the year when planning an ESP migration. Particularly, the Q4 holiday season is a poor time to migrate. The inbox becomes very competitive during this time of year, and the inbox providers become more strict than usual with allowing incoming mail to be delivered. Introducing a wild card of an ESP migration isn’t usually a good idea, as it makes it harder for you to get ramped up and establish a solid sender reputation now than at other lower-volume times of the year.

Also, if you have certain big seasonal sales you normally run, try to avoid migrating immediately before those as well.

There’s a warmup period during the initial phases of migration that require a more restricted volume of email sends, and that could have a tangible negative impact on short term sales promotions.

Configure Your Sending Infrastructure

The step of configuring your new sending infrastructure can be easily missed in the midst of the chaos of the migration. Yet, it’s an important step to implement in order to get your sender reputation off to a good start. Depending on if you are using a dedicated or shared IP address, the steps vary, but the most basic ones would include updating your SPF and DKIM records.

These are basically TXT records you add to your DNS in order for inbox providers to better identify your legitimate marketing emails are coming from you.

Some ESPs such as Klaviyo combine the authentication process through using CNAMEs to simultaneously white-label your domain, and offer additional customizations such as URL shortening and dedicated link tracking.

Regardless of your ESP, the important thing to note is that you will have to do some updates and configuration in order to get your new sending infrastructure set up correctly. Your ESP’s account manager and documentation should be very helpful in regards to the exact steps.

List Warm-Up and Cleaning

In order to ramp up your email list correctly on your new ESP, it’s best to institute a structured list onboarding process

The reason you’d want to onboard in a disciplined manner instead of all at once, is because the inbox providers are generally more suspicious of emails sent from new infrastructure. It can be indicative of phishing, spoofing, and spam attempts.

As such, you’ll want to properly warm up the list so as to start off on the right foot deliverability-wise on your new ESP.

Also, an ESP migration is a great time to do some list cleaning in order to prune off dormant deadweight from your list.

3. Integrations, Configurations, and Customizations

Now that you have your shiny new ESP, you’ll need to make updates to the account settings, as well as integrations and templates. While some of the default settings can work well, chances are you’ll need to update at least some of them to meet your brand’s specific needs.

Global Frequency Caps

For those of you who are unfamiliar with the term, global frequency caps basically refers to a hard limit on the number of marketing emails a single subscriber can receive within a certain period of time. The purpose is to have a filter in place so that no single subscriber gets bombarded with too many emails, regardless of how many automated and/or campaign emails he or she might trigger in rapid succession.

Most ESPs have some sort of global frequency cap, though they may not allow you to configure it or override it selectively. 

You should take a look at the options available and configure it according to what works best for your email marketing program. For example, Klaviyo (they call it “Smart Sending”) has a default setting of one email every 16 hours, which might be too conservative depending on your campaign cadence, resend frequency, and robustness of automated emails.

You may also want to selectively override the caps for certain automation. I normally override this for the Welcome email that delivers an incentive upon subscriber signup, as well as the first checkout abandonment email.

Attribution Setup

Chances are your new ESP will have its own mechanism for tracking revenue attribution. This can be a very useful feature for reporting and analysis, as well as triggering automated emails based on purchases from email.

That said, it’s not a bad idea to a) run Google Analytics (or other web analytics platforms) concurrently with the native ESP attribution and b) configure the attribution window to align with your own parameters.

Normally, ESPs will have a feature to allow you to append UTM parameters to all links within outgoing emails. This is superbly useful, as you don’t want to spend tedious hours tagging each link with these. Sometimes you can also configure the tracking parameters’ structure:
As for the attribution window, the default settings can often time be changed as well:

Organizational Settings

A simple point of configuration that might be easy to miss is your organizational settings. This is where you can usually configure your Company, Name, Address, Phone, Default From Address and Name, etc.

It’s a good idea to properly set these up since many templates would pull these values dynamically into the footer and other areas of your emails:

One mistake I see people making is having their personal info in the organizational settings, which incidentally pulls in that info into the marketing emails.

Opt-In & Opt-Out Settings

Configuring your opt-in and opt-out settings and pages are important to ensure a great user experience as well as to grow and retain your subscriber list.

Global Unsubscribes

For ESPs that have a List-level organizational structure, there may be an option to configure how unsubscribes to any particular list or email get treated, whether as a global unsubscribe or a local unsubscribe.

I normally like to set it by default to a global unsubscribe, but if you are maintaining specific lists for preferences, you could also go the other way… though I prefer using custom fields and variables to keep track of preferences instead of lists.

Custom Preferences & Unsubscribe Pages

The default pages for unsubscribing and email preferences for most ESPs are pretty sparse and basic. Case in point:
If you want to apply any customizations to it, you’ll need to configure it yourself either using the default drag & drop editor or through editing the HTML source code.

Aside from branding/design changes, I recommend two other starting customizations:

1. Adding frequency preferences to your unsubscribe page to try and “save” a portion of potential unsubscribers.

2. Pull in only relevant preferences on the email preferences pages so that the form is not too overwhelming.

Single Opt-In Lists

By default, many ESPs pass new subscribers through a double opt-in process, i.e. they have to further confirm via a link in their email before getting onto the list. While this is not always a bad idea, and indeed is required in certain jurisdictions, you may not want to have double opt-in by default and instead go for single opt-in.

In that case, you’ll want to configure your list settings accordingly. You may even need to email your ESP’s support directly to have them turn on the single opt-in functionality if it doesn’t exist already in your account.

Note that most of the time, manual CSV uploads will be single opt-in regardless of the settings of the particular list.

Email Signup Forms

Most sites have some sort of email signup forms onsite. Common suspects are:

• Footer forms
• Blog page signups
• Popups/flyout forms

You’ll need to make sure all of these forms are now passing subscribers directly into your new ESP. For embedded forms on the site, such as a footer signup form, you can usually either a) swap out the code with the default embed code provided by your new ESP or b) change the hard-coded version’s action URL and list ID values to pass now to the new ESP’s URL & list:

Additionally, sometimes these footer forms pass directly into your shopping cart’s newsletter list, which can get automatically synced with your new ESP via a direct integration.

For the popup and flyout forms, if you use a third party software to power those, you can usually just swap out the integration directly inside that software. For example, inside Justuno, on the last setup page of each campaign, you can choose where to pass the subscribers to:

You’ll still want to make sure all incoming subscribers are directed to the correct lists inside your new ESP though.

Shopping Cart Integration

In addition to other apps, you may decide to integrate with (loyalty apps, product review requests, recurring billing, shipping management, etc), the most important core integration for your new ESP will be with your shopping cart platform.

Enabling and configuring this integration is going to be key to power your email efforts moving forward given how much order-event data gets pulled through. Your ESP should have extensive documentation on the specifics on how to integrate with your shopping cart.

Here are a few random pointers to take into account though:

• You may still need to add some additional tracking scripts to your site outside of the core integration in order to fully tap into all of the functionality. Klaviyo, for example, often times requires you add Web Tracking, Product Tracking, and Add to Cart tracking scripts onto your site in order to use those events.
• If you are pulling in Amazon order automatically, make sure to configure your automated email segments and campaign email segments to exclude these contacts. You don’t want to land in hot water with Amazon for inadvertently sending marketing emails to these customers.
• Your new ESP may have a dynamic coupon generation option. This will usually involve an additional layer of setup during the integration process.
• Make sure to monitor the sync between your ESP and shopping cart, both at the beginning and ongoing. If the sync goes down without you knowing, it can have some significant effects on your email channel revenue.
• Spend some time configuring and checking your (dynamic) product catalog feed. This can be utilized at times to generate dynamic product recommendations inside your emails.

4. Email Content Transition

Email Content Updates

The first step in transitioning your existing automated emails and getting your new campaign emails into your new ESP is creating an updated email template. Whether you are using drag & drop or a custom HTML-coded template, you’ll need to create a new version inside your new ESP.

At the very least, you’ll need to incorporate the dynamic variables of your new ESP utilizing their new syntax.
For example, Mailchimp’s *|ARCHIVE|* becomes {% web_view %} in Klaviyo, and *|UNSUB|* becomes {% unsubscribe %}.

Automated Email Transition

Per my note about deliverability and onboarding in the section above, it’s usually a good idea to get your automated marketing emails transitioned to your new ESP first before transitioning campaign emails (which you’ll need to warm up).

The general process we like to follow for moving the automated emails is:

• Create the mirrored version of the existing live email sequence in the new ESP.
• Run quality assurance and testing on the new sequence to check for outdated links, images, copy, coupon codes, etc.
• Make sure all triggering mechanisms in the new ESP for that particular sequence will work as intended. For example, if it’s a welcome series, you’ll need to first make sure your signup forms are passing the subscribers into the new ESP and into the correct list, the automation trigger is configured based on the addition to that list, and any coupon codes work as intended.
• Check that no subscribers will unintentionally get the sequence once it is turned on. For example, if you haven’t synced up all of your subscribers yet, and you turn on a sequence based on the addition to a list… and then add a manual batch of subscribers on that list, they’ll get sent that email sequence.
• Turn off the existing automated email sequence in your old ESP.
• Turn on the existing automated email sequence in your new ESP.
• Back-populate contacts if applicable.
• Monitor for any abnormalities after launch.

Click to enlarge image

A note about turning on/off automated sequences: if you have multiple emails within a sequence, oftentimes you’ll have contacts who are making their way through it still at the point you want to make the swap. In this case, one option you have is to implement a date filter at the initial trigger point of the old automation and keep both the new and old ones running simultaneously for a while, until which point the contacts in the existing automation all finish it. Then you can turn off the old automated sequence.

For example, for a welcome series it might look like this:

You can utilize this tactic in combination with back-population (if your ESP has it) to minimize the number of contacts who would otherwise have missed the emails in the automated sequences.

Transactional Emails

Generally speaking, we recommend keeping your transactional (like order/shipping confirmations) emails inside your native cart or app. If you do so, you can still do some customizations for branded design, as well as add some UTM tracking parameters to get more visibility into conversions.

Otherwise, if you do decide to move some transactional emails onto you new ESP, you’ll need to make sure it’s supported. Also, keep in mind that by default subscribers on your suppression list won’t get these emails − you’ll usually need to have your ESP turn on a special “transactional” designation for each individual email message so that those messages will override the suppression.

If you don’t do this, a handful of your customers who may have unsubscribed in the past to your marketing emails will end up not getting future transactional emails from you.

Campaign Email Transition

The best approach to transition your campaign emails is to follow some sort of onboarding plan to the new ESP. 
It’s also best to stop sending from your old ESP entirely once you begin the campaign email transition process, because generally speaking, inbox providers don’t like seeing marketing emails from your brand coming from too many different sources and it can have adverse effects on your short-term deliverability.

esp migration

I hope you found this helpful. I’m also including a checklist of the key steps of the ESP migration process. 
Good luck with your present or future ESP migration. If you need professional help with it, email us or book a call


Xiaohui “X” Wang is Founder and CEO of Essence of Email. He is a veteran of the email marketing industry, having led the strategic and tactic efforts for over 250+ eCommerce clients ranging from small mom & pops to IR500 retailers. He is super passionate about all things email and constantly keeps abreast of the cutting edge of email technology.