Firstly, the API doc says:
If you choose to use your own unique identifier with the $id key, you take on the full responsibility of identity management within your Klaviyo account. You must ensure that all calls are made mapping the right
$idvalue you're setting to the right
$idonly, these profiles will exist without any associated
Because of this I originally planned to NOT give our internal ID information to Klaviyo. However, I was unable to figure out how to update a customer email address without creating a new account (preserve order/browse history) if I didn’t have the unique ID.
Therefore, I inserted the $id into customer profiles ALONG with $email. Now I can update email address and keep profile data. Works fine.
I do not have the $id always declared, but, I always have $email declared so events are still associated with the correct profile. Klaviyo figures it out.
If I update a customer email address using the $id field, the email address updates correctly. HOWEVER, if I then make a call using just $email the event causes a duplicate profile to be created, it does not update the original profile.
Because the behavior of $email only vs $id and $email calls is different AFTER an $email update, I *think* this is a bug. I cannot find any other examples of duplciate profiles being created except AFTER submitting a change to their email.
Has anyone else run into this? Have you found a solution?