---
title: "Conector de Iterable"
description: "Guía completa de integración con Iterable para sincronizar usuarios, campañas, experimentos y eventos de engagement con Brevo a través de Tajo."
url: https://tajo.io/es/docs/connectors/marketing/iterable/
markdown: https://tajo.io/es/docs/connectors/marketing/iterable.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 Iterable

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 plataforma de growth marketing Iterable con Brevo para unificar el engagement del cliente, coordinar campañas multicanal y consolidar la analítica entre herramientas de marketing.

## Resumen

| Propiedad | Valor |
| --- | --- |
| **Plataforma** | Iterable |
| **Categoría** | Marketing |
| **Complejidad de configuración** | Moderada |
| **Integración oficial** | No |
| **Datos sincronizados** | Usuarios, Eventos, Campañas, Catálogos |
| **Tipo de API** | REST API |
| **Autenticación** | Clave API |
| **URL base** | `https://api.iterable.com/api/` |

## Funcionalidades

- **Sincronización de perfiles de usuario** - Sincronización bidireccional de datos de usuario con contactos de Brevo
- **Analítica de campañas** - Sincroniza métricas de envío, apertura y clic para un reporting unificado
- **Datos de experimentos** - Registra los resultados de tests A/B y las variantes ganadoras
- **Sincronización de catálogos** - Sincroniza catálogos de productos y de contenido entre plataformas
- **Eventos de workflow** - Reenvía eventos de disparo y finalización de workflows a Brevo
- **Sincronización de preferencias de canal** - Replica las preferencias de comunicación del usuario en Brevo

## Requisitos previos

Antes de empezar, asegúrate de tener:

1. Una cuenta de Iterable con acceso a la API
2. Una clave API de Iterable con los permisos adecuados
3. El project ID de Iterable
4. Una cuenta de Brevo con acceso a la API
5. Una cuenta de Tajo con suscripción activa

## Autenticación

Iterable usa autenticación con clave API pasada en la cabecera de la petición.

### Crear una clave API

1. Inicia sesión en el panel de Iterable
2. Ve a **Integrations** > **API Keys**
3. Haz clic en **New API Key**
4. Ponle el nombre “Tajo Integration”
5. Selecciona el tipo de clave **Server-side**
6. Concede los siguientes permisos:

```
Users: Read/Write
Events: Read/Write
Campaigns: Read
Lists: Read/Write
Catalogs: Read
Experiments: Read
Workflows: Read
Templates: Read
Channels: Read
Message Types: Read
```

El tipo de clave importa

Usa siempre una clave API **Server-side** para la integración con Tajo. Las claves para móvil o JavaScript tienen permisos restringidos y no pueden acceder a todos los endpoints necesarios.

### Conectar con Tajo

```bash
tajo connectors install iterable \
  --api-key $ITERABLE_API_KEY
```

## Configuración

### Configuración básica

```yaml
connectors:
  iterable:
    enabled: true

    sync:
      users: true
      events: true
      campaigns: true
      catalogs: true
      experiments: true

    lists:
      all_users: 16
      engaged_users: 17
      inactive_users: 18
```

### Asignación de campos

Asocia los campos de usuario de Iterable con los atributos de contacto de Brevo:

```yaml
field_mapping:
  # Standard fields
  userId: ITERABLE_ID
  email: email
  firstName: FIRSTNAME
  lastName: LASTNAME
  phoneNumber: SMS

  # Engagement data
  signupDate: SIGNUP_DATE
  totalPurchases: TOTAL_PURCHASES
  lastPurchaseDate: LAST_PURCHASE

  # Custom fields
  plan_name: PLAN_NAME
  company_size: COMPANY_SIZE
  preferred_channel: PREFERRED_CHANNEL
  lifecycle_stage: LIFECYCLE_STAGE
```

### Configuración de eventos

```yaml
event_mapping:
  # Iterable event -> Brevo event
  purchase: ORDER_PLACED
  addToCart: CART_UPDATED
  pageView: PAGE_VIEWED
  appOpen: APP_OPENED
  pushOpen: PUSH_ENGAGED
```

## Endpoints de la API

Tajo se integra con los siguientes endpoints de la API de Iterable:

| Endpoint | Método | Propósito |
| --- | --- | --- |
| `/users/update` | POST | Actualizar perfiles de usuario |
| `/users/{email}` | GET | Obtener un usuario por email |
| `/users/bulkUpdate` | POST | Actualización masiva de usuarios |
| `/events/track` | POST | Registrar eventos personalizados |
| `/events/trackBulk` | POST | Registro masivo de eventos |
| `/campaigns` | GET | Listar todas las campañas |
| `/campaigns/metrics` | GET | Datos de rendimiento de campañas |
| `/experiments/metrics` | GET | Resultados de experimentos |
| `/lists` | GET | Listar todas las listas de usuarios |
| `/lists/subscribe` | POST | Añadir usuarios a una lista |
| `/lists/unsubscribe` | POST | Eliminar usuarios de una lista |
| `/catalogs/{catalogName}/items` | GET | Obtener elementos de un catálogo |
| `/channels` | GET | Listar los canales de mensajería |
| `/export/data.json` | GET | Exportar datos brutos de eventos |

