<!-- BusyBot node reference — https://busybot.net/tools/vero/ -->

> Node: Vero (`vero`) · Action · v1
> Category: Communication · Credentials: Vero API (`veroApi`)
> Updated: 2026-08-16

# Vero

> Manage users and track events in Vero.

## Overview

Vero is a customer engagement and email marketing platform that lets you track user behaviour and send personalised emails. This tool supports two resources: User (create/update, alias, unsubscribe, resubscribe, delete, add tags, remove tags) and Event (track). The Vero API uses form-encoded requests with an auth_token field for authentication. All operations are write-only (no list/get endpoints). The API base URL is https://api.getvero.com/api/v2.

**Category:** Communication  
**Tool Name:** `vero`  
**Version:** 1

**Appearance:** Icon: `lucide-Mail` | Color: `#FD6869`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Vero API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/vero-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| User | `user` |
| Event | `event` |

`user` covers creating, updating and managing the subscription status of your users. `event` tracks events based on actions your customers take in real time.

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Add Tags | `addTags` | Adds a tag to a users profile |
| Alias | `alias` | Change a users identifier |
| Create or Update | `create` | Create or update a user profile |
| Delete | `delete` | Delete a user |
| Re-Subscribe | `resubscribe` | Resubscribe a user |
| Remove Tags | `removeTags` | Removes a tag from a users profile |
| Unsubscribe | `unsubscribe` | Unsubscribe a user |
| Track | `track` | Track an event for a specific customer |

Every operation except `track` belongs to the User resource; `track` is the only Event operation.

### Parameters

#### User: Create or Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the customer. Supports expressions like {{ $json.userId }}. |
| JSON Parameters | `boolean` | No | `false` | Whether to provide custom data attributes as raw JSON instead of key-value pairs. |
| Additional Fields | `collection` | No | `{}` | Additional fields to set on the user. |
| — Email | `string` | No | — | Email address of the user. |
| Data (`dataAttributesUi`) | `fixedCollection` | No | `{}` | Key value pairs that represent the custom user properties you want to update. _(shown when JSON Parameters is `false`)_ |
| — Key | `string` | No | — | Name of the property to set. |
| — Value | `string` | No | — | Value of the property to set. |
| Data (`dataAttributesJson`) | `json` | No | — | Key value pairs that represent the custom user properties you want to update (as JSON). _(shown when JSON Parameters is `true`)_ |

#### User: Alias

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The old unique identifier of the user. Supports expressions. |
| New ID | `string` | Yes | — | The new unique identifier of the user. Supports expressions. |

#### User: Unsubscribe

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the user. Supports expressions. |

#### User: Re-Subscribe

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the user. Supports expressions. |

#### User: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the user. Supports expressions. |

#### User: Add Tags

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the user. Supports expressions. |
| Tags | `string` | Yes | — | Tags to add, separated by commas. |

#### User: Remove Tags

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the user. Supports expressions. |
| Tags | `string` | Yes | — | Tags to remove, separated by commas. |

