How to Find and Fix Duplicate Klaviyo Profiles on a Shopify Store

|Dan Giura
How to Find and Fix Duplicate Klaviyo Profiles on a Shopify Store

TL;DR

Klaviyo matches profiles on email and phone, and its standard merge happens when one action links an email and a phone number together [1]. Two email addresses with nothing between them stay two people. On a Shopify store, three splits to check first are an SMS opt-in that made a phone-only profile, a checkout with a different address from the signup form, and any tool that identifies people by external ID. Find the source, stop it, merge the pair, and finish before the Black Friday sends, because Klaviyo bills on profiles it can email [8].

Key Takeaways

  • Write down the email, phone number and external ID on both profiles before you click Merge profile [1]. The field that differs is what split the customer.
  • A phone-only profile from an SMS keyword joins the email profile on the next event that carries both, such as a checkout with email and phone [2]. Keywords and click-to-text "will generally not result in a merge based on cookie tracking" [1].
  • A typo merge needs Klaviyo's Advanced KDP, a paid subscription, and needs the two profiles to share a phone number and their emails to differ by 1 character, either in the domain or because one address bounced [4].
  • Look for profiles that have an external ID and no email. Klaviyo warns that external IDs used wrongly "can lead to permanent duplicate profiles" [5].
  • A merge can't be undone. Events and list memberships move to the profile you keep; coupons assigned to the other one don't [2].
  • Klaviyo counts any profile it can email as active, regardless of consent, and the count can take up to 72 hours to refresh after a cleanup [8].

Merging first doesn't stick

The merge button is the obvious move, and it's the wrong first move. Klaviyo's identity FAQ: "If a source profile is merged into a destination profile, and Klaviyo then receives another event with the email address from the original source profile, a new profile is created with that email address" [2]. The question it answers is about both addresses still sitting in an ecommerce integration, which is the Shopify case.

A signup form, an SMS tool or a script that keeps sending the old identifier rebuilds the duplicate on its next event. So read the two profiles, find the identifier that differs, find which tool keeps sending it, change that tool, and merge last.

How does Klaviyo decide two records are the same person?

Klaviyo's identity resolution help, updated February 18, 2026, ranks the identifiers it resolves profiles on: Profile ID, then External ID, then email, then phone number, and an anonymous mobile app ID for app users [1]. External IDs "are set through some integrations ... or through Klaviyo's APIs", and "Only email and phone number are supported by Klaviyo's onsite tracking at this time" [1].

Merging is narrow. Klaviyo's deterministic merge "merges two separate profiles when an action occurs linking an email address, phone number, or device ID (iOS) together" [1]. Its FAQ gives the everyday case: "a Started checkout event, where the customer provides both their email address and phone number" [2]. Nothing in that rule links two email addresses. A shopper who uses a personal address on your popup and a work address at checkout is, as far as standard merging goes, two people.

Klaviyo does catch some typos, through its identity resolution transformations. They need Advanced KDP, which "is not included in Klaviyo's standard marketing application, and a subscription is required", the two profiles must share a phone number and their emails must differ by 1 character, either a domain typo or one address that bounced, and the merges "cannot be un-merged" [4].

One profile with two Placed Order metrics is a different problem: that's two senders, and why Klaviyo shows double conversions covers it.

How to read two duplicate Klaviyo profiles side by side

  1. Search Klaviyo's profiles for the customer's name and open both results in separate tabs.
  2. On each, note the email, the phone number and, if the profile shows one, the external ID.
  3. Scroll each profile's activity to the oldest entry. The first thing on the newer profile, whether a form, an SMS opt-in, an order or a list import, is what created it, and the integration behind it is the tool you'll change.
  4. Check list memberships and segments on both, because the merge moves list memberships and the profile you keep may not match the same segments [2].

Then match what you found to the rule behind it:

What differs between the two Likely source on a Shopify store What joins them
One has a phone number and no email An SMS keyword opt-in or click-to-text [1] An event carrying both, such as a checkout with email and phone [2]
Two different email addresses A signup with one address and a checkout with another A manual merge, or Multi-Email Profiles where your account has it [3]
One has an external ID and no email A tool identifying people by external ID [5] Fix the tool first; Klaviyo doesn't reconcile these on its own [5]
Same email on both, different external IDs A tool identifying people by external ID [5] Fix the tool, then merge by hand [1]; Klaviyo warns external IDs used wrongly can leave permanent duplicates [5]
Emails 1 character apart, same phone A typo at checkout or in a form Advanced KDP's typo merge [4], or a manual merge

