Connettore Iterable
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:
- Un account Iterable con accesso API
- Una chiave API Iterable con i permessi appropriati
- Il tuo Iterable project ID
- Un account Brevo con accesso API
- 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
- Accedi alla tua dashboard Iterable
- Vai in Integrations > API Keys
- Clicca su New API Key
- Nominala “Tajo Integration”
- Seleziona il tipo chiave Server-side
- Concedi i seguenti permessi:
Users: Read/WriteEvents: Read/WriteCampaigns: ReadLists: Read/WriteCatalogs: ReadExperiments: ReadWorkflows: ReadTemplates: ReadChannels: ReadMessage Types: ReadIl 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
tajo connectors install iterable \ --api-key $ITERABLE_API_KEYConfigurazione
Setup di base
connectors: iterable: enabled: true
sync: users: true events: true campaigns: true catalogs: true experiments: true
lists: all_users: 16 engaged_users: 17 inactive_users: 18Mappatura dei campi
Mappa i campi utente Iterable agli attributi di contatto Brevo:
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_STAGEConfigurazione eventi
event_mapping: # Iterable event -> Brevo event purchase: ORDER_PLACED addToCart: CART_UPDATED pageView: PAGE_VIEWED appOpen: APP_OPENED pushOpen: PUSH_ENGAGEDEndpoint 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
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
// Incremental user sync from Iterable to Brevoawait 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
// Forward Iterable events to Brevoawait tajo.connectors.handleEvent('iterable', { type: 'custom_event', payload: { eventName: 'subscription_upgraded', dataFields: { previousPlan: 'starter', newPlan: 'pro', mrr: 99.00 } }});Webhook handler
// Handle Iterable system webhooksapp.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
connectors: iterable: debug: true log_level: verbose log_api_calls: trueTesta la connessione
tajo connectors test iterable# ✓ API connection successful# ✓ User data accessible# ✓ Campaign list readable# ✓ Event tracking operational# ✓ List management availableBest practice
- Usa gli endpoint bulk - Preferisci sempre
bulkUpdateetrackBulkper grandi volumi di dati - Deduplica per email - Usa l’email come identificatore coerente tra Iterable e Brevo
- Sincronizza in modo incrementale - Usa intervalli di date per evitare di rielaborare dati storici
- Mappa le preferenze di canale - Sincronizza lo stato opt-in/opt-out per mantenere la conformità
- Monitora i job di esportazione - Le esportazioni grandi possono richiedere tempo; imposta polling sullo stato
- 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