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.
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 addresssupport@getvero.com
. The profile record now hasid = 1234
andemail = support@getvero.com
. - As no
id
is provided, the emailsupport@getvero.com
is used as anid
value. This results in a second profile being created withid = support@getvero.com
andemail = 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.