A contact identifier uniquely identifies a contact to systems outside the xDB. Examples of valid identifiers include website logins, social media handles, and ad network IDs. Identifiers are represented by the
Sitecore.XConnect.ContactIdentifier class. Each identifier consists of:
Identifier, such as a username
Source, which describes where the identifier comes from - such as ‘twitter’
ContactIdentifierType, which is either
IsKnown property on the
Sitecore.XConnect.Contact returns true if a contact has any known identifiers.
At the data storage level, contact identifiers are stored in a separate table or collection. The following restrictions apply:
Sourceproperties are case sensitive - comparisons are done at byte level.
Identifiers and source are stored as
VARBINARY. Identifiers are restricted to 700 bytes, and source is restricted to 50 characters.
Don't use apostrophes or horizontal tabs in identifiers, because they are not supported.
Contacts are uniquely identified by a combination of
Source. This requirement supports the following scenarios:
A contact using the same username across multiple systems - for example, using myrtlesitecore on Twitter as well as Slack
Two different contacts using the same username - for example, contact 1 using sitecore on Instagram and contact 2 using sitecore on Twitter
A contact can have multiple identifiers
A single contact can have multiple identifiers. A contact’s identifiers are represented by the
Identifiers property on the
Contact class. Refer to the following topics for information about how to work with identifiers:
Contacts that have interacted with your website have a tracker identifier, which is created the first time a contact visits your website. This applies to known and anonymous contacts. A tracker identifier consists of:
An ID that is used exclusively by the tracker and differs from the contact’s ID in the xDB. This ID is generated by the tracker on session begin.
A source represented by the
Sitecore.Analytics.XConnect.DataAccess.Constants.IdentifierSourceconstant (Use “xDB.Tracker” in 9.0.0 - property is marked internal).
Do not rely on all contacts having a tracker identifier. Only contacts that have visited your website will have a tracker identifier.
All contacts have an anonymous alias identifier that is assigned during the
AddContactOperation. Alias identifiers ensure that contacts always have at least one predictable identifier, and is used by products such as the List Manager. An alias identifier consists of:
An ID that is generated by the xConnect service layer and differs from the contact’s ID in the xDB.
A source represented by the
Sitecore.XConnect.Constants.AliasIdentifierSourceconstant (Use “xDB.Tracker” in 9.0.0 - property is marked internal).
Contacts can only have one alias identifier. If you try to add an additional identifier that uses the
Sitecore.XConnect.Constants.AliasIdentifierSource source, you will get an exception.