ActiveCampaign Connector
Verbinde dein ActiveCampaign-Konto über Tajo mit Brevo für eine umfassende Kontaktmigration, Deal-Pipeline-Synchronisation, Automations-Mapping und plattformübergreifend einheitliche Marketingdaten.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | ActiveCampaign |
| Kategorie | Marketing |
| Einrichtungsaufwand | Mittel |
| Offizielle Integration | Ja |
| Synchronisierte Daten | Kontakte, Deals, Automationen, Events |
| API-Basis-URL | https://{account}.api-us1.com/api/3 |
Funktionen
- Kontaktmigration - Migriere Kontakte inklusive Custom Fields, Tags und Listenmitgliedschaften
- Deal-Pipeline-Synchronisation - Synchronisiere Deal-Phasen, -Werte und -Verantwortliche für das Umsatz-Tracking
- Automations-Mapping - Ordne ActiveCampaign-Automationen den Brevo-Workflow-Triggern zu
- Event-Tracking - Synchronisiere Site-Tracking und Custom Events für eine verhaltensbasierte Segmentierung
- Listen- und Tag-Synchronisation - Repliziere Listenstrukturen und tag-basierte Segmente in Brevo
- E-Commerce-Integration - Synchronisiere Deep Data (Orders, Customers, Carts) zu Brevo
- Custom-Object-Sync - Ordne ActiveCampaign-Custom-Objects den Brevo-Attributen zu
- Score-Synchronisation - Übertrage Lead- und Kontakt-Scores in Brevo-Attribute
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Ein ActiveCampaign-Konto (Lite, Plus, Professional oder Enterprise)
- API-URL und API-Schlüssel aus Settings > Developer
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto
Authentifizierung
API-Schlüssel-Authentifizierung
ActiveCampaign nutzt einen API-Schlüssel, der als Header oder Query-Parameter übergeben wird.
curl "https://{account}.api-us1.com/api/3/contacts" \ -H "Api-Token: YOUR_API_KEY" \ -H "Content-Type: application/json"Du findest deine API-URL und deinen API-Schlüssel in den ActiveCampaign-Einstellungen unter Settings > Developer.
API-URL
Deine API-URL ist für dein Konto einzigartig (z. B. https://yourcompany.api-us1.com). Nutze immer diese URL, nicht die Dashboard-URL.
Konfiguration
Grundeinrichtung
connectors: activecampaign: enabled: true api_url: "https://yourcompany.api-us1.com" api_key: "${AC_API_KEY}"
# Data sync options sync: contacts: true deals: true automations: true events: true ecommerce: true
# List mapping to Brevo list_mapping: "Main List": 50 "Newsletter": 51 "Customers": 52Feldzuordnung
Ordne ActiveCampaign-Felder den Brevo-Kontaktattributen zu:
Standardzuordnungen
| Parameter | Type | Description |
|---|---|---|
email required | string | E-Mail des Kontakts (eindeutige Kennung) |
firstName optional | string | Wird dem FIRSTNAME-Attribut zugeordnet |
lastName optional | string | Wird dem LASTNAME-Attribut zugeordnet |
phone optional | string | Wird dem SMS-Attribut zugeordnet |
tags optional | array | Kontakt-Tags für die Segmentierung |
score optional | integer | Engagement-Score des Kontakts |
deals optional | array | Zugeordnete Deal-Datensätze |
fieldValues optional | array | Werte benutzerdefinierter Felder |
Zuordnung benutzerdefinierter Felder
field_mapping: # Standard fields email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Engagement fields score: LEAD_SCORE rating: ENGAGEMENT_RATING
# Deal fields deals.value: DEAL_VALUE deals.stage: DEAL_STAGE deals.owner: DEAL_OWNER
# Custom fields fieldValues.company: COMPANY_NAME fieldValues.industry: INDUSTRY fieldValues.plan_tier: PLAN_TIERAPI-Endpunkte
Kontakte
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/3/contacts | Alle Kontakte auflisten |
POST | /api/3/contacts | Einen Kontakt erstellen |
PUT | /api/3/contacts/{id} | Einen Kontakt aktualisieren |
GET | /api/3/contacts/{id} | Einen Kontakt abrufen |
POST | /api/3/contact/sync | Einen Kontakt synchronisieren (Create oder Update) |
POST | /api/3/import/bulk_import | Kontakte per Bulk-Import importieren |
Deals
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/3/deals | Alle Deals auflisten |
POST | /api/3/deals | Einen Deal erstellen |
PUT | /api/3/deals/{id} | Einen Deal aktualisieren |
GET | /api/3/dealStages | Alle Deal-Phasen auflisten |
GET | /api/3/dealPipelines | Alle Pipelines auflisten |
Automationen
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/3/automations | Automationen auflisten |
GET | /api/3/automations/{id} | Eine Automation abrufen |
POST | /api/3/contactAutomations | Kontakt einer Automation hinzufügen |
E-Commerce (Deep Data)
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST | /api/3/ecomOrders | Eine Bestellung anlegen |
GET | /api/3/ecomOrders | Bestellungen auflisten |
POST | /api/3/ecomCustomers | Eine Kundschaft anlegen |
GET | /api/3/ecomCustomers | Kund:innen auflisten |
Event-Tracking
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST | /api/3/tracking/event | Ein Custom Event tracken |
GET | /api/3/eventTrackingEvents | Alle Event-Namen auflisten |
POST | /api/3/eventTrackingEvents | Einen Event-Namen anlegen |
Events
Kontakt-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
contact_add | Neuer Kontakt erstellt | Willkommens-Flow |
contact_update | Kontaktdaten geändert | Attribut-Synchronisation |
contact_tag_added | Tag zugewiesen | Segment-Aktualisierung |
contact_tag_removed | Tag entfernt | Segment-Bereinigung |
Deal-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
deal_add | Neuer Deal erstellt | Vertriebsbenachrichtigung |
deal_update | Deal-Phase geändert | Pipeline-Automatisierung |
deal_tasktype_add | Aufgabe einem Deal hinzugefügt | Aktivitäts-Tracking |
Automation-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
automation_contact_add | Kontakt in Automation eingetreten | Flow-Tracking |
automation_contact_complete | Kontakt hat Automation abgeschlossen | Trigger für nächsten Schritt |
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 ActiveCampaignawait tajo.connectors.connect('activecampaign', { apiUrl: process.env.AC_API_URL, apiKey: process.env.AC_API_KEY});Kontakte zu Brevo migrieren
// Full contact migration with custom fields and tagsawait tajo.connectors.sync('activecampaign', { type: 'full', resources: ['contacts', 'deals', 'events'], options: { includeTags: true, includeCustomFields: true, includeScores: true, includeListMemberships: true }});
// Check sync statusconst status = await tajo.connectors.status('activecampaign');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 28000,// dealsSynced: 4500,// eventsSynced: 120000// }Custom Events tracken
// Forward ActiveCampaign events to Brevoawait tajo.activecampaign.trackEvent({ event: 'product_demo_requested', eventData: { product: 'Enterprise Plan', source: 'website' }});Rate Limits
Rate Limits der ActiveCampaign-API:
| Plan | Rate Limit | Details |
|---|---|---|
| Lite | 5 Anfragen/Sekunde | Pro Konto |
| Plus | 10 Anfragen/Sekunde | Pro Konto |
| Professional | 10 Anfragen/Sekunde | Pro Konto |
| Enterprise | 20 Anfragen/Sekunde | Pro Konto |
Weitere Limits:
- Bulk-Import: 250 Kontakte pro Batch
- Bulk-Import-Frequenz: 1 Import gleichzeitig
- Event-Tracking: 2 Anfragen/Sekunde
- Tageslimit: Kein explizites Tageslimit (nur ratenbasiert)
Umgang mit Rate Limits
ActiveCampaign antwortet mit 429 Too Many Requests, sobald die Limits überschritten werden. Implementiere eine Retry-Logik auf Basis des Retry-After-Header-Werts.
Fehlerbehebung
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| 403 Forbidden | Ungültiger API-Schlüssel oder ungültige URL | Prüfe API-URL und -Schlüssel in den AC-Einstellungen unter Settings > Developer |
| Kontakt nicht synchronisiert | Umgang mit doppelten E-Mail-Adressen | Nutze den Endpoint /contact/sync für ein Upsert-Verhalten |
| Custom Field leer | Abweichende Feld-ID | Ordne Felder per ID zu, nicht per Label (Labels können sich ändern) |
| Webhook nicht empfangen | Webhook nicht konfiguriert | Richte Webhooks in den AC-Einstellungen unter Settings > Developer > Webhooks ein |
| Deal nicht erstellt | Fehlende Pflichtfelder | Stelle sicher, dass Pipeline, Phase und Kontakt übergeben werden |
Debug-Modus
Ausführliches Logging aktivieren:
connectors: activecampaign: debug: true log_level: verbose log_webhooks: trueVerbindung testen
tajo connectors test activecampaign# ✓ API connection successful# ✓ Contacts readable# ✓ Deals readable# ✓ Automations accessible# ✓ Event tracking enabledBest Practices
- Contact-Sync-Endpoint nutzen - Verwende
/contact/syncfür Upsert-Operationen statt getrennter Create-/Update-Aufrufe - Felder per ID zuordnen - IDs von Custom Fields sind stabil; Labels können sich ändern
- Listenmitgliedschaften bewahren - Migriere Listenzuordnungen gemeinsam mit den Kontaktdaten
- Deal-Pipelines synchronisieren - Ordne Pipeline-Phasen für ein konsistentes CRM-Reporting zu
- Event-Tracking umsetzen - Nutze Site-Tracking, um verhaltensbasierte Daten in Brevo zu erhalten
- Batch-Importe verwenden - Nutze Bulk-Import für Datensätze mit mehr als 1.000 Kontakten
Sicherheit
- API-Schlüssel-Authentifizierung - Token-basierter Zugriff über den
Api-Token-Header - Webhook-Verifizierung - Prüfe die Quell-IP-Bereiche von Webhooks
- TLS-Verschlüsselung - Die gesamte API-Kommunikation wird via HTTPS verschlüsselt
- Zugriff auf Kontoebene - Der API-Schlüssel bietet vollen Kontozugriff; gehe sorgsam damit um
- IP-Beschränkungen - Verfügbar in Enterprise-Plänen