Keys & Identifiers


Primary Key

Primary key is a unique identifier for data item so any duplicate with same value for this key will be overwritten. Collection can have only one primary key. Primary key is mandatory for collection to insert any data item into it.

Foreign Key

Foreign key is identifier that used to link two collection together. Foreign key can be set on any field of collection, if type of that field matches type of primary key of related collection. So it's mandatory to set primary keys first to set foreign keys after that.


Relation is additional setting for foreign key that allows you to set a custom name of foreign key and use it in event editor to generate events based on related data item fields. One collection can have any amount of foreign identifiers.


Profile identifier

Profile identifier helps to identify profiles in one source. Profile is a bunch of information about user collected in one source. User can have multiple profiles that shows full picture of your customers. Example of profile identifier for one source is visitor ID or session ID, all data collected during that visit or session is related to one user, but can't fully describe that user.

Source can have one profile identifier (fieldName should be same), but you can set it to multiple collections. So all data items to collections with that profile identifier will be connected to one user.

Only collections with profile identifier can be used in event editor. If collection don't have profile identifier it can't be used as event, and you can't add user identifier and user attribute on it, because it's impossible to connect data from that collection to any user. Example of collections like that can be Rooms in hospitality source or Devices in proximity source.

User identifier

User identifier helps to identify user across all sources in your organization. So all attributes of that user will be in connected to one exact user. Usually as user identifiers we use email or phone. So all profiles from all sources with same user identifier values will be merged into one user.

To add user identifier collection should have profile identifier. One collection can have any amount of user identifiers.

Main difference between user attribute and user identifier is that user identifier value is unique for every user, but user attribute values can be same for different users. For example, user identifier - email, user attribute - location.