---
title: "Conector de Brevo"
description: "Guía completa de integración con Brevo para sincronizar contactos, emails transaccionales, SMS, campañas de WhatsApp y automatización de marketing con Tajo."
url: https://tajo.io/es/docs/connectors/marketing/brevo/
markdown: https://tajo.io/es/docs/connectors/marketing/brevo.md
lang: es-ES
robots: noindex
---

Solicita acceso anticipado

Escribe tu nombre y dirección de correo de trabajo. Te enviaremos un enlace para confirmar tu solicitud de acceso a Tajo.

# Conector de Brevo

Estado del conector: Activo Verificado. Tajo ejecuta este conector hoy.

| Campo de origen | Campo de destino | Valor de ejemplo |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conecta tu cuenta de Brevo con Tajo para unificar la gestión de contactos, la mensajería transaccional por email, SMS y WhatsApp, y una automatización de marketing integral.

## Resumen

| Propiedad | Valor |
| --- | --- |
| **Plataforma** | Brevo |
| **Categoría** | Marketing |
| **Complejidad de configuración** | Fácil |
| **Integración oficial** | Sí |
| **Datos sincronizados** | Contactos, Campañas, Mensajes transaccionales, Eventos, eCommerce |
| **URL base de la API** | `https://api.brevo.com/v3` |

## Funcionalidades

- **Mensajería multicanal** - Envía email transaccional, SMS y WhatsApp desde una API unificada
- **Gestión de contactos** - Crea, actualiza y segmenta contactos con atributos personalizados
- **Campañas de marketing** - Crea y envía campañas de email de forma programática
- **Seguimiento de eventos** - Registra eventos personalizados y actividad web a través de Brevo Tracker
- **Sincronización eCommerce** - Sincroniza productos, pedidos y datos de carrito para campañas personalizadas
- **Programas de fidelización** - Gestiona suscripciones de fidelización, puntos y datos de miembros
- **Soporte de webhooks** - Notificaciones de eventos en tiempo real para eventos transaccionales, de marketing y de CRM
- **Conversations** - Integración del widget de chat en vivo y gestión programática de mensajes

## Requisitos previos

Antes de empezar, asegúrate de tener:

1. Una cuenta de Brevo (plan Free, Starter, Business o Enterprise)
2. Una clave API generada en Brevo Settings > API Keys
3. Una cuenta de Tajo con acceso a la API
4. Un dominio remitente verificado para el envío de emails

## Autenticación

Brevo admite dos métodos de autenticación:

### Autenticación con clave API (recomendada)

Incluye tu clave API en la cabecera `api-key` con cada petición. Es la mejor opción para integraciones directas y comunicación servidor a servidor.

```bash
curl -X GET "https://api.brevo.com/v3/account" \
  -H "api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

### Autenticación OAuth 2.0

Usa OAuth 2.0 para integraciones privadas dentro de una organización que requieran acceso delegado y permisos específicos por usuario. OAuth proporciona un sistema basado en tokens con periodos de validez definidos.

Disponibilidad de OAuth

OAuth solo está disponible actualmente para integraciones privadas dentro de una organización. Las integraciones OAuth no están pensadas para distribución pública ni para listarse en marketplaces.

## Configuración

### Configuración básica

```yaml
connectors:
  brevo:
    enabled: true
    api_key: "${BREVO_API_KEY}"
    api_version: "v3"

    # Data sync options
    sync:
      contacts: true
      campaigns: true
      transactional: true
      events: true
      ecommerce: true

    # List assignment
    lists:
      all_customers: 5
      newsletter: 6
      buyers: 7