## 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
});

await tajo.connectors.connect('iterable', {
  apiKey: process.env.ITERABLE_API_KEY
});
```

### Sincronizar usuarios

```javascript
// Incremental user sync from Iterable to Brevo
await tajo.connectors.sync('iterable', {
  type: 'incremental',
  resources: ['users'],
  since: '2024-01-01',
  batchSize: 50
});

const status = await tajo.connectors.status('iterable');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T09:45:00Z',
//   usersCount: 58700,
//   campaignsTracked: 42,
//   eventsProcessed: 210000
// }
```

### Registrar eventos

```javascript
// Forward Iterable events to Brevo
await tajo.connectors.handleEvent('iterable', {
  type: 'custom_event',
  payload: {
    email: 'user@example.com',
    eventName: 'subscription_upgraded',
    dataFields: {
      previousPlan: 'starter',
      newPlan: 'pro',
      mrr: 99.00
    }
  }
});
```

### Handler de webhooks

```javascript
// Handle Iterable system webhooks
app.post('/webhooks/iterable', async (req, res) => {
  const event = req.body;

  await tajo.connectors.handleWebhook('iterable', {
    type: event.eventName,
    payload: event
  });

  res.status(200).send('OK');
});
```

## Límites de velocidad

Iterable aplica límites de velocidad según tu plan:

| Plan | Límite de velocidad | Límite del endpoint bulk |
| --- | --- | --- |
| **Growth** | 500 peticiones/segundo | 500 peticiones/segundo |
| **Enterprise** | Personalizado | Personalizado |

Límites de endpoints específicos:

| Endpoint | Límite |
| --- | --- |
| `/users/update` | 500 req/s |
| `/users/bulkUpdate` | 500 req/s (1.000 usuarios por petición) |
| `/events/track` | 500 req/s |
| `/events/trackBulk` | 500 req/s (8.000 eventos por petición) |
| `/export/data.json` | 4 peticiones simultáneas |

Endpoints bulk

Tajo agrupa automáticamente las actualizaciones de usuario (hasta 1.000 por llamada) y los registros de eventos (hasta 8.000 por llamada) para maximizar el rendimiento dentro de los límites de velocidad.

## Resolución de problemas

### Problemas habituales

| Problema | Causa | Solución |
| --- | --- | --- |
| 401 Unauthorized | Clave API no válida | Verifica la clave en Iterable > Integrations > API Keys |
| Usuarios no se sincronizan | Tipo de clave incorrecto | Asegúrate de usar una clave API Server-side |
| Faltan datos de campaña | Permisos insuficientes | Añade el permiso Campaigns Read a la clave API |
| Timeout de exportación | Gran volumen de datos | Usa filtros de rango de fechas para reducir el tamaño de la exportación |
| Usuarios duplicados | Identificadores inconsistentes | Usa el email como identificador principal de forma coherente |

### Modo depuración

```yaml
connectors:
  iterable:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Probar la conexión

```bash
tajo connectors test iterable
# ✓ API connection successful
# ✓ User data accessible
# ✓ Campaign list readable
# ✓ Event tracking operational
# ✓ List management available
```

## Buenas prácticas

1. **Usa los endpoints bulk** - Prefiere siempre `bulkUpdate` y `trackBulk` para grandes volúmenes de datos
2. **Deduplica por email** - Usa el email como identificador coherente entre Iterable y Brevo
3. **Sincroniza de forma incremental** - Usa rangos de fechas para evitar reprocesar datos históricos
4. **Asocia las preferencias de canal** - Sincroniza el estado de opt-in/opt-out para mantener el cumplimiento
5. **Monitoriza los jobs de exportación** - Las exportaciones grandes pueden tardar; configura polling de estado
6. **Prueba con un proyecto no productivo** - Valida las asignaciones antes de sincronizar datos de producción

## Seguridad

- **Autenticación con clave API** - Claves server-side con permisos granulares
- **Solo HTTPS** - Toda la comunicación con la API se cifra vía TLS 1.2+
- **Rotación de claves** - Soporte para varias claves API activas durante la rotación
- **Almacenamiento cifrado** - Credenciales de API cifradas en reposo en Tajo
- **Webhooks con JWT** - Los payloads de webhook se firman con JWT para su verificación

## Recursos relacionados

- [Conector de Braze](https://tajo.io/es/docs/connectors/marketing/braze)
- [Conector de Customer.io](https://tajo.io/es/docs/connectors/marketing/customerio)
- [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)
