Identify users

Legacy Tracker Documentation

For the legacy tracker doc, check our guide here.

Identify a user through the identify() function

Use the Brevo.identify() method to identify users who visited your website. It works as follows:

  • Once installed, the Brevo tracker adds a cookie for each of your visitors.
  • When Brevo.identify() is called, Brevo associates this cookie with an email.
  • If Brevo.identify() is called for a contact that already exists, Brevo updates its contact attributes based on the payload of the call.

To identify your visitor, call the Brevo.identify function like this:

1Brevo.push(function () {
2 Brevo.identify({
3 identifiers: {
4 email_id: "email" /*required*/
5 },
6 attributes: { /*optional*/
7 FIRSTNAME: "Jane",
8 LASTNAME: "Doe",
9 AGE: 32,
10 GENDER: "FEMALE"
11 },
12 });
13});

The parameters are defined below:

AttributeDatatypeDescriptionValue
email_idStringEmail address of the website visitor. Required.visitor@email.com
attributesJSON objectJSON object holding your visitor’s contact attribute values. Optional.Any of your visitor’s contact attributes. See example below.

When sending attributes:

  • If the contact does not exist yet, Brevo creates it with the attributes you send.
  • If the contact already exists, Brevo updates it.
  • If an attribute in the call does not exist in your contact database, Brevo ignores it.
Properties and contact attributes

Contact attributes and the data you pass in the properties object overlap.

If the contact exists in Brevo, attributes matching Properties are updated each time Brevo.identify() is called.

properties that do not correspond to existing contact attributes can only be used in your automation workflows, unless you add them as attributes from your Contacts section or via the Brevo API.

Example

1var email = "John.Doe@email.com"; /*required*/
2
3var properties = { /*optional*/
4 FIRSTNAME : "John",
5 LASTNAME : "Doe",
6 id : "10001",
7 plan : "diamond",
8};
9Brevo.push([
10 "identify", {
11 identifiers : {
12 email_id : email
13 },
14 attributes : properties
15 }
16]);

Passing an external identifier (EXT_ID)

If you already track your users by a stable external identifier — for example a CRM ID — you can pass it to Brevo.identify() as an attribute using the reserved key EXT_ID. Brevo stores it on the contact and uses it in its contact resolution logic alongside email_id.

1Brevo.push(function () {
2 Brevo.identify({
3 identifiers: {
4 email_id: "jane@example.com"
5 },
6 attributes: {
7 EXT_ID: "user_12345",
8 FIRSTNAME: "Jane",
9 LASTNAME: "Doe"
10 }
11 });
12});
  • email_id in identifiers is required by Brevo.identify().
  • EXT_ID is unique per Brevo account: two contacts in the same account cannot share the same EXT_ID.
  • The same pattern applies to SMS, WHATSAPP, and LANDLINE_NUMBER — pass them under attributes.