#### Event: Track

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The unique identifier of the customer. Supports expressions. |
| Email | `string` | Yes | — | The email address of the customer. Supports expressions. |
| Event Name | `string` | Yes | — | The name of the event to track. Supports expressions. |
| JSON Parameters | `boolean` | No | `false` | Whether to provide data and extras as raw JSON instead of key-value pairs. |
| Data (`dataAttributesUi`) | `fixedCollection` | No | `{}` | Key value pairs that represent any properties you want to track with this event. _(shown when JSON Parameters is `false`)_ |
| — Key | `string` | No | — | Name of the property to set. |
| — Value | `string` | No | — | Value of the property to set. |
| Extra (`extraAttributesUi`) | `fixedCollection` | No | `{}` | Key value pairs that represent reserved, Vero-specific operators. Refer to the note on "deduplication" in Vero docs. _(shown when JSON Parameters is `false`)_ |
| — Key | `string` | No | — | Name of the property to set. |
| — Value | `string` | No | — | Value of the property to set. |
| Data (`dataAttributesJson`) | `json` | No | — | Key value pairs that represent the custom properties you want to track with this event (as JSON). _(shown when JSON Parameters is `true`)_ |
| Extra (`extraAttributesJson`) | `json` | No | — | Key value pairs that represent reserved, Vero-specific operators (as JSON). Refer to Vero docs on deduplication. _(shown when JSON Parameters is `true`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item per input item — no operation fans out. The Vero API response is merged onto the top level of the item JSON; anything already on the item passes through, and binary data is forwarded unchanged.

Vero's endpoints are write-only and most of them acknowledge a successful call with an empty body, so the output item is often unchanged from the input. When Vero replies with something that is not JSON, the raw text lands on the item as `rawResponse`. A non-2xx reply fails the item instead, carrying Vero's status code and response body in the error.

## Usage Examples

- Create a user profile in Vero with custom attributes
- Track a purchase event for a customer
- Add tags to segment users
- Unsubscribe a user from Vero emails
- Change a user identifier with alias
- Remove tags from a user profile
- Resubscribe a previously unsubscribed user
- Delete a user from Vero

## Example Configuration

Create or update a user with key-value custom properties:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "user",
    "operation": "create",
    "id": "user123",
    "jsonParameters": false,
    "additionalFields": {
      "email": "user@example.com"
    },
    "dataAttributesUi": {
      "dataAttributesValues": [
        { "key": "firstName", "value": "John" },
        { "key": "lastName", "value": "Doe" }
      ]
    }
  }
}
```

Create or update the same user with raw JSON properties:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "user",
    "operation": "create",
    "id": "user123",
    "jsonParameters": true,
    "additionalFields": {
      "email": "user@example.com"
    },
    "dataAttributesJson": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"plan\":\"premium\"}"
  }
}
```

Track a purchase event with key-value properties and a deduplication operator:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "event",
    "operation": "track",
    "id": "user123",
    "email": "user@example.com",
    "eventName": "purchase_completed",
    "jsonParameters": false,
    "dataAttributesUi": {
      "dataAttributesValues": [
        { "key": "amount", "value": "99.99" },
        { "key": "currency", "value": "USD" }
      ]
    },
    "extraAttributesUi": {
      "extraAttributesValues": [
        { "key": "deduplicate", "value": "true" }
      ]
    }
  }
}
```

Track the same event with raw JSON, taking values from the item:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "event",
    "operation": "track",
    "id": "{{ $json.userId }}",
    "email": "{{ $json.email }}",
    "eventName": "purchase_completed",
    "jsonParameters": true,
    "dataAttributesJson": "{\"amount\":99.99,\"currency\":\"USD\",\"product_id\":\"prod_456\"}",
    "extraAttributesJson": "{\"deduplicate\":true}"
  }
}
```

Tag a user for segmentation:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "user",
    "operation": "addTags",
    "id": "user123",
    "tags": "premium,active,subscriber"
  }
}
```

Move a user to a new identifier:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "user",
    "operation": "alias",
    "id": "old_user_id",
    "newId": "new_user_id"
  }
}
```

Unsubscribe a user:

```json
{
  "type": "vero",
  "parameters": {
    "resource": "user",
    "operation": "unsubscribe",
    "id": "user123"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Vero user profiles (create, alias, subscribe, tag) and track customer events for email marketing automation.

### Common Patterns

**User lifecycle management**

1. Create a new user with profile data
2. Add tags based on user behavior
3. Track key events like purchases
4. Update subscription status as needed

**Event tracking with deduplication**

For critical events that should not be processed twice, set the Vero-specific operators through the Extra field — `deduplicate` is the one Vero documents for this.

**Batch operations**

Use Max Concurrency to control how many items are sent at once when a single node run handles a large list.