ActiveCampaign
Marketing automation and CRM platform combining email marketing, automation workflows, sales pipelines, and customer messaging.
This integration is currently in alpha. Configuration and behaviour may change.
Prerequisites
Complete these steps in ActiveCampaign before configuring Signal.
Access your ActiveCampaign account
Log in to ActiveCampaign at your account URL (e.g. https://your-account.activehosted.com).
Find your API URL
Navigate to Settings > Developer. Your API URL is shown at the top of the page and takes the form https://your-account.api-us1.com. Copy it.
Copy your API Key
On the same Settings > Developer page, copy the API Key. Treat this as a secret — it grants full API access to your account.
Find your Event Tracking Account ID and Key (optional)
If you plan to use Event Tracking rather than basic contact updates, scroll down to Event Tracking on the same page:
- Enable event tracking if not already enabled.
- Note the Event Tracking Account ID (numeric) and Event Key.
Event Tracking is required for sending custom events; contact-only sync works without it.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
api_url | string | Yes | Your ActiveCampaign API URL (e.g. https://your-account.api-us1.com). |
api_key | secret | Yes | Your ActiveCampaign API key. Found in Settings > Developer. |
event_tracking_account_id | string | No | Numeric account ID for Event Tracking. Required for custom events. |
event_tracking_key | secret | No | Event Tracking key. Required for custom events. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find ActiveCampaign under the Marketing Automation category.
- Click Install, and fill in the required fields with the credentials gathered above.
- Click Install Integration to create the integration with a ready-to-use default configuration.
API Setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/activecampaign/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "ActiveCampaign",
"variant": "default",
"config": {
"api_url": "https://your-account.api-us1.com",
"api_key": "xxxxxxxxxxxxxxxxxxxx",
"event_tracking_account_id": "12345",
"event_tracking_key": "xxxxxxxxxxxxxxxxxxxx"
},
"delivery_mode": "server_side"
}'Event Mapping
The default ActiveCampaign blueprint maps:
| Datafly Event | ActiveCampaign Concept | Notes |
|---|---|---|
page | page_view event | URL and page title sent via the Event Tracking API. |
Product Viewed | product_viewed event | Product ID, name, and price. |
Order Completed | purchase event | Order ID, revenue, and currency. |
identify | Contact sync | Email and traits update the contact record via POST /api/3/contacts. |
| Custom events | Dropped by default | Enable per-event in the blueprint editor. |
Identity
ActiveCampaign identifies contacts by email. Signal forwards:
| Field | Source | Notes |
|---|---|---|
email | traits.email | The primary contact key. Required for all contact operations. |
firstName | traits.first_name | Mapped to the contact’s first name. |
lastName | traits.last_name | Mapped to the contact’s last name. |
phone | traits.phone | Mapped to the contact phone field. |
Call datafly.identify() whenever a user logs in or submits a form:
datafly.identify("user-123", {
email: "jane@example.com",
first_name: "Jane",
last_name: "Doe"
});Consent
ActiveCampaign events should be sent under the marketing consent category. ActiveCampaign maintains list-level subscription opt-in records — Signal forwards the visitor’s CMP consent state on every event so automations can suppress non-consenting visitors.
Verify it’s working
- After installing the integration, trigger a test event from your website.
- In ActiveCampaign, navigate to Contacts and search for the test contact by email to verify the contact was created or updated.
- Click into the contact and check the Activity stream for the custom events Signal delivered.
- In Signal, check Live Events to confirm delivery with a
200response status.
Troubleshooting
| Symptom | Possible Cause | Resolution |
|---|---|---|
401 Unauthorized | Invalid API key or wrong API URL | Verify both in ActiveCampaign Settings > Developer. The API URL is specific to your account region. |
| Custom events not appearing | Event Tracking disabled or missing credentials | Enable Event Tracking in Settings > Developer and configure event_tracking_account_id + event_tracking_key. |
| Duplicate contacts | Email casing/whitespace mismatch | ActiveCampaign matches contacts exactly; ensure email addresses are normalised (lowercase, trimmed) before identify. |
429 Too Many Requests | Rate limit hit | ActiveCampaign applies per-account rate limits. Signal retries automatically on 429. |
Visit ActiveCampaign API documentation for full reference and event tracking details.