---
title: "Connettore Iterable"
description: "Guida completa all'integrazione di Iterable per sincronizzare utenti, campagne, esperimenti ed eventi di engagement con Brevo tramite Tajo."
url: https://tajo.io/it/docs/connectors/marketing/iterable/
markdown: https://tajo.io/it/docs/connectors/marketing/iterable.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Iterable

Stato del connettore: Pianificato Non ancora realizzato. Oggi Tajo non esegue questo connettore.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega la tua piattaforma di growth marketing Iterable a Brevo per un engagement cliente unificato, coordinamento di campagne cross-channel e analytics consolidate tra gli strumenti di marketing.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Iterable |
| **Categoria** | Marketing |
| **Complessità di setup** | Moderata |
| **Integrazione ufficiale** | No |
| **Dati sincronizzati** | Utenti, Eventi, Campagne, Cataloghi |
| **Tipo API** | REST API |
| **Autenticazione** | Chiave API |
| **Base URL** | `https://api.iterable.com/api/` |

## Funzionalità

- **Sync dei profili utente** - Sincronizzazione bidirezionale dei dati utente con i contatti Brevo
- **Analytics delle campagne** - Sincronizza metriche di invio, apertura e click delle campagne per una reportistica unificata
- **Dati esperimenti** - Traccia i risultati degli A/B test e le varianti vincenti
- **Sync del catalogo** - Sincronizza i cataloghi prodotti e contenuti tra le piattaforme
- **Eventi workflow** - Inoltra gli eventi di trigger e completamento dei workflow a Brevo
- **Sync preferenze di canale** - Replica le preferenze di comunicazione utente in Brevo

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un account Iterable con accesso API
2. Una chiave API Iterable con i permessi appropriati
3. Il tuo Iterable project ID
4. Un account Brevo con accesso API
5. Un account Tajo con un abbonamento attivo

## Autenticazione

Iterable utilizza l’autenticazione con chiave API passata nell’header della richiesta.

### Creazione di una chiave API

1. Accedi alla tua dashboard Iterable
2. Vai in **Integrations** > **API Keys**
3. Clicca su **New API Key**
4. Nominala “Tajo Integration”
5. Seleziona il tipo chiave **Server-side**
6. Concedi i seguenti permessi:

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

Il tipo di chiave conta

Usa sempre una chiave API **Server-side** per l’integrazione con Tajo. Le chiavi mobile e JavaScript-side hanno permessi limitati e non possono accedere a tutti gli endpoint richiesti.

### Connessione a Tajo

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

## Configurazione

### Setup di base

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

### Mappatura dei campi

Mappa i campi utente Iterable agli attributi di contatto 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
```

### Configurazione eventi

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

## Endpoint API

Tajo si integra con i seguenti endpoint API Iterable:

| Endpoint | Metodo | Scopo |
| --- | --- | --- |
| `/users/update` | POST | Aggiorna i profili utente |
| `/users/{email}` | GET | Recupera un utente tramite email |
| `/users/bulkUpdate` | POST | Aggiorna utenti in batch |
| `/events/track` | POST | Traccia eventi personalizzati |
| `/events/trackBulk` | POST | Traccia eventi in batch |
| `/campaigns` | GET | Elenca tutte le campagne |
| `/campaigns/metrics` | GET | Dati di performance delle campagne |
| `/experiments/metrics` | GET | Risultati degli esperimenti |
| `/lists` | GET | Elenca tutte le liste utenti |
| `/lists/subscribe` | POST | Aggiungi utenti a una lista |
| `/lists/unsubscribe` | POST | Rimuovi utenti da una lista |
| `/catalogs/{catalogName}/items` | GET | Recupera elementi del catalogo |
| `/channels` | GET | Elenca i canali di messaggistica |
| `/export/data.json` | GET | Esporta dati eventi raw |

## Esempi di codice

### Inizializza il connettore

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

### Sincronizza gli utenti

```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
// }
```

### Traccia eventi

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

### Webhook handler

```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');
});
```

## Limiti di velocità

Iterable applica limiti di velocità in base al tuo piano:

| Piano | Limite | Limite endpoint bulk |
| --- | --- | --- |
| **Growth** | 500 richieste/secondo | 500 richieste/secondo |
| **Enterprise** | Personalizzato | Personalizzato |

Limiti per endpoint specifici:

| Endpoint | Limite |
| --- | --- |
| `/users/update` | 500 req/s |
| `/users/bulkUpdate` | 500 req/s (1.000 utenti per richiesta) |
| `/events/track` | 500 req/s |
| `/events/trackBulk` | 500 req/s (8.000 eventi per richiesta) |
| `/export/data.json` | 4 richieste concorrenti |

Endpoint bulk

Tajo raggruppa automaticamente gli aggiornamenti utente (fino a 1.000 per chiamata) e i track eventi (fino a 8.000 per chiamata) per massimizzare il throughput rimanendo entro i limiti di velocità.

## Risoluzione dei problemi

### Problemi comuni

| Problema | Causa | Soluzione |
| --- | --- | --- |
| 401 Unauthorized | Chiave API non valida | Verifica la chiave in Iterable > Integrations > API Keys |
| Utenti non sincronizzati | Tipo di chiave non corrispondente | Assicurati di usare una chiave API Server-side |
| Dati campagna mancanti | Permessi insufficienti | Aggiungi il permesso Read alle Campagne nella chiave API |
| Timeout esportazione | Volume dati elevato | Usa filtri per intervallo di date per ridurre la dimensione dell’export |
| Utenti duplicati | Identificatori non coerenti | Usa l’email come identificatore primario in modo coerente |

### Modalità debug

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

### Testa la connessione

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

## Best practice

1. **Usa gli endpoint bulk** - Preferisci sempre `bulkUpdate` e `trackBulk` per grandi volumi di dati
2. **Deduplica per email** - Usa l’email come identificatore coerente tra Iterable e Brevo
3. **Sincronizza in modo incrementale** - Usa intervalli di date per evitare di rielaborare dati storici
4. **Mappa le preferenze di canale** - Sincronizza lo stato opt-in/opt-out per mantenere la conformità
5. **Monitora i job di esportazione** - Le esportazioni grandi possono richiedere tempo; imposta polling sullo stato
6. **Testa con un progetto non in produzione** - Convalida le mappature prima di sincronizzare i dati di produzione

## Sicurezza

- **Autenticazione con chiave API** - Chiavi server-side con permessi granulari
- **Solo HTTPS** - Tutte le comunicazioni API cifrate via TLS 1.2+
- **Rotazione delle chiavi** - Supporto per più chiavi API attive durante la rotazione
- **Storage cifrato** - Credenziali API cifrate a riposo in Tajo
- **Webhook JWT** - Payload webhook firmati con JWT per la verifica

## Risorse correlate

- [Connettore Braze](https://tajo.io/it/docs/connectors/marketing/braze)
- [Connettore Customer.io](https://tajo.io/it/docs/connectors/marketing/customerio)
- [Skill Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync)
- [API Contatti Brevo](https://tajo.io/it/docs/contact-management)
