Conector de Brevo
Conector de Brevo
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:
- Una cuenta de Brevo (plan Free, Starter, Business o Enterprise)
- Una clave API generada en Brevo Settings > API Keys
- Una cuenta de Tajo con acceso a la API
- 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.
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
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: 7Asignació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
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_POINTSEndpoints 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
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Brevo accountawait tajo.connectors.connect('brevo', { apiKey: process.env.BREVO_API_KEY});Enviar email transaccional
// Send a transactional email via Brevoawait tajo.brevo.sendTransactionalEmail({ templateId: 12, params: { ORDER_ID: '12345', ORDER_TOTAL: '$59.99', DELIVERY_DATE: '2024-02-15' }});Sincronizar contactos
// Bulk import contacts to Brevoawait tajo.connectors.sync('brevo', { type: 'full', resources: ['contacts'], options: { listIds: [5, 6], updateExisting: true, emptyContactsAttributes: false }});
// Check sync statusconst 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
// Track a custom event for a contactawait tajo.brevo.trackEvent({ 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:
connectors: brevo: debug: true log_level: verbose log_webhooks: trueProbar la conexión
tajo connectors test brevo# ✓ API connection successful# ✓ Contacts API accessible# ✓ Transactional email ready# ✓ SMS sending configured# ✓ Webhooks registeredBuenas prácticas
- Rota las claves API - Rota las claves API periódicamente por seguridad
- Verifica los webhooks - Valida las firmas de webhook con autenticación usuario/contraseña
- Agrupa las importaciones de contactos - Usa la importación masiva para grandes conjuntos de datos en vez de llamadas individuales
- Monitoriza los límites de velocidad - Consulta las cabeceras de límite para evitar errores 429
- Usa el seguimiento de eventos - Implementa Brevo Tracker para tener datos completos del comportamiento del cliente
- 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