Export data from Klaviyo before the contract ends
Export your profiles, consent records, list and segment CSVs, templates and analytics before the contract ends, and archive your event and message history while the account is still active. Those records are not in the standard CSV files, so they are the ones most likely to be lost after cancellation. Start by writing down what is driving the move, whether a renewal, a price change, a data residency requirement or lock-in, because that answer sets your deadline. Before you plan any step, confirm current export formats, row and column limits, and which account roles can run each export in Klaviyo's own export help articles, since those details change.
Consent and suppression data need the most care, because the destination must honor them from the first send. Ask Klaviyo which profile fields hold email and SMS consent status, the consent timestamps, and the reasons a profile was suppressed, then check that your export includes each one. Export suppression and unsubscribe lists as their own files and keep them unchanged, so a bounce or complaint is never reimported as an active contact. Event history, such as placed orders, viewed products and email engagement, usually needs date-bounded exports into your own storage. Decide with your legal or compliance owner how long those archives must be kept and who may read them.
Run the exports in this order: archive events and messages, export profiles with consent, export lists, segments and templates, then reconcile record counts against the totals shown in Klaviyo. Keep the account active until you have verified that each archive opens and matches those counts, and confirm with Klaviyo whether your contract allows a reduced plan for that period. If a partner runs the archive, DeployOpen scopes that work in writing before it starts, and your internal team still owns the decisions about consent and retention.
Which data you can export from Klaviyo and in what format
This table lists each data type you may need to move, how Klaviyo exports it, the limits we could verify, and what to confirm before you cancel. Treat the Documented limits column as a starting point, since Klaviyo's documentation changes and limits can differ by export type.
| Data type | Export method and format | Documented limits | What to confirm |
|---|---|---|---|
| Profiles with consent and suppression status | CSV export of profiles, with consent and suppression fields included where Klaviyo provides them | Column and row limits apply to each export | Which consent fields, timestamps and suppression reasons appear in the file |
| List CSVs | CSV export of list members from the list view | Column limit per file; confirm the current figure for list exports | Maximum columns and rows, and whether custom properties are included |
| Segment CSVs | CSV export of segment members from the segment view | Column limit per file; confirm the current figure for segment exports | Maximum columns and rows, and whether the segment definition is exported |
| Email and SMS templates | Template content exported as HTML or as copied content, depending on the editor | Not confirmed in our review; check the template export options | Whether templates export as HTML, MJML or both, and whether images are hosted by Klaviyo |
| Analytics reports | Report data exported as CSV from the reporting screens | Date range and row limits vary by report; confirm per report | Which metrics and time ranges you can export, and how far back history goes |
| SMS numbers | Phone numbers come out with profile exports; opt-in records need separate checks | Porting rules depend on your carrier and Klaviyo's current process | Whether Klaviyo supports number porting, the lead time, and the carrier's requirements |
| Event and message history | Not included in list or segment CSVs; no standard full export identified in our review | Historical events and sent-message logs may not be retrievable | Ask Klaviyo in writing whether any export or API covers events and message history |
What stays behind when you leave Klaviyo and how to cover it
The standard CSV exports cover profiles, lists and segments, but not the behavioral and sending history that drives your flows and reporting. Plan for each gap before you cancel, because some of this history may not be recoverable once the account closes.
Placed-order and product-view events
Placed-order and viewed-product events are the records that tell you what a profile bought and browsed, and they are what segments and flow triggers depend on. Standard list and segment exports do not carry them. Ask Klaviyo support in writing which event types can be retrieved, for what date range and in what format, and whether the store's e-commerce platform still holds the same orders. Keep a copy of your order data from the store itself, since Mautic will need it as a separate integration.
Send, open and click logs
Per-message send, open and click records show who received each email or SMS and how they responded. They are not part of a profile export, and they matter for suppression decisions and for proving consent history. Before cancelling, archive campaign and flow reports from the Klaviyo interface while the account is still live, including the date ranges you need for audits. Store them as CSV or PDF in your own repository with a retention rule your legal team has approved.
Flow and campaign logic
Flow structure, branching conditions, delays and send-time settings exist only inside the Klaviyo account. Screenshots and exports do not reproduce them as working automation. Document each live flow step by step, including triggers, filters and exit conditions, and treat that document as the specification for rebuilding in Mautic campaigns. Note that Mautic runs segment and campaign updates through scheduled cron jobs, so timing behavior will differ and must be tested again.
Suppression and consent history
Unsubscribe, bounce and spam complaint records determine who you may legally email after migration. A profile export shows the current status, but not always when or why a status changed. Ask Klaviyo in writing for suppression history in a usable format, and import the suppression list before any other data so that no previously opted-out contact is re-enrolled. Keep the source records for your compliance file.
Message content and template history
Email and SMS templates are stored in Klaviyo, and earlier versions are not always kept in a form you can reuse. Export the HTML and text of every active template, and record which campaigns used each version. Templates kept in your own git repository make later changes reviewable and let you test them before sending, which is useful when rebuilding in a platform that does not share Klaviyo's editor.
Analytics and reporting baselines
Historical revenue attribution and engagement rates are often the basis for budget decisions, but they are calculated inside Klaviyo and will not match the numbers your new platform produces. Export the reports you rely on, record the attribution window and definitions used, and agree with finance how the old and new figures will be compared. Without that baseline, the first quarter on the new platform will be hard to judge.
How Klaviyo CSV files map onto Mautic contacts
Mautic imports contacts from CSV through its web interface and maps columns to fields automatically, which works for a small list. For a full Klaviyo profile export, plan to load the file in the background instead. Mautic's import documentation recommends the mautic:import console command run by cron for large files, and it processes rows in batches of 100 by default. Before you start, open the exported Klaviyo list and segment CSVs and check the header row. Klaviyo's column names rarely match Mautic field aliases, so write down which Klaviyo property becomes which Mautic field, and confirm that the consent and suppression data you need is in the file at all.
Create the destination fields before the import runs. Add custom fields in Mautic for any Klaviyo properties you intend to keep, such as store identifiers, loyalty tiers or purchase dates, and choose field types that match the data. Build consent and suppression fields as well, and decide how unsubscribed or bounced addresses will be recorded so that they stay suppressed after the move. Load a small test file first and confirm that opt-in status and suppression land where you expect. Only then run the full import, because a mapping mistake in consent data is harder to correct after thousands of contacts are in place.
The destination host sets the limits on the import. Mautic 7.0 requires PHP 8.2, 8.3, 8.4 or 8.5 and MySQL 5.7 or higher with InnoDB, or MariaDB 10.2 or higher. The project also states that Mautic should not run on shared hosting and recommends a VPS or dedicated server. Confirm these with your platform team before you choose a host. At go-live, check the Mautic releases page again, because support windows differ by version. For example, the 7.2 security window ends on 30 September 2026 and 7.3 is planned as the long-term support release, so pick the version you will run for the next few years deliberately.
Export data from Klaviyo in this order before cancelling
This sequence lets you move profiles, consent, lists, templates and reporting out of Klaviyo while the account is still readable. Each step ends with a check, so you can confirm what you have before the subscription ends.
Inventory the account and record baseline counts
The account owner lists profiles, lists, segments, flows, forms, templates, SMS numbers, sending domains and every connected store or data integration. Write down a count for each item, along with the total profile count and the number of email and SMS subscribers, and the date you recorded them. Note which integrations feed data into Klaviyo, because each one will need a replacement or a reconnection in the new system. The step is done when this inventory is saved outside Klaviyo and each count has a named owner.
Archive event and message history first
Event and message history is the data most likely to be lost, and the profile and list exports in later steps do not include it. Confirm with Klaviyo which history your plan lets you retrieve, and which export or API options your account includes. Save what you can retrieve to storage you control, and record the date range each file covers. Ask the vendor how long history remains accessible after cancellation. The step is done when the archive files open and a sample of records is readable.
Export profiles with consent and suppression status
Export profiles as CSV with email address, phone number, consent status, consent timestamps, and suppression or unsubscribe status. Consent records matter most: a contact without a documented opt-in should not be imported as subscribed. Include bounced and suppressed profiles so they remain suppressed in the new system. List and segment CSVs can carry up to 700 columns, so confirm that your custom properties fit within that limit. The step is done when the row count matches the inventory and a random sample of contacts matches their live records in Klaviyo.
Export lists and document segment logic
Export each list and segment as a CSV of its current members. A CSV carries membership, not the rules that built the segment, so write those rules down in plain language, including any property filters, date windows and exclusions. Compare the member count of each export with the count you recorded in the inventory. Differences often come from profiles that changed status during the export window, so note the export time. The step is done when every list and segment has a file, a member count and a written rule set.
Export templates and check hosted assets
Export the HTML for each email template and store the files in version control or another system you control. Templates often reference images and files hosted on Klaviyo's servers, so confirm with the vendor whether those assets remain available after cancellation, and copy them to your own storage where you can. Render a sample of templates to confirm the saved HTML displays as expected. The step is done when each template has a stored file, a list of external asset URLs, and a rendered preview that matches the original.
Export campaign and flow analytics for reference
Export campaign and flow reports as CSV for the date ranges you need for comparison, such as open, click, conversion and unsubscribe figures. Treat these files as a historical reference for the new platform rather than data you will import. Check that the totals in each export match the dashboard figures for the same date range. The step is done when the reporting files are stored with their date ranges and the totals have been checked against the dashboard.
Start SMS number porting early
If you send SMS from Klaviyo, start the number porting request well before you plan to cancel, and confirm the timing with your carrier and the new SMS provider. Ask whether the number can be ported to the new provider, what the carrier needs from you to approve it, and what happens to inbound messages during the transfer. Confirm that the SMS opt-in records you exported in step three will travel with the number. The step is done when the carrier has confirmed a porting date in writing.
Verify exports and cancel only after sign-off
Before cancelling, review the full checklist as a team. Confirm that the archives open, the profile and consent counts match the inventory, a sample of contacts matches live records, every list and segment has a file, templates render, reporting totals match, and the SMS port date is confirmed. Keep the Klaviyo account active until every item is signed off, and only then cancel. The step is done when the checklist carries a dated sign-off from the account owner and the person responsible for the new system.
How to verify that the export is complete
Do not cancel Klaviyo until you can show that the destination holds what the export contained. Start by reconciling record counts: compare the number of profiles in each exported list and segment file with the count of the same audience in Klaviyo at the moment of export, then compare the same figure in your new platform after import. Mismatches usually come from rows rejected for a missing or malformed email address, duplicate addresses that merged on import, or a file that was truncated during download. Record every difference and its explanation rather than forcing the totals to match. Because Klaviyo's CSV exports carry up to 700 columns, also check that the column headers in the file match what you expected, since a dropped column is easy to miss when the row count looks right.
Next, spot-check a small set of sample profiles by hand. Pick profiles across your key segments, including recent subscribers, long-standing customers, and anyone who unsubscribed, then compare name, custom properties, and consent status in both systems. Confirm that the consent field reflects the subscription state you saw in Klaviyo and that suppressed addresses stay suppressed after import: a bounced or unsubscribed address that reappears as subscribed is the most serious error in this step. Run seed-address test sends from the new platform to inbox addresses you control, covering each list you migrated, and confirm that suppressed seed addresses are blocked. Also keep a checksum, such as SHA-256, for each export file so you can prove later that a file was not altered.
Finally, treat the export files as personal data. Store them in an encrypted location with access limited to the named people running the migration, delete temporary copies once verification is signed off, and keep the checksums, reconciliation figures, sample-profile results, and seed-send logs in a dated record with the name of the reviewer. Confirm with your privacy or legal team how long this evidence should be retained, because the record is what you will show an auditor or a data subject request handler if questions come up after Klaviyo access ends.
Export paths differ by destination platform
Mautic is the main self-hosted replacement for Klaviyo's contact and list work, and its import path is the most straightforward of the three. You upload a CSV through the user interface, and Mautic maps columns to contact fields automatically, so you can review the mapping before the import runs. For large files, the Mautic documentation recommends a background import with the mautic:import console command run by cron, which processes rows in batches of 100 by default.
- UI import for small files: Upload the CSV in the contacts area and confirm the automatic column to field mapping before you start.
- Console import for large files: Schedule
mautic:importthrough cron so the job runs in the background instead of in the browser session. - Batch behavior: The default batch size is 100 rows, which you can use as a baseline when estimating how long a file will take on your server.
- Cron dependencies: Segment updates, campaign updates and campaign triggers also run on cron, so the import is only one of several scheduled jobs you must set up.
- Server sizing: Mautic should run on a VPS or dedicated server, not shared hosting, so plan the import window on that host.
Confirm the expected file size, the column names in your Klaviyo export and the mapping rules with your implementation partner before the first test import on Mautic's import documentation.
Dittofeed does not work like a contact import tool. It takes user data from Segment, from reverse ETL, or from its API, and it builds segments and journeys on top of that data. That means the Klaviyo export becomes a data feed you map into Dittofeed's user model, which is a larger job than a CSV upload, and it suits product and app teams with an existing event pipeline.
- Data routes: Choose between Segment, reverse ETL or the Dittofeed API as the way user data arrives.
- Sending providers: Dittofeed integrates with providers such as SendGrid or Amazon SES rather than sending email itself, so you need an account and sending domain with one of them.
- Pre-release status: Its recent GitHub releases are pre-release tags, with v0.24.0-alpha.21 published on October 4, 2026, so plan for changes between versions and test upgrades in a non-production environment.
- Version control: Email templates can be kept in git and checked in CI with its testing SDK, which fits teams that already manage code this way.
- Deployment: Docker Compose and Render deployments are documented, with Helm charts in the repository for Kubernetes.
Ask your implementation partner to confirm which pre-release tag they will pin, how they will track changes between tags, and how the data feed is mapped before you commit to this path on Dittofeed's GitHub repository.
listmonk is a newsletter and mailing list manager, so it fits the list and subscriber part of the Klaviyo export better than flows or journeys. It is licensed under AGPL-3.0 and ships as a single binary that uses a PostgreSQL database. Its suitability depends on whether your Klaviyo lists are mostly newsletter audiences or whether they drive automated store messages.
- License: AGPL-3.0 applies to modifications you run as a network service, so review obligations with your legal team if you plan to change the code.
- Architecture: A single binary with PostgreSQL keeps the stack small, and you should plan backups for the database.
- Scope: It manages lists, subscribers and campaigns, so automated flows and store event logic will need another tool or a rebuild.
- Import path: The import route for subscriber files must be confirmed against the project documentation for the version you deploy.
- Consent data: Check that opt-in status and list membership arrive in the file in a form listmonk can represent.
The team must confirm the import path, supported file layout and any field limits against the listmonk repository before exporting anything from Klaviyo.
What to settle before the Klaviyo renewal or termination date
Six decisions determine whether your data leaves Klaviyo cleanly. Most of them have deadlines that fall before cancellation takes effect, so settle them while the account is still fully active. Get each answer from Klaviyo in writing, not from a support chat.
Notice period and cancellation terms
Your contract sets how much notice Klaviyo needs before a renewal or cancellation takes effect, and whether unused profile tiers are refundable. Ask who on your side owns the notice, the exact date it must be sent, and whether the account stays readable after the cancellation date. Confirm these terms against your signed order form, not a pricing page, because they change the date you must work backward from.
Written data retention after termination
Ask Klaviyo in writing how long it keeps profiles, events, message history and SMS records after the account closes, and when those records are deleted. This matters for consent evidence and for any lookup you need after the switch. Your privacy lead should confirm the answer matches your retention policy and any deletion requests already in progress.
Export window while the account is active
Exports from Klaviyo are only possible while the account is open, so the export window closes at cancellation. List and segment CSVs can include up to 700 columns, but events and message history are not part of that export. Plan the full set of exports, including templates and analytics, and ask Klaviyo to confirm in writing that the account and its export tools stay available until your last export is complete.
SMS number porting lead time
If you send SMS through Klaviyo, the sending number may be tied to the Klaviyo account. Ask whether the number can be ported to another provider, what paperwork the carrier needs, and how long the porting process takes. Start this early, because a ported number cannot send from both systems at once and an unplanned gap can stop opt-in messages and compliance keywords like STOP from working.
Sending domain DNS and deliverability
Your sending domain's DNS records, including the authentication records for the Klaviyo sender, must be changed before Mautic or another sender takes over. Ask Klaviyo which DNS records it requires, whether the domain can be removed from the account, and whether any sending reputation or IP warm-up data can be exported. Your DNS owner should prepare the new records and check them before the first send.
Overlap period for both platforms
Running Klaviyo and the new platform side by side for a defined period lets you verify segments, flows and suppression lists before any live send depends on them. Agree the overlap length with your team and ask Klaviyo to keep sending rights active through that period. Suppression and unsubscribe lists must be synced both ways during the overlap so that no contact who opted out receives a message from the new platform.
Questions teams ask before leaving Klaviyo
How long does a Klaviyo data export take?
The duration depends on your account, and Klaviyo's materials do not give a figure that applies to every account, so confirm the expected timing with Klaviyo support before you plan the cutover. The main drivers are the number of profiles, the number of custom properties (list and segment CSVs are capped at 700 columns), the volume of SMS consent and suppression history, and whether integrations keep writing data while you export. Run one full test export of your largest list, time it, and multiply by the number of lists and segments you need. Then test the import into your destination, since Mautic's import speed depends on server resources and whether you run large files through the background import command.
Can our team export Klaviyo data without outside help?
Most teams can export lists, segments, templates and consent records themselves, but the work usually needs help in three places: mapping custom properties to destination fields, handling SMS consent and carrier records, and rebuilding flows that depended on Klaviyo-specific triggers. Start with the profile CSV and check that email addresses, consent status, timestamps and opt-in sources survive the export intact. Keep a written field map that your team signs off on. Templates and analytics can be exported, but you will rebuild most automations by hand. Mautic also depends on cron jobs for segment and campaign updates, so the engineer who sets up the destination should own that check. If nobody on your team has run a large database import before, bring in help for the first run.
What does outside help cost, and how is it quoted?
DeployOpen does not publish a price list. Each engagement is fixed in scope, and the quote follows from a written scope that lists deliverables, timelines and exclusions before work starts. The main cost drivers are the profile and segment volume, the number of custom fields, the amount of SMS consent handling, the destination build (hosting, database, mail transport, cron and queue workers), data mapping and validation, and cutover support. Costs that continue whatever the approach include your Klaviyo subscription until you cancel, the hosting and database for the new platform, and your sending provider. Ask for acceptance checks, whether the quote includes a test import, and whether it covers a second import of changes made after the first.
What does the migration need from our side?
The migration needs named people with the right access before work starts. Confirm these items with your team early:
- A Klaviyo account owner with export rights, plus authority over SMS settings and sending domains.
- Admin access to the destination host, its database and its mail settings, or a named engineer who holds that access.
- DNS control for sending domains, including the SPF, DKIM and DMARC records and any tracking domain.
- Contacts at your SMS carrier or provider for number porting, with the account holder able to approve the request.
Also name a decision-maker who can approve the cutover date and the list of excluded data. Missing any of these items usually delays the project more than the data work itself, so agree on owners in the written scope.
Can we keep sending email and SMS during the move?
Yes, but plan for an overlap period rather than a single switch. Keep Klaviyo sending until the new platform passes test sends, then confirm deliverability from the new sending domain before you move volume to it. Move suppression lists first so people who unsubscribed are not mailed from the new system. Avoid sending the same profile from both platforms at the same time, since that risks duplicate messages, and split segments deliberately during the overlap. Do not port an SMS number while it still carries live campaigns without a porting plan. Confirm with your email provider how sending reputation builds for a new domain or IP, and confirm carrier porting timelines in writing before you set the cancellation date.
Will Klaviyo provide our event and message history?
Klaviyo's CSV exports do not include the event and message history, so the destination will start with contact fields, consent and tags, not the full timeline of opens, clicks and placed orders. Confirm with Klaviyo what history it can provide for your account, in what format, and within what timeframe, and get that answer in writing before you cancel. Store any archive you receive with your compliance records. Decide what the new platform needs as history: consent evidence and suppression status are usually required, while long-term reporting trends may need a copy in your data warehouse. If your store system sends orders into Klaviyo, that store remains the record of purchases.
How DeployOpen scopes and runs a Klaviyo data exit
DeployOpen approaches a Klaviyo data exit as a written, fixed-scope engagement inside your own infrastructure. We map what Klaviyo exports cleanly, what it leaves out, and what must be captured before the subscription ends, then build the export and import path your team can run and check.
How we scope
- Inventory every list, segment, consent field and SMS number that must leave Klaviyo before cancellation.
- Confirm which events, message history and analytics need an alternative archive, since the standard CSV exports omit them.
- Agree deliverables, timelines and responsibilities in writing before any export work begins, with a quote following from that scope.
How we build
- Build repeatable export scripts and column mappings so profiles and consent fields land correctly in the target platform.
- Test imports on a copy of the data, checking record counts, consent status and suppression lists against the source.
- Set up the self-hosted target platform in your environment, including the scheduled jobs it needs to run segments and campaigns.
How we hand over
- Document the export procedure, mappings, known gaps and the order of steps used, so your team can rerun or audit them.
- Deliver a reconciliation record showing what was exported, what was archived separately and what was intentionally left behind.
- Walk your team through the target platform so operators can run it without DeployOpen present.
How we support
- Engagements are fixed-scope, with any follow-on work agreed in a separate written scope.
- Ongoing support, upgrades and continuous testing of the target platform are available as retainers.
- Ask us to confirm which parts of the exit still depend on Klaviyo access, such as SMS number porting, before you cancel.

