Identity stitching and resolution in Vero

"Identity stitching" or "identity resolution" refers to identifying individual users and customers across devices and platforms to create one, unique record in Vero.

Identity stitching allows you to understand a user's interactions across web, mobile, server, and even third-party touch-points.

In this help article we'll walk through the different ways you can "identify" a customer (user) of your platform or software in Vero and how you can stitch together data as customers move from device to device.

IDs and endpoint tokens

To manage cross-channel messages in Vero it is important to build a single profile of each customer across all of their devices. In this section we cover each of the "endpoint tokens" that you can add to Vero. In the next section we'll cover how Vero uses these tokens to "stitch" customers together.

Customer ID (or identifier)

In Vero, customer records must have a unique ID. In Vero this is referred to as either the id or identifier. The terms are interchangeable.

There can only be one customer record in Vero for any given id. This is key to ensuring you do not send duplicate messages and that you build rich customer profiles over time.

The id can be any unique string or number or combination of characters. For most Vero customers, id values align with an internal database id. For example, 1234.

Whilst you can update the id over time, the id field is generally long-lived and does not change frequently across the lifetime of a user of your software.

Some of the ways the id is used:

  • The id is used to lookup, find and take action on customers for all API calls.
  • The id is used in Vero's webhooks so that you can identify which customer is interacting with your emails.

vero.customer-properties-id

Email addresses

You can attach a single email address to each user profile in Vero.

Email addresses are optional. Despite being able to add and manage customers in Vero without an email, by solely providing an id, you must add an email address in order to actually send email messages to a customer. Without an email address, Vero will simply not queue up any emails for this customer.

It's important to note that, unlike iOS/Android device tokens and phone numbers you can add users with Vero's API by solely providing an email address. If you add a customer record by solely providing an email address (not providing an id) then Vero will use the provided email as the id field. Read more about how this affects identity stitching in Match only on ID (default) below.

iOS/Android device tokens

You can add multiple device tokens to each customer record in Vero.

Device tokens are optional and must be provided in order to send push messages to iOS and Android devices.

Phone numbers

You can add one phone number per customer record.

A phone number is optional and must be provided in order to send SMS messages to customers.

Identity stitching configuration options

Match only on ID (default)

By default Vero's identity stitching only stitches on the id field.

Imagine two API calls are made in the following order with these combinations of id and email:

id, email
1234, support@getvero.com
5678, support@getvero.com

In this scenario, two profile records would be created as the id values are unique. Even though both profiles will have the the same email address they will not be stitched together. This is because Vero only stitches on id by default.

A further note on API calls providing email addresses. If an API call is made providing an email address and no id field then the email address is used as the id.

Imagine three API calls are made in the following order with these combinations of id and email (where blank, it means the id or email was not provided):

id, email
1234, 
1234, support@getvero.com
, support@getvero.com

This will result in the following behaviour:

  • A profile record is created with id = 1234 and no email address.
  • The profile record with id = 1234 is found and updated to have the email address support@getvero.com. The profile record now has id = 1234 and email = support@getvero.com.
  • As no id is provided, the email support@getvero.com is used as an id value. This results in a second profile being created with id = support@getvero.com and email = support@getvero.com. By default, this second profile is not automatically stitched to the first profile.

Match on email (do not update ID)

To turn this setting on, navigate to Settings > Labs > Match customer via ID then email.

Once enabled, Vero will stitch first on the id field and, if no match is found, attempt to match on the email field.

Building on the default example above, imagine two API calls are made in the following order with these combinations of id and email:

id, email
1234, support@getvero.com
5678, support@getvero.com

In this scenario, one profile record will be created. This record will have an id of 1234, as this was the id value received first, and an email value of support@getvero.com.

Match on email (do update ID)

This setting cannot be enabled in the UI. Please contact our support team at support@getvero.com and we can enable for you.

Once enabled, Vero will match on id and then email, as outlined above, but will update the id value to be the latest id received. Building on the example above, imagine two API calls are made in the following order with these combinations of id and email:

id, email
1234, support@getvero.com
5678, support@getvero.com

In this scenario, one profile record will be created and this record will have an id of 5678, as this was the latest id value received. As above, the profile will have the email support@getvero.com.

Match on phone number

At this time you cannot configure Vero to use the phone_number as a field when stitching profiles together. However, when importing phone numbers, they will always respect the id and email fields when stitching as per the above descriptions.

Match on device token (do not update ID)

Unlike email addresses, you must provide an id when adding phone_number or device token values.

To turn this setting on, navigate to Settings > Labs > Match customer via ID then device token.

Once enabled, Vero will stitch first on the id field and, if no match is found, attempt to match on the provided iOS or Android device token.

Imagine three API calls are made in the following order with these combinations of id and device tokens:

id, device_token
1234, token1
5678, token1

In this scenario, one profile record will be created. This record will have an id of 1234, as this was the id value received first.

Match on device token (do update ID)

This setting cannot be enabled in the UI. Please contact our support team at support@getvero.com and we can enable for you.

Once enabled, Vero will match on id and then the device token, as outlined above, but will update the id value to be the latest id received.

Note that when enabled, the "update ID" setting will affect both profiles matched on email and those matched via device token.

Ways to add customer data to Vero

There are multiple ways to add customer data to Vero. All of these methods follow the same "identity stitching" rules outlined above.

API

You can add and update users using our API and SDKs. Read more in our Developer Guide.

CSV

Uploading a CSV allows you to import customer data via the Vero UI.

Vero does not require you to provide an id column but it is recommended to include that whenever you can. If you do not provide an id column, you can simply provide an email column.

Read about the various stitching configurations above to learn how your account will stitch together profiles in scenarios where only an email is provided.

HTML forms

These let you collect a customer's email address and other properties and add them to Vero.

By default the Vero form generator does not include an id field. This is because forms are typically used on blogs to ask customers for their email addresses directly. In these scenarios it generally doesn't make sense to ask customers for their id as this is usually tracked from inside your web application or mobile applications and is not something customers are aware of.

As a result, by default, forms pass Vero the email field only. Vero will use this as both the email and the id. That said, it is possible to manually add an id field to your form.

Read about the various stitching configurations above to learn how your account will stitch together profiles in scenarios where only an email is provided.

Authors

  • Chris Hexton
    CEO and Co-Founder