Connecteur Iterable
Connectez votre plateforme de growth marketing Iterable à Brevo pour un engagement client unifié, une coordination de campagnes multicanal et des analytiques consolidées à travers vos outils marketing.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Iterable |
| Catégorie | Marketing |
| Complexité de configuration | Modérée |
| Intégration officielle | Non |
| Données synchronisées | Utilisateurs, Événements, Campagnes, Catalogues |
| Type d’API | API REST |
| Authentification | Clé API |
| URL de base | https://api.iterable.com/api/ |
Fonctionnalités
- Synchronisation des profils utilisateurs - Synchronisation bidirectionnelle des données utilisateurs avec les contacts Brevo
- Analytiques de campagnes - Synchronisation des métriques d’envoi, d’ouverture et de clic pour un reporting unifié
- Données d’expérimentation - Suivi des résultats A/B test et des variantes gagnantes
- Synchronisation des catalogues - Synchronisation des catalogues de produits et de contenu entre plateformes
- Événements de workflow - Transfert des événements de déclenchement et de complétion de workflows vers Brevo
- Synchronisation des préférences de canal - Réplication des préférences de communication utilisateurs dans Brevo
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Un compte Iterable avec accès API
- Une clé API Iterable avec les permissions appropriées
- Votre project ID Iterable
- Un compte Brevo avec accès API
- Un compte Tajo avec un abonnement actif
Authentification
Iterable utilise l’authentification par clé API transmise dans l’en-tête de la requête.
Création d’une clé API
- Connectez-vous à votre tableau de bord Iterable
- Naviguez vers Integrations > API Keys
- Cliquez sur New API Key
- Nommez-la “Tajo Integration”
- Sélectionnez le type de clé Server-side
- Accordez les permissions suivantes :
Users: Read/WriteEvents: Read/WriteCampaigns: ReadLists: Read/WriteCatalogs: ReadExperiments: ReadWorkflows: ReadTemplates: ReadChannels: ReadMessage Types: ReadLe type de clé est important
Utilisez toujours une clé API Server-side pour l’intégration Tajo. Les clés Mobile et JavaScript-side ont des permissions restreintes et ne peuvent pas accéder à tous les endpoints requis.
Connexion à Tajo
tajo connectors install iterable \ --api-key $ITERABLE_API_KEYConfiguration
Configuration de 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: 18Mappage de champs
Mappez les champs utilisateurs Iterable aux attributs de contact Brevo :
field_mapping: # Champs standards userId: ITERABLE_ID email: email firstName: FIRSTNAME lastName: LASTNAME phoneNumber: SMS
# Données d'engagement signupDate: SIGNUP_DATE totalPurchases: TOTAL_PURCHASES lastPurchaseDate: LAST_PURCHASE
# Champs personnalisés plan_name: PLAN_NAME company_size: COMPANY_SIZE preferred_channel: PREFERRED_CHANNEL lifecycle_stage: LIFECYCLE_STAGEConfiguration des événements
event_mapping: # Événement Iterable -> Événement Brevo purchase: ORDER_PLACED addToCart: CART_UPDATED pageView: PAGE_VIEWED appOpen: APP_OPENED pushOpen: PUSH_ENGAGEDEndpoints API
Tajo s’intègre avec les endpoints API Iterable suivants :
| Endpoint | Méthode | Objectif |
|---|---|---|
/users/update | POST | Mettre à jour les profils utilisateurs |
/users/{email} | GET | Récupérer un utilisateur par email |
/users/bulkUpdate | POST | Mise à jour groupée d’utilisateurs |
/events/track | POST | Suivre des événements personnalisés |
/events/trackBulk | POST | Suivi groupé d’événements |
/campaigns | GET | Lister toutes les campagnes |
/campaigns/metrics | GET | Données de performance des campagnes |
/experiments/metrics | GET | Résultats d’expérimentations |
/lists | GET | Lister toutes les listes d’utilisateurs |
/lists/subscribe | POST | Ajouter des utilisateurs à une liste |
/lists/unsubscribe | POST | Retirer des utilisateurs d’une liste |
/catalogs/{catalogName}/items | GET | Récupérer les éléments du catalogue |
/channels | GET | Lister les canaux de messagerie |
/export/data.json | GET | Exporter les données d’événements brutes |
Exemples de code
Initialiser le connecteur
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});Synchroniser les utilisateurs
// Synchronisation incrémentielle des utilisateurs d'Iterable vers 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// }Suivre des événements
// Transférer les événements Iterable vers Brevoawait tajo.connectors.handleEvent('iterable', { type: 'custom_event', payload: { eventName: 'subscription_upgraded', dataFields: { previousPlan: 'starter', newPlan: 'pro', mrr: 99.00 } }});Gestionnaire de webhook
// Gérer les webhooks système Iterableapp.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');});Limites de taux
Iterable applique des limites de taux selon votre plan :
| Plan | Limite de taux | Limite endpoint bulk |
|---|---|---|
| Growth | 500 requêtes/seconde | 500 requêtes/seconde |
| Enterprise | Personnalisé | Personnalisé |
Limites par endpoint spécifique :
| Endpoint | Limite |
|---|---|
/users/update | 500 req/s |
/users/bulkUpdate | 500 req/s (1 000 utilisateurs par requête) |
/events/track | 500 req/s |
/events/trackBulk | 500 req/s (8 000 événements par requête) |
/export/data.json | 4 requêtes concurrentes |
Endpoints bulk
Tajo groupe automatiquement les mises à jour d’utilisateurs (jusqu’à 1 000 par appel) et les suivis d’événements (jusqu’à 8 000 par appel) pour maximiser le débit tout en respectant les limites de taux.
Dépannage
Problèmes courants
| Problème | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Clé API invalide | Vérifiez la clé dans Iterable > Integrations > API Keys |
| Utilisateurs non synchronisés | Mauvais type de clé | Assurez-vous d’utiliser une clé API Server-side |
| Données de campagnes manquantes | Permissions insuffisantes | Ajoutez la permission Campaigns Read à la clé API |
| Timeout d’export | Gros volume de données | Utilisez des filtres de plage de dates pour réduire la taille d’export |
| Utilisateurs dupliqués | Identifiants incohérents | Utilisez l’email comme identifiant principal de manière cohérente |
Mode debug
connectors: iterable: debug: true log_level: verbose log_api_calls: trueTester la connexion
tajo connectors test iterable# ✓ API connection successful# ✓ User data accessible# ✓ Campaign list readable# ✓ Event tracking operational# ✓ List management availableBonnes pratiques
- Utilisez les endpoints bulk - Préférez toujours
bulkUpdateettrackBulkpour les gros volumes de données - Dédupliquez par email - Utilisez l’email comme identifiant cohérent entre Iterable et Brevo
- Synchronisez de manière incrémentielle - Utilisez des plages de dates pour éviter de retraiter les données historiques
- Mappez les préférences de canal - Synchronisez le statut opt-in/opt-out pour maintenir la conformité
- Surveillez les jobs d’export - Les exports volumineux peuvent prendre du temps ; mettez en place un polling de statut
- Testez avec un projet non production - Validez les mappages avant de synchroniser les données de production
Sécurité
- Authentification par clé API - Clés Server-side avec permissions granulaires
- HTTPS uniquement - Toutes les communications API chiffrées via TLS 1.2+
- Rotation des clés - Support de plusieurs clés API actives pendant la rotation
- Stockage chiffré - Identifiants API chiffrés au repos dans Tajo
- Webhooks JWT - Payloads de webhook signés avec JWT pour vérification