Conector de ActiveCampaign
Conecta tu cuenta de ActiveCampaign con Brevo a través de Tajo para una migración completa de contactos, sincronización del pipeline de negocios, mapeo de automatizaciones y datos de marketing unificados en ambas plataformas.
Resumen
| Propiedad | Valor |
|---|---|
| Plataforma | ActiveCampaign |
| Categoría | Marketing |
| Complejidad de configuración | Media |
| Integración oficial | Sí |
| Datos sincronizados | Contactos, Negocios, Automatizaciones, Eventos |
| URL base de la API | https://{account}.api-us1.com/api/3 |
Funcionalidades
- Migración de contactos - Migra contactos con campos personalizados, etiquetas y pertenencia a listas
- Sincronización del pipeline de negocios - Sincroniza etapas, valores y propietarios de negocios para el seguimiento de ingresos
- Mapeo de automatizaciones - Asocia automatizaciones de ActiveCampaign con triggers de flujos de Brevo
- Seguimiento de eventos - Sincroniza el site tracking y los eventos personalizados para segmentación conductual
- Sincronización de listas y etiquetas - Replica estructuras de listas y segmentos basados en etiquetas en Brevo
- Integración eCommerce - Sincroniza los datos Deep Data (pedidos, clientes, carritos) con Brevo
- Sincronización de objetos personalizados - Asocia objetos personalizados de ActiveCampaign con atributos de Brevo
- Sincronización de scoring - Transfiere los scores de leads y contactos a atributos de Brevo
Requisitos previos
Antes de empezar, asegúrate de tener:
- Una cuenta de ActiveCampaign (Lite, Plus, Professional o Enterprise)
- La URL y la clave API desde Settings > Developer
- Una cuenta de Brevo con acceso a la API
- Una cuenta de Tajo
Autenticación
Autenticación con clave API
ActiveCampaign usa una clave API enviada como cabecera o como parámetro de consulta.
curl "https://{account}.api-us1.com/api/3/contacts" \ -H "Api-Token: YOUR_API_KEY" \ -H "Content-Type: application/json"Encuentra tu URL y tu clave API en ActiveCampaign Settings > Developer.
URL de la API
Tu URL de la API es única para tu cuenta (por ejemplo, https://yourcompany.api-us1.com). Usa siempre esta URL, no la URL del panel de control.
Configuración
Configuración básica
connectors: activecampaign: enabled: true api_url: "https://yourcompany.api-us1.com" api_key: "${AC_API_KEY}"
# Data sync options sync: contacts: true deals: true automations: true events: true ecommerce: true
# List mapping to Brevo list_mapping: "Main List": 50 "Newsletter": 51 "Customers": 52Asignación de campos
Asocia los campos de ActiveCampaign con los atributos de contacto de Brevo:
Default Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Email del contacto (identificador único) |
firstName optional | string | Se asigna al atributo FIRSTNAME |
lastName optional | string | Se asigna al atributo LASTNAME |
phone optional | string | Se asigna al atributo SMS |
tags optional | array | Etiquetas del contacto para segmentación |
score optional | integer | Score de engagement del contacto |
deals optional | array | Registros de negocios asociados |
fieldValues optional | array | Valores de campos personalizados |
Asignación de campos personalizados
field_mapping: # Standard fields email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Engagement fields score: LEAD_SCORE rating: ENGAGEMENT_RATING
# Deal fields deals.value: DEAL_VALUE deals.stage: DEAL_STAGE deals.owner: DEAL_OWNER
# Custom fields fieldValues.company: COMPANY_NAME fieldValues.industry: INDUSTRY fieldValues.plan_tier: PLAN_TIEREndpoints de la API
Contactos
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/3/contacts | Listar todos los contactos |
POST | /api/3/contacts | Crear un contacto |
PUT | /api/3/contacts/{id} | Actualizar un contacto |
GET | /api/3/contacts/{id} | Obtener un contacto |
POST | /api/3/contact/sync | Sincronizar un contacto (crear o actualizar) |
POST | /api/3/import/bulk_import | Importación masiva de contactos |
Negocios
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/3/deals | Listar todos los negocios |
POST | /api/3/deals | Crear un negocio |
PUT | /api/3/deals/{id} | Actualizar un negocio |
GET | /api/3/dealStages | Listar todas las etapas |
GET | /api/3/dealPipelines | Listar todos los pipelines |
Automatizaciones
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/3/automations | Listar automatizaciones |
GET | /api/3/automations/{id} | Obtener una automatización |
POST | /api/3/contactAutomations | Añadir un contacto a una automatización |
eCommerce (Deep Data)
| Método | Endpoint | Descripción |
|---|---|---|
POST | /api/3/ecomOrders | Crear un pedido |
GET | /api/3/ecomOrders | Listar pedidos |
POST | /api/3/ecomCustomers | Crear un cliente |
GET | /api/3/ecomCustomers | Listar clientes |
Seguimiento de eventos
| Método | Endpoint | Descripción |
|---|---|---|
POST | /api/3/tracking/event | Registrar un evento personalizado |
GET | /api/3/eventTrackingEvents | Listar todos los nombres de evento |
POST | /api/3/eventTrackingEvents | Crear un nombre de evento |
Eventos
Eventos de contacto
| Evento | Disparador | Caso de uso |
|---|---|---|
contact_add | Nuevo contacto creado | Flujo de bienvenida |
contact_update | Datos del contacto modificados | Sincronización de atributos |
contact_tag_added | Etiqueta asignada | Actualización de segmento |
contact_tag_removed | Etiqueta eliminada | Limpieza de segmento |
Eventos de negocio
| Evento | Disparador | Caso de uso |
|---|---|---|
deal_add | Nuevo negocio creado | Notificación al equipo de ventas |
deal_update | Etapa del negocio modificada | Automatización del pipeline |
deal_tasktype_add | Tarea añadida al negocio | Seguimiento de actividad |
Eventos de automatización
| Evento | Disparador | Caso de uso |
|---|---|---|
automation_contact_add | El contacto entra en la automatización | Seguimiento de flujos |
automation_contact_complete | El contacto completa la automatización | Disparador del siguiente paso |
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 ActiveCampaignawait tajo.connectors.connect('activecampaign', { apiUrl: process.env.AC_API_URL, apiKey: process.env.AC_API_KEY});Migrar contactos a Brevo
// Full contact migration with custom fields and tagsawait tajo.connectors.sync('activecampaign', { type: 'full', resources: ['contacts', 'deals', 'events'], options: { includeTags: true, includeCustomFields: true, includeScores: true, includeListMemberships: true }});
// Check sync statusconst status = await tajo.connectors.status('activecampaign');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 28000,// dealsSynced: 4500,// eventsSynced: 120000// }Registrar eventos personalizados
// Forward ActiveCampaign events to Brevoawait tajo.activecampaign.trackEvent({ event: 'product_demo_requested', eventData: { product: 'Enterprise Plan', source: 'website' }});Límites de velocidad
Límites de velocidad de la API de ActiveCampaign:
| Plan | Límite de velocidad | Detalles |
|---|---|---|
| Lite | 5 peticiones/segundo | Por cuenta |
| Plus | 10 peticiones/segundo | Por cuenta |
| Professional | 10 peticiones/segundo | Por cuenta |
| Enterprise | 20 peticiones/segundo | Por cuenta |
Límites adicionales:
- Importación masiva: 250 contactos por lote
- Frecuencia de importación masiva: 1 importación simultánea
- Seguimiento de eventos: 2 peticiones/segundo
- Límite diario: Sin límite diario explícito (solo por velocidad)
Gestión de límites de velocidad
ActiveCampaign devuelve 429 Too Many Requests cuando se superan los límites. Implementa lógica de reintento usando el valor de la cabecera Retry-After.
Resolución de problemas
Problemas habituales
| Problema | Causa | Solución |
|---|---|---|
| 403 Forbidden | Clave o URL no válida | Verifica la URL y la clave API en AC Settings > Developer |
| Contacto no sincronizado | Gestión de email duplicado | Usa el endpoint /contact/sync para obtener comportamiento upsert |
| Campo personalizado vacío | ID de campo incorrecto | Asocia los campos por ID, no por etiqueta (las etiquetas pueden cambiar) |
| Webhook no recibido | Webhook no configurado | Configura webhooks en AC Settings > Developer > Webhooks |
| Negocio no creado | Faltan campos obligatorios | Asegúrate de indicar pipeline, etapa y contacto |
Modo depuración
Activa el registro detallado:
connectors: activecampaign: debug: true log_level: verbose log_webhooks: trueProbar la conexión
tajo connectors test activecampaign# ✓ API connection successful# ✓ Contacts readable# ✓ Deals readable# ✓ Automations accessible# ✓ Event tracking enabledBuenas prácticas
- Usa el endpoint de sincronización de contactos - Utiliza
/contact/syncpara operaciones upsert en vez de crear/actualizar por separado - Asocia los campos por ID - Los IDs de campos personalizados son estables; las etiquetas pueden cambiar
- Preserva la pertenencia a listas - Migra las asignaciones a listas junto con los datos del contacto
- Sincroniza los pipelines de negocio - Asocia las etapas del pipeline para un reporting de CRM coherente
- Implementa el seguimiento de eventos - Usa el site tracking para disponer de datos conductuales en Brevo
- Importaciones por lotes - Usa la importación masiva para conjuntos de datos de más de 1.000 contactos
Seguridad
- Autenticación con clave API - Acceso basado en token mediante la cabecera
Api-Token - Verificación de webhooks - Valida los rangos de IP de origen de los webhooks
- Cifrado TLS - Toda la comunicación con la API se cifra vía HTTPS
- Acceso a nivel de cuenta - La clave API da acceso completo a la cuenta; úsala con cuidado
- Restricciones por IP - Disponibles en los planes Enterprise