← all tools / klaviyo

Clone what Klaviyo's account copy leaves behind

Agencies and multi-brand teams clone Klaviyo setups constantly, and Klaviyo's native copy misses whole object types. This diffs two accounts by name and copies what's missing: templates, list structures, segment definitions, and coupons. Every item gets its own result; nothing is silently swallowed.

⚷ both API keys are used in-memory for this run and never reach our servers · save them in Settings to skip re-entering
1

Connect both accounts

Two keys: the account to copy FROM (read-only scopes) and the account to copy INTO (read + write).

Source key (read-only)
templates:read lists:read segments:read coupons:read
Create the source key with exactly these scopes while logged into the SOURCE account.
Destination key (read to diff + write to create)
templates:read templates:write lists:read lists:write segments:read segments:write coupons:read coupons:write
Create the destination key with exactly these scopes while logged into the DESTINATION account.
2

What's missing where

Free. Both accounts are inventoried and diffed by name. Tick what to clone.

3

Clone

Type CLONE to confirm. Only missing items are created in the destination; existing names are skipped, and every item reports created / failed with Klaviyo's reason.

0 cloned

The source account is never written to. The destination only ever gains new items; nothing existing is edited or deleted. Segment definitions that reference source-account-specific things (a particular list or metric) fail per-item with Klaviyo's reason so you can rewire them by hand. Not affiliated with Klaviyo.

What this actually does

Klaviyo's native account copy misses whole object types. This diffs two accounts by name and copies what's missing: templates, list structures, segment definitions, and coupons, with a per-item result for every create. Source is read-only; the destination only ever gains new items.

It runs on your own Klaviyo data, in your browser session, against Klaviyo's official API. There is no middle layer holding your records and there is no migration to anywhere. You run it, you get the result, you carry on with your day.

Where the file goes next

It is a CSV, which is the point. Klaviyo will happily show you the numbers on a screen you cannot do anything with. This gives you the file, and the file goes wherever you need it.

The column names stay the same run to run, so if you build a Power BI report or a Sheets formula on top of it, re-running next month will not break what you built.

What it will not do

It will not touch anything you did not ask it to. It does not store your API key, it does not keep a copy of your data, and where an action cannot be reversed you get told that before you press the button, not after.

Questions people actually ask

Does this store my Klaviyo API key?

No. The key is held in memory for the length of the run and is gone when the tab closes. It is never written to our database and never appears in a log. You can revoke it in Klaviyo the moment you are done and nothing here breaks.

What can I do with the file afterwards?

It is a plain CSV, so anything that reads a CSV will read it. Open it in Excel or Google Sheets, pull it into Power BI or Looker Studio, or load it into a warehouse table. The headers are clean and they do not change between runs, so a scheduled refresh will not break on you.

How big a job can it handle?

It streams the results as they arrive rather than holding everything in memory, and it respects Klaviyo's rate limits instead of hammering the API. Large accounts take longer, but they finish.

Why is this not just a feature in Klaviyo?

That is the whole question, and we do not have a good answer either. It is a gap that has been open for years, it is on the forums, and it never gets shipped. So we shipped it.

Related: clone, copy, accounts, agency, templates, segments, coupons, migration, klaviyo.

K All Klaviyo guides8 guides · setup, steps, gotchas