---
title: "Conector de ActiveCampaign"
description: "Guía completa de integración con ActiveCampaign para sincronizar contactos, negocios, automatizaciones y eventos de engagement con Brevo a través de Tajo."
url: https://tajo.io/es/docs/connectors/marketing/activecampaign/
markdown: https://tajo.io/es/docs/connectors/marketing/activecampaign.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 ActiveCampaign

Estado del conector: Planificado Aún no está construido. Tajo no 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 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** | No |
| **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:

1. Una cuenta de ActiveCampaign (Lite, Plus, Professional o Enterprise)
2. La URL y la clave API desde Settings > Developer
3. Una cuenta de Brevo con acceso a la API
4. 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.

```bash
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

```yaml
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": 52
```

### Asignació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

```yaml
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_TIER
```

## Endpoints 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

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

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

// Connect ActiveCampaign
await tajo.connectors.connect('activecampaign', {
  apiUrl: process.env.AC_API_URL,
  apiKey: process.env.AC_API_KEY
});
```

### Migrar contactos a Brevo

```javascript
// Full contact migration with custom fields and tags
await tajo.connectors.sync('activecampaign', {
  type: 'full',
  resources: ['contacts', 'deals', 'events'],
  options: {
    includeTags: true,
    includeCustomFields: true,
    includeScores: true,
    includeListMemberships: true
  }
});

// Check sync status
const 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

```javascript
// Forward ActiveCampaign events to Brevo
await tajo.activecampaign.trackEvent({
  email: 'customer@example.com',
  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:

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

### Probar la conexión

```bash
tajo connectors test activecampaign
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Deals readable
# ✓ Automations accessible
# ✓ Event tracking enabled
```

## Buenas prácticas

1. **Usa el endpoint de sincronización de contactos** - Utiliza `/contact/sync` para operaciones upsert en vez de crear/actualizar por separado
2. **Asocia los campos por ID** - Los IDs de campos personalizados son estables; las etiquetas pueden cambiar
3. **Preserva la pertenencia a listas** - Migra las asignaciones a listas junto con los datos del contacto
4. **Sincroniza los pipelines de negocio** - Asocia las etapas del pipeline para un reporting de CRM coherente
5. **Implementa el seguimiento de eventos** - Usa el site tracking para disponer de datos conductuales en Brevo
6. **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

## Recursos relacionados

- [Documentación de la API de ActiveCampaign](https://developers.activecampaign.com/reference/overview)
- [Guía de webhooks de ActiveCampaign](https://developers.activecampaign.com/page/webhooks)
- [Conector de Mailchimp](https://tajo.io/es/docs/connectors/marketing/mailchimp)
- [Conector de Brevo](https://tajo.io/es/docs/connectors/marketing/brevo)
- [Skill de sincronización de clientes](https://tajo.io/es/docs/skills/data-sync/customer-sync)
