Connecteur Mailchimp
Connectez votre compte Mailchimp à Brevo via Tajo pour une migration fluide des audiences, la synchronisation des données de campagnes, et une automatisation marketing unifiée sur les deux plateformes.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Mailchimp |
| Catégorie | Marketing |
| Complexité de configuration | Facile |
| Intégration officielle | Oui |
| Données synchronisées | Contacts, Campagnes, Automatisations, Événements |
| URL de base API | https://{dc}.api.mailchimp.com/3.0 |
Fonctionnalités
- Synchronisation d’audiences - Migration et synchronisation des audiences Mailchimp avec les listes de contacts Brevo
- Données de campagnes - Synchronisation des données de performance des campagnes pour un reporting unifié
- Migration d’automatisations - Mappage des automatisations Mailchimp vers les workflows Brevo
- Métriques d’engagement - Synchronisation des ouvertures, clics et rebonds vers les attributs Brevo
- Mappage de segments - Réplication des segments Mailchimp en tant que listes ou segments Brevo
- Données e-commerce - Synchronisation des données de boutique, produits et commandes depuis Mailchimp e-commerce
- Synchronisation des tags - Mappage des tags Mailchimp vers les attributs ou listes de contacts Brevo
- Migration de templates - Export des templates Mailchimp pour utilisation dans les campagnes Brevo
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Un compte Mailchimp (Free, Essentials, Standard ou Premium)
- Une clé API Mailchimp ou une application OAuth
- Un compte Brevo avec accès API
- Un compte Tajo
Authentification
Authentification par clé API
Générez une clé API depuis Mailchimp Account > Extras > API Keys.
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"Le préfixe de data center {dc} est la dernière partie de votre clé API (ex. us21).
OAuth 2.0
Pour les intégrations multi-comptes :
# URL d'autorisationhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# Échange de jetoncurl -X POST https://login.mailchimp.com/oauth2/token \ -d "grant_type=authorization_code" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "redirect_uri={redirect_uri}" \ -d "code={auth_code}"Data Center
Extrayez toujours le data center de votre clé API ou de l’endpoint de métadonnées OAuth. L’utilisation du mauvais data center entraînera des échecs d’authentification.
Configuration
Configuration de base
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# Options de synchronisation des données sync: audiences: true campaigns: true automations: true ecommerce: true
# Mappage audience vers liste Brevo audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42Mappage de champs
Mappez les merge fields Mailchimp aux attributs de contact Brevo :
Mappages par défaut
| Parameter | Type | Description |
|---|---|---|
email_address required | string | Email de l'abonné (identifiant unique) |
FNAME optional | string | Merge field prénom, mappé vers FIRSTNAME |
LNAME optional | string | Merge field nom, mappé vers LASTNAME |
PHONE optional | string | Merge field téléphone, mappé vers SMS |
status optional | string | Statut d'abonnement (subscribed, unsubscribed, cleaned, pending) |
tags optional | array | Tags de l'abonné pour la segmentation |
stats.avg_open_rate optional | number | Taux d'ouverture email moyen |
stats.avg_click_rate optional | number | Taux de clic email moyen |
Mappage personnalisé des merge fields
field_mapping: # Champs standards email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# Métriques d'engagement stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# Champs e-commerce ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# Merge fields personnalisés MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEEndpoints API
Audiences (Listes)
| Méthode | Endpoint | Description |
|---|---|---|
GET | /3.0/lists | Lister toutes les audiences |
GET | /3.0/lists/{list_id} | Obtenir les détails d’une audience |
GET | /3.0/lists/{list_id}/members | Lister les membres de l’audience |
POST | /3.0/lists/{list_id}/members | Ajouter un membre |
PUT | /3.0/lists/{list_id}/members/{hash} | Mettre à jour un membre |
POST | /3.0/lists/{list_id} | Abonnement/désabonnement en batch |
Campagnes
| Méthode | Endpoint | Description |
|---|---|---|
GET | /3.0/campaigns | Lister les campagnes |
GET | /3.0/campaigns/{id} | Obtenir les détails d’une campagne |
GET | /3.0/reports/{id} | Obtenir le rapport de campagne |
GET | /3.0/reports/{id}/email-activity | Obtenir l’activité email |
Automatisations
| Méthode | Endpoint | Description |
|---|---|---|
GET | /3.0/automations | Lister les automatisations |
GET | /3.0/automations/{id} | Obtenir les détails d’une automatisation |
GET | /3.0/automations/{id}/emails | Lister les emails d’automatisation |
E-commerce
| Méthode | Endpoint | Description |
|---|---|---|
GET | /3.0/ecommerce/stores | Lister les boutiques connectées |
GET | /3.0/ecommerce/stores/{id}/customers | Lister les clients de la boutique |
GET | /3.0/ecommerce/stores/{id}/orders | Lister les commandes de la boutique |
GET | /3.0/ecommerce/stores/{id}/products | Lister les produits de la boutique |
Événements
Événements de campagne
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
campaign.sent | Campagne livrée | Suivi de performance |
campaign.opened | Email ouvert | Scoring d’engagement |
campaign.clicked | Lien cliqué | Suivi d’intérêt |
campaign.bounced | Email rejeté | Hygiène de liste |
Événements d’abonné
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
subscribe | Nouvel abonné ajouté | Flow de bienvenue |
unsubscribe | Abonné désinscrit | Gestion des préférences |
profile | Profil mis à jour | Synchronisation d’attributs |
cleaned | Email nettoyé (rejeté) | Maintenance de liste |
Événements e-commerce
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
ecommerce.order | Commande passée | Flow post-achat |
ecommerce.cart | Panier mis à jour | Récupération de panier abandonné |
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});
// Connecter Mailchimpawait tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});Migrer les audiences vers Brevo
// Migration complète d'audience de Mailchimp vers Brevoawait tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// Vérifier le statut de migrationconst status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }Synchroniser les données d’engagement des campagnes
// Synchroniser la performance des campagnes vers les attributs Brevoawait tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});Limites de taux
Limites de taux de l’API Marketing Mailchimp :
| Type | Limite | Détails |
|---|---|---|
| Standard | 10 requêtes concurrentes | Par clé API |
| Opérations batch | 500 opérations par batch | Par requête |
| Limite d’export | 1 export concurrent | Par compte |
| Transactionnel | 25 requêtes/seconde | Par clé API |
Stratégie de limite de taux
Mailchimp limite les connexions concurrentes plutôt que les requêtes par seconde. Utilisez les endpoints batch et implémentez une logique de retry avec backoff exponentiel sur les réponses 429.
Dépannage
Problèmes courants
| Problème | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Clé API invalide ou mauvais data center | Vérifiez la clé API et extrayez le bon préfixe dc |
| Membre existe | Email déjà dans l’audience | Utilisez PUT au lieu de POST pour mettre à jour les membres existants |
| État de conformité | La suppression RGPD empêche le ré-ajout | Le contact doit se réabonner via un formulaire d’inscription |
| Timeout de batch | Opération batch volumineuse | Divisez en plus petits batchs de 500 opérations |
| Merge fields manquants | Champs personnalisés non créés | Créez les merge fields dans Mailchimp avant le mappage |
Mode debug
Activer la journalisation détaillée :
connectors: mailchimp: debug: true log_level: verbose log_api_calls: trueTester la connexion
tajo connectors test mailchimp# ✓ API connection successful# ✓ Audiences readable# ✓ Campaigns readable# ✓ E-commerce data accessible# ✓ Webhook configuredBonnes pratiques
- Utilisez les opérations batch - Utilisez l’abonnement/désabonnement en batch pour les mises à jour en masse
- Préservez le statut d’abonné - Respectez le consentement d’abonnement pendant la migration
- Mappez les merge fields en premier - Créez les attributs Brevo correspondants avant la synchronisation
- Synchronisez les données d’engagement - Importez les taux d’ouverture/clic pour la segmentation historique
- Gérez les états de conformité - Respectez le RGPD et les états de suppression permanente
- Utilisez la synchronisation incrémentielle - Synchronisez uniquement les changements depuis la dernière synchronisation pour réduire l’utilisation API
Sécurité
- Authentification par clé API - Clé secrète transmise comme mot de passe HTTP Basic Auth
- OAuth 2.0 - Autorisation par jetons pour l’accès multi-comptes
- Chiffrement TLS - Toutes les communications API chiffrées via HTTPS
- Vérification de webhook - Validation de la source des webhooks avec un secret partagé
- Isolation des data centers - Données stockées dans des data centers spécifiques à la région