Skip to content
DataUntangler

Klaviyo duplicate profiles, merge profiles and duplicate emails before import

Klaviyo duplicate profiles appear when the same shopper reaches your account through two doors that share no identifier: an SMS keyword opt-in with only a phone number, a second email address, a list imported from another platform. Klaviyo merges profiles only when an email, a phone number or an external ID ties them together, and it bills every active profile it cannot tie. DataUntangler reads your Klaviyo export and your next import file in the browser, shows each likely duplicate with the reason, and returns a clean file plus a log of every merge you approved.

In-browser your file never leaves your computer

Every row proposed to you before it is applied

CSV log of what you approved and rejected

Clean a file
01 Try it on this page

Load a messy sample and watch it work

The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.

1. Load a file

Your file is read on your own machine. Nothing is uploaded, so nothing can leak.

Or start from a messy sample

Status

Loading the sample file.

File: CRM contact export

Rows

--

Columns

--

Changes

--

Duplicate rows

--

Date formats

--

Blank or invalid emails

--

Load a file to see the diff

Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.

02 About klaviyo duplicate profiles

How Klaviyo creates duplicate profiles

Klaviyo identifies a person by email address, phone number and, on iOS, a device ID. When an event carries two of those together, a checkout with an email and a phone number or a signup form with both fields, Klaviyo links them and keeps one profile. When a person arrives through a channel that carries only one identifier, it has nothing to link, so it creates a second profile.

Klaviyo's own help center gives the common case: a customer with an email profile who later subscribes to SMS through a keyword opt-in ends up with a separate phone profile. The same thing happens when a shopper checks out with a work address after signing up with a personal one, and when a list from a previous email platform is imported with addresses or phone numbers that do not match the profiles you already hold.

Merging does not always stick either. Klaviyo documents that if a source profile is merged into a destination and an event later arrives with the source profile's old email address, a new profile is created for it. A cleanup that only happens inside the account keeps coming back as long as the files you feed it carry the old identifiers.

Does Klaviyo automatically merge duplicate profiles?

Yes, but only on a shared identifier. Klaviyo merges profiles automatically when an event links an email to a phone number, and when two profiles carry the same external ID, such as a store customer ID. It does not merge two profiles because the names match, and it does not suggest near matches for you to review.

Klaviyo now also supports multi email profiles, up to five addresses on one profile, combined automatically when the profiles share an external ID. That helps brands whose store sends a customer ID with every event. It does nothing for a keyword SMS signup or an imported list that has no external ID column, which is where most duplicate profiles in a growing account come from.

Why duplicate profiles raise your Klaviyo bill

Klaviyo bills on active profiles: profiles that can receive at least one type of marketing, meaning they have a valid email address or phone number and are neither suppressed nor deleted. An email profile and a phone profile for the same shopper are two billable profiles. So are the work and the personal address of one customer, unless an external ID has folded them into one profile.

When the active count passes your plan threshold, Klaviyo notifies you and moves the account to the higher tier as of the next billing cycle. Going back down is not automatic. Once the count falls below the threshold you become eligible to downgrade, but you have to do it yourself, more than 24 hours before the billing cycle turns over, and after bulk deletes or suppressions the count can take up to 72 hours to refresh. A large import full of duplicates can decide your next invoice before anyone notices.

Klaviyo on its own against a pass on the file first

The duplicate Klaviyo on its own Pass on the file before import
Same email twice in one import file One profile, values from the file overwrite each other Shown as one cluster, you pick the values that survive
Same email with capitals or trailing spaces Not documented Trimmed and lowercased, then matched
An SMS profile with a phone only and an email profile, same name Two billable profiles until an event links them Matched on name and shown for your approval
One customer, two email addresses, no external ID Two billable profiles Kept as two on purpose, two inboxes, you decide
Two profiles that share an external ID Merged automatically, emails combined Nothing to do, Klaviyo handles it
States, ZIP codes and name casing written several ways Stored as supplied, segments miss rows Two letter states, five digit ZIP codes, consistent case

When you merge a suppressed profile with an active one in Klaviyo, the merged profile becomes suppressed. Decide which address you want to keep mailing before you merge.