```

### Asignación de campos

Asocia los campos de tus datos con los atributos de contacto de Brevo:

#### Default Mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Dirección de email del contacto (identificador único) |
| `FIRSTNAME` optional | string | Atributo de nombre del contacto |
| `LASTNAME` optional | string | Atributo de apellido del contacto |
| `SMS` optional | string | Número de teléfono para mensajería SMS y WhatsApp |
| `OPT_IN` optional | boolean | Estado del consentimiento de marketing |
| `ORDER_COUNT` optional | integer | Número total de pedidos realizados |
| `TOTAL_REVENUE` optional | number | Ingresos totales generados por el contacto |
| `LOYALTY_POINTS` optional | integer | Saldo actual de puntos del programa de fidelización |

#### Asignación de atributos personalizados

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # Marketing fields
  opt_in: OPT_IN
  signup_source: SIGNUP_SOURCE
  preferred_language: LANGUAGE

  # eCommerce metrics
  orders_count: ORDER_COUNT
  total_spent: TOTAL_REVENUE
  last_order_date: LAST_ORDER_DATE

  # Loyalty fields
  loyalty_tier: VIP_TIER
  loyalty_points: LOYALTY_POINTS
```

## Endpoints de la API

### Endpoints principales

| Método | Endpoint | Descripción |
| --- | --- | --- |
| `POST` | `/v3/smtp/email` | Enviar email transaccional |
| `POST` | `/v3/transactionalSMS/send` | Enviar SMS transaccional |
| `POST` | `/v3/whatsapp/sendMessage` | Enviar WhatsApp transaccional |
| `POST` | `/v3/contacts` | Crear un contacto |
| `PUT` | `/v3/contacts/{email}` | Actualizar un contacto |
| `GET` | `/v3/contacts/{identifier}` | Obtener los detalles del contacto |
| `POST` | `/v3/contacts/import` | Importación masiva de contactos |

### Endpoints eCommerce

| Método | Endpoint | Descripción |
| --- | --- | --- |
| `POST` | `/v3/orders/status` | Crear o actualizar el estado de un pedido |
| `POST` | `/v3/products` | Crear o actualizar productos |
| `POST` | `/v3/categories` | Crear o actualizar categorías de producto |
| `POST` | `/v3/events` | Registrar eventos personalizados |

### Endpoints de campaña

| Método | Endpoint | Descripción |
| --- | --- | --- |
| `POST` | `/v3/emailCampaigns` | Crear una campaña de email |
| `POST` | `/v3/emailCampaigns/{id}/sendNow` | Enviar una campaña de inmediato |
| `GET` | `/v3/emailCampaigns` | Listar todas las campañas de email |
| `GET` | `/v3/smtp/statistics/events` | Obtener estadísticas de eventos de email |

## Eventos

### Eventos transaccionales

| Evento | Disparador | Caso de uso |
| --- | --- | --- |
| `delivered` | Email entregado en la bandeja de entrada | Confirmación de entrega |
| `opened` | Email abierto por el destinatario | Seguimiento de engagement |
| `clicked` | Clic en un enlace del email | Seguimiento de click-through |
| `bounced` | Email rebotado | Higiene de la lista |
| `spam` | Marcado como spam | Monitorización de cumplimiento |
| `unsubscribed` | Contacto dado de baja | Gestión de preferencias |

### Eventos eCommerce

| Evento | Disparador | Caso de uso |
| --- | --- | --- |
| `order_completed` | Pedido realizado correctamente | Flujos post-compra |
| `cart_updated` | Contenido del carrito modificado | Seguimiento de carrito abandonado |
| `cart_deleted` | Carrito vaciado o caducado | Recuperación de carrito |
| `product_viewed` | Página de producto visitada | Abandono de navegación |

## Ejemplos de código

### Inicializar el conector

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Brevo account
await tajo.connectors.connect('brevo', {
  apiKey: process.env.BREVO_API_KEY
});
```

### Enviar email transaccional

```javascript
// Send a transactional email via Brevo
await tajo.brevo.sendTransactionalEmail({
  to: [{ email: 'customer@example.com', name: 'John Doe' }],
  templateId: 12,
  params: {
    ORDER_ID: '12345',
    ORDER_TOTAL: '$59.99',
    DELIVERY_DATE: '2024-02-15'
  }
});
```

### Sincronizar contactos

```javascript
// Bulk import contacts to Brevo
await tajo.connectors.sync('brevo', {
  type: 'full',
  resources: ['contacts'],
  options: {
    listIds: [5, 6],
    updateExisting: true,
    emptyContactsAttributes: false
  }
});

