---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/segment/connections/destinations/catalog/vero#article
headline: Vero Destination
description: Connect Segment to Vero to send Identify, Track, Group, and Alias data for behavior-based targeted email, including tags and email event data.
url: https://www.twilio.com/docs/segment/connections/destinations/catalog/vero
inLanguage: en
dateModified: 2026-06-09T16:30:18.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Vero Destination

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Alias](/docs/segment/connections/spec/alias), [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Vero** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)
* This integration is **partner owned.** Please reach out to the partner's support for any issues.

### Components

* Browser
* Server

## Connection Modes

[Learn more about connection modes.](/docs/segment/connections/destinations/#connection-modes)

### Device-Mode

* web: yes
* mobile: no
* server: no

### Cloud-Mode

* web: yes
* mobile: yes
* server: yes

Vero helps you send targeted emails to customers based on their behavior. Segment's Vero destination code is open source on GitHub: [JavaScript](https://github.com/segmentio/analytics.js-integrations/tree/master/integrations/vero) and [Server](https://github.com/segmentio/integration-vero).

## Getting Started

When you enable Vero in the Segment web app, your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading Vero's `m.js` onto your page. Once Segment's CDN loads `m.js`, remove Vero's snippet from your page.

Vero only records custom events and custom user data, so no events or users appear in Vero until you start using the API outlined below.

## Identify

### Client Side

When you call [Identify](/docs/segment/connections/spec/identify/) on analytics.js, Segment augments `traits` to have `traits.id` set to the `userId`, and then call Vero's `user` with the augmented traits object. You should provide both a `traits.email` and a `userId` for Vero to work best.

If no `email` is attached, the user is created in Vero but cannot be emailed. If you omit the `userId`, Vero uses the email as the ID, which is not recommended. Check out the [Vero docs](https://help.getvero.com/workflows/articles/creating-and-matching-vero-customer-ids/) for more information.

A `userId` is a required value for all types of calls. Be sure you call Identify with a `userId` for subsequent `track` calls to populate into Vero correctly. For server side calls, you will have to manually pass in the `userId` at the top level.

### Server Side

When you call [Identify](/docs/segment/connections/spec/identify/) from one of Segment's server-side languages, Segment calls Vero's REST API and update the traits for the customer with that `userId`. If your `userId` is an email, Segment sets the trait `email` as your `userId` in the update call.

## Track

When you call [Track](/docs/segment/connections/spec/track/), Segment sends the event to Vero with the event `name` and `properties` you provide. Events will be matched to the current user.

You can also unsubscribe users by sending a Track event, passing in the user's ID as a `property`, like so:

```javascript title="Unsubscribe a user with a Track call"
analytics.track('Unsubscribe', {
  id: '12345'
});
```

Note: If you'd like to explicitly specify a user's email with track events that is not an event metadata, you can send that under `context.traits.email`.

## Sending Data from Vero

Vero supports sending [email events](/docs/segment/connections/spec/email) to other tools on the Segment platform. These events will be sent as Track calls to the other destinations you've turned on.

To enable this feature,

1. Log into Vero and go to Settings
2. Then go to [Integrations](https://app.getvero.com/settings/integrations?integrations=all)
3. Hit 'view' next to the Segment integration
4. Enter in your Segment write key at the bottom.

![Enter Segment writeKey for Vero to send email event data.](https://docs-resources.prod.twilio.com/f9be13a881338b3a5950fa65559de3dbb0a9f2711a3d0e1493623d8b34b1731e.png)

## Group

When you call [Group](/docs/segment/connections/spec/group/), the `traits` included in the call will be set to the current user's **Group** property in Vero.

## Alias

Segment's [Alias](/docs/segment/connections/spec/alias/) method can be used from your server to "re-identify" an existing user identity to a new one.

Most of the time this happens when you identify a visitor by their email address after they opt in, then later re-identify with a database ID when they become registered users.

To connect the two identities you'll need to [Alias](/docs/segment/connections/spec/alias/) their current identity to their new one.

Here's a Python example of using [Alias](/docs/segment/connections/spec/alias/) to update the identity from an email address to a database ID:

```python title="Alias call example"
analytics.alias('example@example.com', '8765309')
```

## Features

### Tags

The destination is capable of both adding and removing tags in Vero for a given user. Because `tags` is not a common property of events, this functionality is invoked using a [destination-specific option](/docs/segment/connections/sources/catalog/libraries/website/javascript/#managing-data-flow-with-the-integrations-object).

To start using this feature, pass an object called `tags` with the following properties:

| Field    |            | Type   | Description                                                                                                                     |
| -------- | ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `id`     | *optional* | String | The user Id to associate tags with. If this is not specified, the destination will simply use the userId from the event itself. |
| `action` | *required* | String | Must be either 'add' or 'remove'. Indicates whether you would like to add or remove the tags for the given user.                |
| `values` | *required* | Array  | An array of strings representing the tags to either add or remove.                                                              |

Here is an example using Segment's Node.js library:

```javascript title="Add tags to a user with the Node.js library"
analytics.identify('324LKJF', {
    email: 'example@example.com'
}, {
    integrations: {
        Vero: {
            tags: {
                id: '235FAG', // This is optional! If not defined, we default to the event's userId (ie: 324LKJF)
                action: 'add',
                values: ['warriors', 'giants', 'niners']
            }
        }
    }
})
```

## Engage

You can send computed traits and audiences generated using [Engage](/docs/segment/engage) to this destination as a **user property**. To learn more about Engage, schedule a [demo](https://segment.com/contact/demo).

For user-property destinations, an [identify](/docs/segment/connections/spec/identify/) call is sent to the destination for each user being added and removed. The property name is the snake\_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field      | Description                                                                                                                                                                                 | Required | Type   |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------ |
| API Key    | You can find your API key in your \[Vero Settings]\(https://app.getvero.com/settings/project).                                                                                              | Yes      | string |
| Auth Token | Your auth token allows you to send data to Vero through our server-side libraries. You can find your \`auth\_token\` on \<a href="http://www.getvero.com/account">Vero's account page\</a>. | Yes      | string |
