Solved

Merging profiles via API


Userlevel 1
Badge +1

Hey,

 

Just wondering if there was currently an API endpoint for merging a profile into another profile? If not, is this something that may be implemented in the future?

 

Thanks

icon

Best answer by David To 23 May 2022, 17:09

View original

7 replies

Userlevel 7
Badge +60

Hello @benherro,

Welcome to the Klaviyo Community!

At present there isn’t an API endpoint for merging profiles within Klaviyo. Merging profiles can only be done via our in-app interface at this time as described in our How to Delete, Merge, and Export a Profile Help Center article.

Though we can’t promise anything, I would be more than happy to share this feedback with our Product Team! Can you also share a bit more on a use case for this endpoint? In my experience, we don’t see a lot of profiles that need to be merged since Klaviyo will automatically de-duplicate profiles. With the exception of users who become cookied using a number of different email addresses or phone numbers. 

Thanks for being a part of the Klaviyo Community!

David

Userlevel 1
Badge +1

Hi @David To,

 

Thanks a lot for the reply and that’d be great if you could.

Regarding the main use case, I’ve been seeing a few bogus email signups via the frontend email capture popups, most likely through typos, most of which seem to be typos of emails that already exist in our database. It isn’t a lot, roughly 3 or 4 per day on average and the only reason I’m aware of it is because we have a task which creates new customers in our ERP from the signups, which checks the validity of their emails. Having a way to merge profiles would save some manual work and help us reduce the number of fake emails in our database.

 

Thanks,

Ben

Badge +1

I too need this feature.

We are dealing with a particular sales channel, that goes out of their way to make it hard to automate flow communications AND collect customer data.  When we make a sale through their channel, they only provide us with a buyer ID and a temporary private relay email address, which changes every time the buyer places another order from us.  So we cannot accurately know customer lifetime value, new vs returning, etc by email.  Only by a buyer ID.

if either klaviyo or Shopify would give us an endpoint to merge / delete, edit, customers / profiles, we could write the logic to do this.

Since Shopify also does not have an API endpoint of merging, we are stuck.  It means I can either collect zero data in klaviyo on these people, or have basically worthless data, and constantly be talking to everyone like they are new, which is definitely false a large part of the time.

Userlevel 7
Badge +60

Hey @wgsusa,

Thanks for those additional details! I’ll add those notes and use case to be shared to our product team. 

Since your tools are passing a unique “buyer id” one thing you may want to explore is using a custom/unique identifier within Klaviyo. By default, Klaviyo uses the email address as an identifier; however since you’re dealing with a temporary private relay email address that changes, you may want to explore this alternative method of identifying your contact to ensure their customer data is merged accordingly automatically. 

You can learn more about a custom/unique identifier as opposed to an email address from our Getting started with Track and Identify APIs Developer Guide. Keep in mind, if you choose to use a unique identifier via the $id key, you will be responsible for identity management within your Klaviyo account.

David

Badge +1

Is the $id key searchable via API?  We had been hoping to just use a custom property, but discovered on email, external_id, and phone_number are searchable with API.

Badge +1

I see, it appears the external_id I was referring to, is the same key you were referring to $id.

Just to confirm, by default is this statement true:  $id is a blank field unless otherwise used.  (for a traditional Shopify → Klaviyo integration).

Userlevel 7
Badge +60

Hey @wgsusa,

Although your statement is for the most part true, I believe a more accurate way to phrase it is: $id property used for identification is null unless otherwise used. 

You can find some additional details on the expected behaviors of using and $id identifier from a Community thread I answered in the past which I’ve included below:

David

Reply