Mailchimp Connector
Verbinde dein Mailchimp-Konto über Tajo mit Brevo für eine nahtlose Audience-Migration, die Synchronisation von Kampagnendaten und einheitliche Marketing-Automatisierung über beide Plattformen hinweg.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Mailchimp |
| Kategorie | Marketing |
| Einrichtungsaufwand | Einfach |
| Offizielle Integration | Ja |
| Synchronisierte Daten | Kontakte, Kampagnen, Automationen, Events |
| API-Basis-URL | https://{dc}.api.mailchimp.com/3.0 |
Funktionen
- Audience-Sync - Migriere und synchronisiere Mailchimp-Audiences mit Brevo-Kontaktlisten
- Kampagnendaten - Synchronisiere Kampagnen-Performance-Daten für ein einheitliches Reporting
- Automations-Migration - Ordne Mailchimp-Automationen Brevo-Workflows zu
- Engagement-Metriken - Synchronisiere Öffnungen, Klicks und Bounce-Daten in Brevo-Attribute
- Segment-Mapping - Repliziere Mailchimp-Segmente als Brevo-Listen oder -Segmente
- E-Commerce-Daten - Synchronisiere Store-, Produkt- und Bestelldaten aus Mailchimp E-Commerce
- Tag-Sync - Ordne Mailchimp-Tags Brevo-Kontaktattributen oder -Listen zu
- Template-Migration - Exportiere Mailchimp-Templates zur Nutzung in Brevo-Kampagnen
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Ein Mailchimp-Konto (Free, Essentials, Standard oder Premium)
- Einen Mailchimp-API-Schlüssel oder eine OAuth-App
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto
Authentifizierung
API-Schlüssel-Authentifizierung
Erzeuge einen API-Schlüssel unter Mailchimp Account > Extras > API Keys.
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"Das Data-Center-Präfix {dc} ist der letzte Teil deines API-Schlüssels (z. B. us21).
OAuth 2.0
Für Integrationen mit mehreren Konten:
# Authorization URLhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# Token exchangecurl -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
Extrahiere das Data Center immer aus deinem API-Schlüssel oder dem OAuth-Metadata-Endpoint. Ein falsches Data Center führt zu Authentifizierungsfehlern.
Konfiguration
Grundeinrichtung
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# Data sync options sync: audiences: true campaigns: true automations: true ecommerce: true
# Audience to Brevo list mapping audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42Feldzuordnung
Ordne Mailchimp-Merge-Fields den Brevo-Kontaktattributen zu:
Standardzuordnungen
| Parameter | Type | Description |
|---|---|---|
email_address required | string | E-Mail des Abonnenten (eindeutige Kennung) |
FNAME optional | string | Merge-Feld für den Vornamen, wird FIRSTNAME zugeordnet |
LNAME optional | string | Merge-Feld für den Nachnamen, wird LASTNAME zugeordnet |
PHONE optional | string | Merge-Feld für die Telefonnummer, wird SMS zugeordnet |
status optional | string | Abonnementstatus (subscribed, unsubscribed, cleaned, pending) |
tags optional | array | Tags der Abonnent:innen für die Segmentierung |
stats.avg_open_rate optional | number | Durchschnittliche E-Mail-Open-Rate |
stats.avg_click_rate optional | number | Durchschnittliche E-Mail-Click-Rate |
Zuordnung benutzerdefinierter Merge Fields
field_mapping: # Standard fields email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# Engagement metrics stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# E-commerce fields ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# Custom merge fields MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEAPI-Endpoints
Audiences (Lists)
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /3.0/lists | Alle Audiences auflisten |
GET | /3.0/lists/{list_id} | Details einer Audience abrufen |
GET | /3.0/lists/{list_id}/members | Mitglieder einer Audience auflisten |
POST | /3.0/lists/{list_id}/members | Ein Mitglied hinzufügen |
PUT | /3.0/lists/{list_id}/members/{hash} | Ein Mitglied aktualisieren |
POST | /3.0/lists/{list_id} | Batch subscribe/unsubscribe |
Kampagnen
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /3.0/campaigns | Kampagnen auflisten |
GET | /3.0/campaigns/{id} | Kampagnendetails abrufen |
GET | /3.0/reports/{id} | Kampagnen-Report abrufen |
GET | /3.0/reports/{id}/email-activity | E-Mail-Aktivität abrufen |
Automationen
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /3.0/automations | Automationen auflisten |
GET | /3.0/automations/{id} | Details einer Automation abrufen |
GET | /3.0/automations/{id}/emails | E-Mails einer Automation auflisten |
E-Commerce
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /3.0/ecommerce/stores | Verbundene Stores auflisten |
GET | /3.0/ecommerce/stores/{id}/customers | Kund:innen eines Stores auflisten |
GET | /3.0/ecommerce/stores/{id}/orders | Bestellungen eines Stores auflisten |
GET | /3.0/ecommerce/stores/{id}/products | Produkte eines Stores auflisten |
Events
Kampagnen-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
campaign.sent | Kampagne zugestellt | Performance-Tracking |
campaign.opened | E-Mail geöffnet | Engagement-Scoring |
campaign.clicked | Link angeklickt | Interessen-Tracking |
campaign.bounced | E-Mail ist gebounced | Listen-Hygiene |
Subscriber-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
subscribe | Neue:r Abonnent:in hinzugefügt | Willkommens-Flow |
unsubscribe | Abmeldung durch Abonnent:in | Präferenz-Management |
profile | Profil aktualisiert | Attribut-Synchronisation |
cleaned | E-Mail bereinigt (Bounce) | Listen-Wartung |
E-Commerce-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
ecommerce.order | Bestellung aufgegeben | Post-Purchase-Flow |
ecommerce.cart | Warenkorb aktualisiert | Recovery abgebrochener Warenkörbe |
Code-Beispiele
Connector initialisieren
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Mailchimpawait tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});Audiences zu Brevo migrieren
// Full audience migration from Mailchimp to Brevoawait tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// Check migration statusconst status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }Kampagnen-Engagement-Daten synchronisieren
// Sync campaign performance to Brevo attributesawait tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});Rate Limits
Rate Limits der Mailchimp Marketing API:
| Typ | Limit | Details |
|---|---|---|
| Standard | 10 parallele Anfragen | Pro API-Schlüssel |
| Batch-Operationen | 500 Operationen pro Batch | Pro Anfrage |
| Export-Limit | 1 paralleler Export | Pro Konto |
| Transactional | 25 Anfragen/Sekunde | Pro API-Schlüssel |
Rate-Limit-Strategie
Mailchimp begrenzt parallele Verbindungen, nicht Anfragen pro Sekunde. Nutze Batch-Endpoints und implementiere Retry-Logik mit exponentiellem Backoff bei 429-Antworten.
Fehlerbehebung
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| 401 Unauthorized | Ungültiger API-Schlüssel oder falsches Data Center | API-Schlüssel prüfen und das richtige dc-Präfix extrahieren |
| Member exists | E-Mail ist bereits in der Audience | PUT statt POST verwenden, um bestehende Mitglieder zu aktualisieren |
| Compliance state | DSGVO-Löschung verhindert erneutes Hinzufügen | Kontakt muss sich erneut über ein Anmeldeformular anmelden |
| Batch-Timeout | Große Batch-Operation | In kleinere Batches zu je 500 Operationen aufteilen |
| Fehlende Merge-Fields | Custom Fields nicht angelegt | Merge-Fields in Mailchimp anlegen, bevor du sie zuordnest |
Debug-Modus
Ausführliches Logging aktivieren:
connectors: mailchimp: debug: true log_level: verbose log_api_calls: trueVerbindung testen
tajo connectors test mailchimp# ✓ API connection successful# ✓ Audiences readable# ✓ Campaigns readable# ✓ E-commerce data accessible# ✓ Webhook configuredBest Practices
- Batch-Operationen nutzen - Verwende Batch-Subscribe/-Unsubscribe für Massenupdates
- Abonnementstatus bewahren - Respektiere die Einwilligung der Abonnent:innen bei der Migration
- Merge-Fields zuerst mappen - Lege entsprechende Brevo-Attribute vor der Synchronisation an
- Engagement-Daten synchronisieren - Importiere Open-/Click-Rates für eine historische Segmentierung
- Compliance-Status beachten - Respektiere DSGVO- und permanente Löschstatus
- Inkrementellen Sync verwenden - Synchronisiere nur die seit dem letzten Sync geänderten Daten, um API-Nutzung zu reduzieren
Sicherheit
- API-Schlüssel-Authentifizierung - Secret-Key als HTTP-Basic-Auth-Passwort übergeben
- OAuth 2.0 - Token-basierte Autorisierung für den Zugriff auf mehrere Konten
- TLS-Verschlüsselung - Die gesamte API-Kommunikation wird per HTTPS verschlüsselt
- Webhook-Verifizierung - Validiere die Webhook-Quelle mit einem Shared Secret
- Data-Center-Isolation - Daten werden in regionsspezifischen Data Centers gespeichert