Where Shopify stores make the second profile

A tool that identifies by external ID. Ask of every app, script or custom integration that writes to Klaviyo what it identifies people by. An ID of its own and no email makes it your source. Klaviyo's custom integration FAQ says "Improper use of external IDs can lead to permanent duplicate profiles and long-term data integrity issues in your account", and "Klaviyo does not automatically reconcile profiles identified only by external ID with profiles identified later by email or phone" [5].

SMS signups. Klaviyo's own example is a customer who subscribes "through a method that is not associated with their email, like a keyword opt-in". That "results in a separate profile for receiving SMS messages", and it merges when the customer later makes a purchase "where they submit both their phone and email" [1]. The keyword itself doesn't bridge the gap through the cookie. Klaviyo says a phone-only form submitted by someone whose email cookie is present gets appended to their email profile, but that "Actions related to click-to-text or keywords will generally not result in a merge based on cookie tracking" [1]. If your Black Friday plan leans on a texted keyword, expect phone-only profiles until those people check out, or open a link from your texts and then one from your emails in the same browser [2].

A second email at checkout. The two addresses have nothing to link them [1]. Klaviyo's Multi-Email Profiles page, updated April 1, 2026, describes the same shopper: "They might sign up with their personal Gmail, check out with a work address", and "Without MEP, each of those interactions creates a separate profile in Klaviyo" [3]. If Multi-Email Profiles is available on your account (the page doesn't say which accounts have it), it lets you "store and manage up to 5 email addresses on a single customer profile", and it merges profiles automatically "when two profiles share an External ID" [3]. For billing, "A profile with 3 email addresses still counts as 1 contact toward your plan" [3]. Klaviyo's developer docs say the opposite about external IDs: "external_id is not involved in profile merging, so its use can lead to duplicate profiles" [6]. Until Klaviyo reconciles its two pages, test one known pair in your own account before you count on either.

What does WeltPixel Conversion Tracking send as identity?

On the Plus plan, WeltPixel Conversion Tracking sends Klaviyo seven metrics: Viewed Page, Viewed Product, Viewed Category, Product Searched, Added to Cart, Checkout Started and Placed Order. All seven identify the profile the same way. When the app knows the shopper's email, it sends it: the order's email on Placed Order, and on storefront events the email entered at checkout or, for a logged-in shopper, the account's email. With it goes Klaviyo's own browser identifier, when the shopper's browser has one. The app sends no phone number and no external ID.

None of its events carries an email and a phone number together, the pair Klaviyo's standard merge looks for [1]. The bridging has to come from a checkout that collects email and phone, from Multi-Email Profiles, or from a manual merge.

One setting decides whether visitors with no known email get events at all: Send events for anonymous visitors, on by default, sends events for visitors with no known email, which the app's help text says creates an anonymous profile; switch it off and events go only once an email is known.

How an anonymous browser becomes a known one is covered in how Klaviyo server-side tracking works on Shopify, and which metrics arrive server-side and which in the browser is in the server-side sync vs onsite JS guide. If a profile picked up the wrong name rather than a second identity, that's a different check, in what gift orders do to customer matching.

What does a Klaviyo profile merge keep and drop?

In the app, Klaviyo's steps are: "Navigate to the source profile you want to remove. Open the Profile actions dropdown. Click Merge profile. In the popup that appears, search for the destination profile (the one you want to merge into or keep)" [1]. For volume there's the Merge Profiles API, POST /api/profile-merge, which "queues an asynchronous task which will merge data from the source profile into the destination profile, deleting the source profile in the process" [7].

What happens to the pair, per Klaviyo's FAQ [2]:

  • Every event moves to the destination profile with its original timestamp.
  • The destination inherits the source's list memberships, but it "may not meet the same segment criteria as the source profile".
  • Where both have the same property with different values, the destination's value wins, except timezone, which comes from the source, and location, which comes from the source if it has more location data.
  • Coupons don't follow: "active coupons on the source profile would not be valid codes for the destination profile". If you've already issued Black Friday codes, check which profile holds them.
  • Flows: if both profiles are waiting in the same flow, "the source profile's flow is canceled, and the destination profile continues uninterrupted".

