Use Cases for External ID

The external ID is a unique contact identifier generated in your system. We recommend using an external ID as the main identifier in the externalCustomerId API request field (or externalUserId in Mobile SDK). It will help you avoid duplicating contact profiles, collect all available data into a single contact profile, and get complete information about their interaction with your company.

When the user installs and opens your app, we get their device ID. The external ID must be created in your system when the user signs up within your mobile app, and you get identifiers that deanonymize the user, such as email or phone number.

Consider four basic use cases to understand better how contact data enters the system and how to optimize contact identification.

Use Case 1. Creating and Updating Contact from the Mobile App

Creating and Updating Contact from the Mobile App
EventData TransferringResult
1.The user installs the application on a mobile device with Android OS.SDK transfers the contact's mobile device ID to Reteno.Reteno creates a contact profile with this device ID as the identifier.
2.The user signs up within the application.Email enters your system. Your system assigns this user a unique ID. The updateUserAttributes request sends it to Reteno along with other identifiers, including the device ID.Reteno finds the contact profile with this device ID and updates it with new identifiers.

Use Case 2. Matching External ID with Device ID after Bulk Uploading

Matching External ID with Device ID after Bulk Uploading
EventData TransferringResult
1.You upload the contact list with external IDs and without device IDs.Uploading CSV file/ Backend API.Contacts without device IDs and mobile push tokens are created.
2.The user has downloaded and opened the mobile app.SDK transfers the device ID to Reteno.Anonymous contact is created in Reteno with the device ID.
3.The user logged in to the app.The updateUserAttributes request with the external ID updates the existing contact.Device ID and push token are merged in the identified contact profile; anonymous contact is deleted.

Use Case 3. Creating and Updating Contact for the Web-to-App Project

Creating and Updating Contact for the Web-to-App Project
EventData TransferringResult
1.The user has completed onboarding on the site (answered the questionnaire questions).The Add/update a contact API method transfers the user’s data to Reteno.The contact profile with data collected on the site and external ID as the main identifier is created.
2.The user has downloaded and opened the mobile app.SDK transfers the device ID to Reteno.The anonymous contact with the device ID is created.
3.The user logged in to the app.The updateUserAttributes request with the external ID updates the existing contact.Contact with the device ID and push token is created in Reteno; anonymous contact is deleted.

Use Case 4. Creating and Updating Contact for the Website

Creating and Updating Contact for the Website
EventData TransferringResult
1.Non-logged-in contact visits your site.Appropriate cookies are transmitted and recorded in Reteno (the web tracking script is used).The contact profile is not created
2.Contact registers on the site or subscribes to the newsletter.Email enters your system.
Your system assigns this contact a unique ID and passes it along with the email to Reteno (Add/update a contact to create confirmed emails or Subscribe a contact to create non-confirmed emails and set up double-opt-in).
Reteno saves the contact with the transferred email and adds its previous history of interaction with your site (cookies).

After a contact profile has been created in Reteno with the External ID field, we recommend updating it using this field. This way, you will be able to constantly maintain the relevance of all contact data since external ID is unique and immutable, while other identifiers can change.

📘

Note

If your system does not assign IDs to contacts, you can use Reteno's system ID (contactId) and save it on your side as a contact ID. However, using the external ID is a better option because this identification 100% prevents the creation of duplicates.

External ID in Single Contact API Methods

Updated logic of single API methods:

The system searches for a contact by external ID when getting a request:

  • if the contact profile with this external ID is found, it is updated with the data from the request;
  • if the contact profile with this external ID has been deleted, it will be restored;
  • if the contact profile is not found, it will be created in the system;
  • if there is no external ID in the request, the creation logic remains unchanged.

The external ID is added to contact data returned by request.

The external ID has the highest priority in the contact search logic; if the contact profile with this identifier is not found, the system searches for it by email address; if the email is not found — by phone number.

External ID in Bulk Contact API Methods

Updated logic of bulk API methods:

You can set the uniqueness of the contact search by the externalCustomerId field. In this case, you cannot set other search parameters.

When importing contacts to Reteno, you can use any field to define their uniqueness. For example, import contacts with uniqueness by email and, at the same time, add or update their external IDs.

Export External ID to BigQuery and PostgreSQL

Export external IDs to BigQuery and PostgreSQL—they will appear in the corresponding column in the contacts table.

This option is available by default for all new exports. If you need to create one for existing exports, please contact our support team.

Finding Empty External IDs in Reteno Account

Create the dynamic segment to find all your contacts with empty external IDs.

  1. Go to Contacts → Segments → Add Segment and create the dynamic segment.
  2. Add condition: Fields → External ID → is empty, and click Done.
Find empty External ID

The system will find all contacts without external IDs and place them in this segment. As the segment is dynamic, all new contacts without external IDs will also be automatically placed in it.