Two contact

I see two different contact when same user is register for email campaign and for page visit, need to merge this to one, how can i do so?

The first contact you see in above image is email history show email sent and email open. The second contact you see show the page visit history as well as page event or goal triggered. Both are same contact

However, first contact show email only, no fullname, no lastname,etc. I have created sitecore form and added custom save action to save contact to analytics.

2 Answers 2


You have two different sources for the same contact where your identifier is also the same. But a contact identifier uniquely identifies a contact by a combination of Identifier and Source. To understand that, it is a correct approach let take an example of Twitter and Facebook as two sources and identifiers as the username of both sources. Now if you have username "krishnagupta" on Facebook it doesn't guarantee that you will have the same username on Twitter as well. Technically this is possible that somebody else with the same "krishnagupta" username from twitter visits the website and you visit the website with the same username "krishnagupta" but from facebook and this will be a separate contact in Sitecore.

Identifiers are represented by the Sitecore.XConnect.ContactIdentifier class, which includes -

  • An Identifier, such as a username, email, etc.
  • An identifier Source, which describes where the identifier comes from, such as Facebook, Twitter or email campaigns
  • An identifier ContactIdentifierType - which is either ContactIdentifierType.Anonymous or ContactIdentifierType.Known

A contact merge is triggered when a returning anonymous contact that already exists in xConnect identifies as a known contact. In your case, you have two interactions with different contact identities, Let's assume you have the second interaction as anonymous, so during this second interaction, the anonymous contact will only identify as a known contact if it comes from the same source which is false in your case.

The mergeContacts pipeline -\App_Config\Sitecore\Marketing.Tracking\Sitecore.Analytics.Tracking.config executes on the CD server and do the merge operation, which @Swati is talking about. You can try this but I have doubts about it because since your contact does not exist in xConnect(different identity) so tracker will not call the pipeline.

What you are seeing is technically correct.

  • Your words really make sense, so by making identifier source same, my contacts should be identify as one contact. I tried by keeping same identifier source during saveDataToAnalytics custom submit action and at sending email campaign in Sitecore form submit action, but no luck, i'll try make use of merge api
    – GSKKC
    Apr 29, 2020 at 12:50

You can use Merge API where you need to define source and destination contact and you need to call client.MergeContacts().

Here is the link https://doc.sitecore.com/developers/93/sitecore-experience-platform/en/merge-contacts.html

  • Thanks Swati for the solution, i would also like to know why is it happening and why i only see email id for the first contact, although identifier is email id, I shouldn't see two contact with same email id, right ?
    – GSKKC
    Apr 27, 2020 at 5:35
  • How contact will be create, all depends of source and identifier (which saved in ContactIdentifiers table). If your source and identifier are same then it will update otherwise it will create new contact. Apr 27, 2020 at 6:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.