// Check sync status
const status = await tajo.connectors.status('brevo');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 25400,
//   campaignsSent: 142,
//   eventsTracked: 89320
// }
```

### Registrar eventos personalizados

```javascript
// Track a custom event for a contact
await tajo.brevo.trackEvent({
  email: 'customer@example.com',
  event: 'product_purchased',
  eventdata: {
    id: 'txn_98765',
    data: {
      product_name: 'Premium Widget',
      price: 49.99,
      currency: 'USD'
    }
  }
});
```

## Límites de velocidad

Brevo aplica límites de velocidad en tres niveles según tu plan:

| Endpoint | Free/Starter | Professional | Enterprise |
| --- | --- | --- | --- |
| `POST /v3/smtp/email` | 1.000 RPS | 2.000 RPS | 6.000 RPS |
| `POST /v3/transactionalSMS/send` | 150 RPS | 200 RPS | 250 RPS |
| `POST /v3/events` | 10 RPS | 20 RPS | 60 RPS |
| `/v3/contacts/*` | 10 RPS | 20 RPS | 60 RPS |
| Resto de endpoints | 100 RPH | 200 RPH | 600 RPH |

Respuesta ante límite de velocidad

Cuando superas un límite de velocidad, la API devuelve un código `429 Too Many Requests`. Monitoriza las cabeceras de límite en las respuestas para controlar tu uso.

## Resolución de problemas

### Problemas habituales

| Problema | Causa | Solución |
| --- | --- | --- |
| 401 Unauthorized | Clave API no válida | Regenera la clave API en Brevo Settings |
| Contacto no creado | Falta el campo email | Asegúrate de proporcionar email para todos los contactos |
| Email no entregado | Dominio remitente sin verificar | Verifica el dominio en Brevo Senders |
| Webhook no recibido | URL incorrecta o error del servidor | Comprueba la accesibilidad de la URL y los logs |
| SMS no enviado | Formato de teléfono no válido | Usa formato internacional con prefijo de país |

### Modo depuración

Activa el registro detallado:

```yaml
connectors:
  brevo:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Probar la conexión

```bash
tajo connectors test brevo
# ✓ API connection successful
# ✓ Contacts API accessible
# ✓ Transactional email ready
# ✓ SMS sending configured
# ✓ Webhooks registered
```

## Buenas prácticas

1. **Rota las claves API** - Rota las claves API periódicamente por seguridad
2. **Verifica los webhooks** - Valida las firmas de webhook con autenticación usuario/contraseña
3. **Agrupa las importaciones de contactos** - Usa la importación masiva para grandes conjuntos de datos en vez de llamadas individuales
4. **Monitoriza los límites de velocidad** - Consulta las cabeceras de límite para evitar errores 429
5. **Usa el seguimiento de eventos** - Implementa Brevo Tracker para tener datos completos del comportamiento del cliente
6. **Configura la autenticación del remitente** - Configura SPF, DKIM y DMARC para optimizar la entregabilidad

## Seguridad

- **Autenticación con clave API** - Acceso basado en token secreto mediante la cabecera `api-key`
- **OAuth 2.0** - Acceso delegado basado en tokens para integraciones privadas
- **Verificación de webhooks** - Autenticación con usuario y contraseña para llamadas de webhook seguras
- **Cifrado TLS** - Toda la comunicación con la API se cifra en tránsito
- **Lista blanca de IPs** - Restricciones de IP opcionales disponibles en planes Enterprise

## Recursos relacionados

- [Documentación de la API de Brevo](https://developers.brevo.com/docs/getting-started)
- [Guía de autenticación de Brevo](https://developers.brevo.com/docs/authentication-schemes)
- [Límites de velocidad de Brevo](https://developers.brevo.com/docs/api-limits)
- [Conector de Shopify](https://tajo.io/es/docs/connectors/ecommerce/shopify)
- [Skill de sincronización de clientes](https://tajo.io/es/docs/skills/data-sync/customer-sync)
- [API de contactos de Brevo](https://tajo.io/es/docs/contact-management)
