ActiveCampaign-connector
Verbind je ActiveCampaign-account met Brevo via Tajo voor uitgebreide contactmigratie, deal-pipelinesynchronisatie, automation-mapping en uniforme marketingdata over beide platforms.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | ActiveCampaign |
| Categorie | Marketing |
| Setupcomplexiteit | Gemiddeld |
| Officiële integratie | Ja |
| Gesynchroniseerde data | Contacten, Deals, Automatiseringen, Events |
| API base URL | https://{account}.api-us1.com/api/3 |
Functies
- Contactmigratie - Migreer contacten met custom velden, tags en lijstlidmaatschappen
- Deal-pipelinesync - Synchroniseer deal-stages, -waarden en -eigenaren voor omzettracking
- Automation-mapping - Koppel ActiveCampaign-automatiseringen aan Brevo-workflowtriggers
- Event-tracking - Synchroniseer site tracking en custom events voor gedragsgerichte segmentatie
- Lijst- en tagsync - Repliceer lijststructuren en tag-gebaseerde segmenten in Brevo
- E-commerce-integratie - Synchroniseer Deep Data (bestellingen, klanten, winkelwagens) naar Brevo
- Custom object-sync - Koppel ActiveCampaign-customobjects aan Brevo-attributen
- Scoresync - Breng lead- en contactscores over naar Brevo-attributen
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een ActiveCampaign-account (Lite, Plus, Professional of Enterprise)
- API-URL en API-sleutel uit Settings > Developer
- Een Brevo-account met API-toegang
- Een Tajo-account
Authenticatie
API-sleutel-authenticatie
ActiveCampaign gebruikt een API-sleutel die als header of query-parameter wordt meegegeven.
curl "https://{account}.api-us1.com/api/3/contacts" \ -H "Api-Token: YOUR_API_KEY" \ -H "Content-Type: application/json"Je API-URL en -sleutel vind je in ActiveCampaign Settings > Developer.
API-URL
Je API-URL is uniek voor je account (bijv. https://yourcompany.api-us1.com). Gebruik altijd deze URL, niet de dashboard-URL.
Configuratie
Basisopzet
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": 52Veldmapping
Koppel ActiveCampaign-velden aan Brevo-contactattributen:
Standaard-mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mailadres contact (unieke identifier) |
firstName optional | string | Koppelt aan FIRSTNAME-attribuut |
lastName optional | string | Koppelt aan LASTNAME-attribuut |
phone optional | string | Koppelt aan SMS-attribuut |
tags optional | array | Contact-tags voor segmentatie |
score optional | integer | Engagementscore van het contact |
deals optional | array | Gekoppelde deal-records |
fieldValues optional | array | Waarden van custom velden |
Custom veldmapping
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-endpoints
Contacts
| Methode | Endpoint | Beschrijving |
|---|---|---|
GET | /api/3/contacts | Alle contacten opvragen |
POST | /api/3/contacts | Contact aanmaken |
PUT | /api/3/contacts/{id} | Contact bijwerken |
GET | /api/3/contacts/{id} | Contact ophalen |
POST | /api/3/contact/sync | Contact synchroniseren (create or update) |
POST | /api/3/import/bulk_import | Bulk import van contacten |
Deals
| Methode | Endpoint | Beschrijving |
|---|---|---|
GET | /api/3/deals | Alle deals opvragen |
POST | /api/3/deals | Deal aanmaken |
PUT | /api/3/deals/{id} | Deal bijwerken |
GET | /api/3/dealStages | Alle deal-stages opvragen |
GET | /api/3/dealPipelines | Alle pipelines opvragen |
Automations
| Methode | Endpoint | Beschrijving |
|---|---|---|
GET | /api/3/automations | Automations opvragen |
GET | /api/3/automations/{id} | Automation ophalen |
POST | /api/3/contactAutomations | Contact aan automation toevoegen |
E-commerce (Deep Data)
| Methode | Endpoint | Beschrijving |
|---|---|---|
POST | /api/3/ecomOrders | Bestelling aanmaken |
GET | /api/3/ecomOrders | Bestellingen opvragen |
POST | /api/3/ecomCustomers | Klant aanmaken |
GET | /api/3/ecomCustomers | Klanten opvragen |
Event-tracking
| Methode | Endpoint | Beschrijving |
|---|---|---|
POST | /api/3/tracking/event | Custom event tracken |
GET | /api/3/eventTrackingEvents | Alle eventnamen opvragen |
POST | /api/3/eventTrackingEvents | Eventnaam aanmaken |
Events
Contact-events
| Event | Trigger | Use case |
|---|---|---|
contact_add | Nieuw contact aangemaakt | Welkomstflow |
contact_update | Contactdata gewijzigd | Attribuutsync |
contact_tag_added | Tag toegewezen | Segmentupdate |
contact_tag_removed | Tag verwijderd | Segment opschonen |
Deal-events
| Event | Trigger | Use case |
|---|---|---|
deal_add | Nieuwe deal aangemaakt | Salesnotificatie |
deal_update | Deal-stage gewijzigd | Pipeline-automatisering |
deal_tasktype_add | Taak aan deal toegevoegd | Activiteitentracking |
Automation-events
| Event | Trigger | Use case |
|---|---|---|
automation_contact_add | Contact in automation gestart | Flowtracking |
automation_contact_complete | Contact heeft automation voltooid | Volgende-stap-trigger |
Codevoorbeelden
Connector initialiseren
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});Contacten migreren naar Brevo
// 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' }});Ratelimits
ActiveCampaign API-ratelimits:
| Plan | Ratelimit | Details |
|---|---|---|
| Lite | 5 requests/seconde | Per account |
| Plus | 10 requests/seconde | Per account |
| Professional | 10 requests/seconde | Per account |
| Enterprise | 20 requests/seconde | Per account |
Aanvullende limieten:
- Bulk import: 250 contacten per batch
- Bulk import-frequentie: 1 import tegelijk
- Event-tracking: 2 requests/seconde
- Daglimiet: Geen expliciete daglimiet (alleen op basis van rate)
Ratelimit-afhandeling
ActiveCampaign geeft 429 Too Many Requests terug wanneer limieten worden overschreden. Implementeer retry-logica met de waarde uit de Retry-After-header.
Probleemoplossing
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| 403 Forbidden | Ongeldige API-sleutel of URL | Verifieer API-URL en -sleutel in AC Settings > Developer |
| Contact niet gesynchroniseerd | Duplicaat-e-mail-afhandeling | Gebruik het /contact/sync-endpoint voor upsert-gedrag |
| Custom veld leeg | Mismatch tussen veld-ID’s | Koppel velden op ID, niet op label (labels kunnen wijzigen) |
| Webhook niet ontvangen | Webhook niet geconfigureerd | Stel webhooks in onder AC Settings > Developer > Webhooks |
| Deal niet aangemaakt | Vereiste velden ontbreken | Zorg dat pipeline, stage en contact worden meegegeven |
Debugmodus
Activeer uitgebreide logging:
connectors: activecampaign: debug: true log_level: verbose log_webhooks: trueVerbinding testen
tajo connectors test activecampaign# ✓ API connection successful# ✓ Contacts readable# ✓ Deals readable# ✓ Automations accessible# ✓ Event tracking enabledBest practices
- Gebruik het contact sync-endpoint - Gebruik
/contact/syncvoor upsert-operaties in plaats van aparte create/update - Koppel velden op ID - Custom field-ID’s zijn stabiel; labels kunnen wijzigen
- Behoud lijstlidmaatschappen - Migreer lijsttoewijzingen samen met contactdata
- Synchroniseer deal-pipelines - Koppel pipeline-stages voor consistente CRM-rapportage
- Implementeer event-tracking - Gebruik site tracking voor gedragsdata in Brevo
- Batch-imports - Gebruik bulk import voor datasets groter dan 1.000 contacten
Beveiliging
- API-sleutel-authenticatie - Tokengebaseerde toegang via de
Api-Token-header - Webhook-verificatie - Valideer webhook-bron-IP-ranges
- TLS-encryptie - Alle API-communicatie versleuteld via HTTPS
- Toegang op accountniveau - API-sleutel biedt volledige accounttoegang; gebruik zorgvuldig
- IP-beperkingen - Beschikbaar op Enterprise-plannen