The matching is the same data deduplication engine used across the site: exact email after trimming and lowercasing, then name, and company where your file has one, for rows where one side has no email. Each cluster is built around the most complete row, and nothing changes until you approve it. If part of your list still lives in Mailchimp, the audience version of this problem is on Mailchimp duplicate contacts, and for a B2B list in ActiveCampaign, where phone only form entries split one buyer into two contacts, it is on ActiveCampaign duplicate contacts.

How do I find duplicate profiles in Klaviyo?

For one or two, search the profile by name in the Profiles view and open each result. For more than a handful, export all profiles into one file, because duplicates that share no identifier only show up side by side, sorted by last name. To export everyone, create a segment that contains all profiles, then export that segment with the properties you need.

Look for pairs where one row has an email and no phone number and the other has a phone number and no email, especially where the source is an SMS keyword or a pop up. Those are the duplicate profiles Klaviyo cannot link by itself, and they are also the ones that cost you twice.

How do I merge duplicate profiles in Klaviyo?

  1. 1 Export first. Go to Audience, then Lists and segments, open the segment that holds all profiles, and choose Manage segment, then Export segment to CSV. Only users with the Owner, Admin or Analyst role can export. Include email, phone number, first and last name, organization, location fields, the source and the Klaviyo profile ID.
  2. 2 Add the file you are about to import, a list from your previous email platform, an event list or a store export, with a Source column so every row remembers where it came from. This is the file that can move your active profile count into the next tier.
  3. 3 Load the combined file into the demo at the top of this page. Nothing uploads, the file is read and matched inside your browser tab. Every cluster shows its rows side by side with the reason and a confidence level. Approve the merges you agree with, reject the rest, and download the cleaned file with the audit log.
  4. 4 For duplicates already in Klaviyo, open the profile you want to remove, choose Profile actions, then Merge profile, and pick the profile you keep. Properties from the removed profile are added only where the kept profile has none, events are copied across, and the merge is permanent, so use the audit log as your list of pairs.
  5. 5 Import the cleaned file with Email or Phone Number as the first column, so Klaviyo matches existing profiles and updates them instead of adding new ones. Keep each file under 50 MB. After the count refreshes, check whether you are now below your tier threshold and downgrade before the billing cycle turns over if you are.

Clean the import file before Klaviyo overwrites good data

On a CSV import Klaviyo looks for an existing profile with the same email or phone number and overwrites any property you include with the value from the file. That is useful when the file is better, and quietly destructive when it holds a lowercase name, a state written as texas or a ZIP code that lost its leading zero in Excel, because every segment built on those properties now misses the row.

So the same pass that finds duplicate profiles also repairs formats before the import: names in consistent case, emails trimmed and lowercased, states as two letter codes, ZIP codes back to five digits and dates in one format. Doing that on every incoming list is the routine side of data hygiene, and it keeps the cleanup from being repeated every quarter.

Who pays for a Klaviyo cleanup

The buyer is usually the email and SMS lead at a US ecommerce brand, or the agency running Klaviyo for several stores, who owns the Klaviyo invoice and is about to import a list, switch on SMS or move a subscriber base over from another platform. They need the profile count to stay under the next tier and to be able to show why it moved.

Brands that sell to businesses carry the same problem one step up, in the CRM. If your Klaviyo profiles are fed from a CRM export, cleaning the CRM once, as described in CRM data cleansing, means every future sync starts from one record per person.

When a connected app is the better buy

A pass on the export fits a project: an import to run, an SMS launch, a tier you want to stay under. A person reviews every merge and applies the result, and that is deliberate, because deciding whether two profiles are one shopper belongs to someone who knows the customers.

If you need profiles merged continuously inside Klaviyo without an export, look at your store integration first, since sending an external ID with every event lets Klaviyo merge on its own. DataUntangler does not connect to your Klaviyo account and does not claim to. It is a data cleaning tool that gives you the matched file and a record of each decision, on the Analyst plan at 59 dollars a month with unlimited files. For lists that go into Constant Contact instead, the same pass is on Constant Contact duplicate contacts.

03 Read it off a real file

A Klaviyo export combined with an SMS list and a store import, run through the engine on this page