Klaviyo's help adds that a merge leaves "only one profile, with one email address", and that "merging profiles cannot be reversed" [1]. Pick as the destination the profile whose email you'll keep sending to.

Clean up before the Black Friday sends

Klaviyo's billing page, updated March 25, 2026, defines the count: "Any profile, regardless of consent status, that can be emailed through Klaviyo is considered an active profile" [8]. Billable profiles are the ones that "have a valid email address or phone number and are not suppressed or deleted" [8]. Its profile management page adds that "Your plan must allow enough profiles to accommodate the number of active profiles in your account, or you may be automatically upgraded the next billing cycle" [9].

Run it on an illustrative account: a plan that covers 10,000 active profiles, 9,800 in use, and 400 customers who each exist twice. Merging those 400 pairs brings the count to 9,400. Leave them, and a signup push that adds 300 new emails takes the account to 10,100, over the plan.

The timing matters as much as the count. After a cleanup "it can take up to 72 hours for your active profile count to fully refresh", and Klaviyo asks you to be within your plan's limits "at least 24 hours before your next billing cycle" [8]. So do the work at least a full billing cycle before your first big send, alongside the other pre-season changes on the Black Friday conversion tracking freeze calendar.

FAQ

Does merging Klaviyo profiles lower my bill?

Each merge deletes the source profile [2], so a billable duplicate leaves your count. Whether your bill moves comes down to where the count sits against your plan's limit at the end of the cycle [8].

Why did a merged Klaviyo profile come back?

Something sent another event with the old email address, and Klaviyo created the profile again [2]. Find the tool that keeps sending that address before you merge a second time.

Does WeltPixel Conversion Tracking merge Klaviyo profiles?

No. Its events carry the shopper's email when known and Klaviyo's browser identifier, never a phone number, so none of them carries the email-and-phone pair that Klaviyo's standard merge looks for [1].

Keep Klaviyo activity on the profile that bought

WeltPixel Conversion Tracking sends Klaviyo all seven metrics, from Viewed Page to Placed Order. Klaviyo is part of the Plus plan at $39/month [10], with Meta, TikTok, Google Ads, Reddit, Pinterest, Snapchat, OpenAI Ads and theMarketer; the free plan covers GA4 only, up to 100 storefront orders a month.

Sources

  1. Klaviyo Help Center, "Understanding identity resolution in Klaviyo" (updated February 18, 2026), help.klaviyo.com/hc/en-us/articles/12902308138011, accessed October 13, 2026
  2. Klaviyo Help Center, "Frequently asked questions about identity resolution in Klaviyo" (updated August 5, 2025), help.klaviyo.com/hc/en-us/articles/13756180653851, accessed October 13, 2026
  3. Klaviyo Help Center, "Multi Email Profiles" (updated April 1, 2026), help.klaviyo.com/hc/en-us/articles/48274807144475, accessed October 13, 2026
  4. Klaviyo Help Center, "Understanding identity resolution transformations in Klaviyo" (updated September 23, 2025), help.klaviyo.com/hc/en-us/articles/39729752384795, accessed October 13, 2026
  5. Klaviyo Developers, "Custom integration FAQs", developers.klaviyo.com/en/docs/custom_integration_faqs, accessed October 13, 2026
  6. Klaviyo Developers, "Profiles API overview", developers.klaviyo.com/en/reference/profiles_api_overview, accessed October 13, 2026
  7. Klaviyo Developers, "Merge Profiles" API reference, developers.klaviyo.com/en/reference/merge_profiles, accessed October 13, 2026
  8. Klaviyo Help Center, "How Klaviyo billing works" (updated March 25, 2026), help.klaviyo.com/hc/en-us/articles/115000976672, accessed October 13, 2026
  9. Klaviyo Help Center, "Understanding active profile management in Klaviyo" (updated March 30, 2026), help.klaviyo.com/hc/en-us/articles/24263920096027, accessed October 13, 2026
  10. WeltPixel Conversion Tracking, Shopify App Store listing (free plan; Plus $39/month), apps.shopify.com/weltpixel-conversion-tracking, accessed October 13, 2026

Ready to upgrade your tracking?

Server-side tracking for Magento and Shopify: more of your conversions reach GA4 and your ad platforms, with better attribution.