Move from Klaviyo
Export your Klaviyo profiles and suppressions, bring your templates across, and rebuild your flows, including what to do about ecommerce triggers like Started Checkout.
On this page›
This page takes you from Klaviyo to a working IGSendMail account. Profiles and suppressions take about 20 minutes. Templates and flows take longer, and flows need the most planning, because Klaviyo's best ones run on store events.
Stuck on a step?
Reply to the email this guide came in, or write to us from the contact page. We answer migration questions by email, usually within a working day.
Do it in this order
Set up your sending domain first, because DNS changes can take a few hours. Keep Klaviyo running until your first IGSendMail campaign has gone out, and don't delete flows or forms in Klaviyo until you've written them down: deleted ones can't be recovered.
What comes across, and what doesn't#
| From Klaviyo | How it moves | Time |
|---|---|---|
| Profiles, with email, name and custom properties | Export a segment to CSV, import it into a list | Minutes |
| Suppressed profiles (bounces, manual suppressions) | Export CSV, import into your Blacklist | Minutes |
| Unsubscribed profiles | Export with consent status, import into your Blacklist | Minutes |
| Templates | Export the template's code, paste into a new template | A few minutes each |
| Flows | Can't be exported; rebuild each one | 20 to 60 minutes each |
| Events (orders, viewed products), list membership, message history | Not transferable | Export flow and campaign analytics you want to keep |
| SMS | IGSendMail is email only | Keep SMS where it is, or move it to an SMS provider |
Step 1: Set up your sending domain#
Go to Sending domains, add the domain you send from, and publish the DNS records it shows you. Authenticate your domain walks through each record.
Klaviyo will have had you add records of its own: either NS records or CNAMEs for a branded sending subdomain (often send.), a km1._domainkey DKIM record, and a klaviyo-site-verification TXT record. Leave them in place until Klaviyo has sent its last email, then remove them.
Step 2: Export your profiles#
Klaviyo exports lists and segments, not the whole account at once. The simplest way to get everyone is one segment that contains all your email subscribers.
Build a segment of everyone you email
In Klaviyo, go to Audience > Lists & segments and create a segment of profiles who can receive email marketing. If you only want certain lists, export those lists instead.
Export it
Open the segment, choose Manage segment, then Export segment to CSV. Choose the properties to include: at least email, first name and last name, plus any custom properties you use for personalization or segments. Include the email consent column too; you'll use it in step 4. You need an Owner, Admin or Analyst role to export.
Download the file
The file downloads in your browser. If you lose it, exports from the last 30 days are under Settings > Other > Downloads.
Step 3: Import your contacts#
Create the list and its fields
Go to Lists and create a list. Add a field under ListsFields for each custom property you exported. List membership doesn't come across from Klaviyo, so if you want to keep the difference between lists, add a text field for it and fill it in your spreadsheet before you import.
Import only the people who can receive email
Open the export in a spreadsheet and filter out anyone whose email consent isn't subscribed. Save those rows for step 4. Then import the rest into the list and map each column to its field. Import contacts covers the mapping screen and the import summary.
Plan size
The Free plan holds 2,500 contacts. Every paid plan has unlimited contacts, so if your list is bigger than that, choose a paid plan before you import.
Step 4: Bring your suppressions and unsubscribes across#
Klaviyo keeps these in two places, so there are two files.
- Suppressed profiles. Go to Audience > Profiles > Suppressed profiles and choose Export CSV. This covers hard bounces, repeated soft bounces and manual suppressions.
- Unsubscribes. Klaviyo doesn't list unsubscribed people as suppressed; they show an unsubscribed consent status instead. Use the rows you set aside in step 3.
Go to Blacklist and import both. The Blacklist import reads the email address from the first column, so move the email column to the front of each file first if it isn't there already.
Don't skip this. Emailing someone who unsubscribed from you on Klaviyo earns spam complaints and may break the law. Blacklisted addresses are never emailed, from any list. Blacklist and suppression explains how it works.
Step 5: Move your templates#
In Klaviyo, go to Content > Templates, open the options menu on a template and choose Export Template. Klaviyo shows the template's code. Copy it, then in IGSendMail create a new template, choose your own HTML, and paste it in.
To keep a design that only exists inside a campaign or flow email, save that email as a template in Klaviyo first, then export it.
Then replace Klaviyo's merge tags. {{ first_name|default:'there' }} and {{ person.first_name }} won't work here; insert tags with the editor's personalization control and set a fallback, as described in Personalization tags. Remove Klaviyo's footer and check yours has an unsubscribe link and your postal address.
Step 6: Rebuild your flows#
Klaviyo flows can only be copied to another Klaviyo account, so each one is rebuilt by hand. Before you start, open each flow and write down its trigger, each email and the delay before it, and any trigger or profile filters. Copy each email's content. Flows > Options > Export analytics saves each flow's numbers if you want them for comparison later.
Then rebuild under Automations. How depends on the trigger:
- Added to a list or a date property (welcome series, birthdays): these have direct equivalents. See Triggers and timing and the worked Welcome series.
- Started Checkout (abandoned cart): on WooCommerce, connect your store and use the built-in abandoned cart trigger. On Shopify or a custom store, your store starts the automation through the API or by adding a tag. Abandoned cart recovery covers both.
- Placed Order or Viewed Product (post-purchase, browse abandonment): use the same approach, with your store sending the event through the API or a tag. If that's more work than the flow earns, keep a simpler version: a post-purchase series triggered by a "customer" tag.
Switch each automation on here only when you switch the Klaviyo flow off, so nobody gets the same email twice.
Step 7: Before your first send#
- Verify the list. Old lists always contain dead addresses. Run email verification before your first campaign.
- Start with your most engaged people. Your domain is new to our servers, so send to recent openers first and build up over a week or two. Warm up a new domain has a schedule.
- Replace your signup forms with an IGSendMail form, and turn off Klaviyo's forms, or new subscribers will keep landing in Klaviyo.
- Then close Klaviyo down properly: cancel scheduled campaigns, turn off flows, remove the Klaviyo tracking snippet from your site, disconnect your store integration, and remove Klaviyo's DNS records.
Last updated September 25, 2026