Source Email Name and phone Result
Klaviyo export megan.hart@gmail.com Megan Hart, no phone Kept: the row with an email
SMS keyword opt-in (no email) Megan Hart, phone only Matched on name, confidence high, review it
Klaviyo export chris.alvarez@outlook.com Chris Alvarez, with phone Kept: the more complete row
Store customers import Chris.Alvarez@Outlook.com chris alvarez, no phone Same email address, confidence high
Klaviyo export jordan.lee@yahoo.com Jordan Lee Left alone
Pop up form jlee.work@company.com Jordan Lee Left alone: two emails, two inboxes
Klaviyo export priya.nair@gmail.com Priya Nair Left alone
SMS keyword opt-in (no email) Pryia Nair, phone only Not matched: the typo is too far apart

Every result above came out of a real run on this file. The file had no Organization values, so the Megan Hart match rests on the name alone, and on a large store list two different shoppers can share a name: review those clusters before approving them. The same run proposed oregon, mass, texas and new jersey as OR, MA, TX and NJ and restored the leading zero on ZIP codes 2110 and 7102. The Priya Nair pair shows the limit: a transposed letter with no email on one side is left for you to spot.

04 Importing lists into Klaviyo

What automatic merging does not cover

Klaviyo links profiles that share an email, a phone number or an external ID. Everything that shares none of them is left for you, and every new list adds more.

Data deduplication tools

SMS opt-ins split people

A keyword signup with a phone number only becomes a second profile beside the email one.

Imports overwrite

A matching email takes the property values from the file, so a messy list rewrites a clean profile.

Tiers move up on their own

Crossing the active profile threshold moves you up next cycle, and going down is manual.

What the file pass adds

Every likely duplicate across your export and the new list in one view, formats repaired before import, and a log of each merge you approved to explain the profile count.

05 Before you run it

Questions about klaviyo duplicate profiles

Does Klaviyo automatically merge duplicate profiles?
Only on a shared identifier. Klaviyo merges profiles when an event links an email address to a phone number, and when two profiles share an external ID. It does not merge profiles on a matching name, so a phone only SMS profile and an email profile for the same shopper stay separate.
How do I merge duplicate profiles in Klaviyo?
Open the profile you want to remove, choose Profile actions, then Merge profile, and select the profile to keep. Properties from the removed profile fill only empty fields, events are copied across, and the merge is permanent. For many pairs, find them in an export first and work from that list.
Do duplicate profiles count toward my Klaviyo bill?
Yes, if they are active. Klaviyo bills every profile that can receive email or SMS and is not suppressed or deleted, so one shopper with an email profile and a phone profile counts twice. Passing your tier threshold moves you up at the next billing cycle, and downgrading is manual.
How do I remove duplicate emails in Klaviyo?
Klaviyo already keeps one profile per email address, so exact duplicates in an import update the same profile. The duplicates worth removing are the same person under a second address or with no email at all. Find those in an export, merge or suppress the extra profile, and keep the one with the engagement.
Does DataUntangler connect to my Klaviyo account?
No. It works on the file you export, in your browser, and returns a cleaned file plus an audit log of every decision. You import the result into Klaviyo and merge any existing profiles yourself. Nothing on this site has access to your account and nothing writes to it.
06 What it costs

Plans for when the file is bigger than the demo

Yearly billing saves 50 percent. There is no free plan, and no card is needed to use the browser demo above.

Yearly billing saves 50 percent, half the monthly price.

Switch to yearly and save 50 percent.

Analyst

Self-serve

One person with files to clean, as many as they like.

$29$59/mo

Billed $348 a year Billed monthly

Buy Analyst, yearly Buy Analyst, monthly
  • Unlimited files
  • Files up to 25MB, about 100,000 rows
  • Exact and fuzzy duplicate detection
  • Dates, numbers, currencies, encoding and casing fixed
  • Every change reviewable before you download
  • Cleaned CSV and a change log, both downloadable
  • Runs in your browser: files never leave your machine
  • Email support

Enterprise

Several people on one invoice, a DPA on request, priced per seat.

$49$98/seat/mo

Billed $588 a seat a year, from 2 seats ($1,176) Billed monthly per seat, from 2 seats ($196)

Buy Enterprise, yearly Buy Enterprise, monthly
  • Everything in Analyst
  • Several people on one invoice
  • DPA on request
  • Invoicing and purchase orders
  • A named contact for support

Payment is by card through our payment provider, monthly or yearly, and you can cancel from your account at any time. The free try is one file of your own, up to 5MB, in the browser demo. Already paid? Sign in.

Clean the file, and be able to show what you changed

Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.

No card required. Your file never leaves your computer.

Clean a file