ActiveCampaign
Marketing automation and CRM platform combining email marketing, automation workflows, sales pipelines, and customer messaging.
Why route ActiveCampaign through Datafly Signal
- Profiles are updated from the server, not the browser. Events reach ActiveCampaign even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
- Presets for Retail and B2B / SaaS. The mapping starts from a working configuration for your vertical instead of a blank field map.
- One consent decision governs every destination. ActiveCampaign is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
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 |
|---|---|---|---|
event_tracking_account_id | string | Yes | The account ID (actid) from Website > Site Tracking > Event Tracking. |
event_tracking_key | secret | Yes | The Event Key from the same page. |
api_url | string | No | Not used by event delivery. |
api_key | secret | No | Not used by event delivery. |
Event Tracking must be turned on under Website > Site Tracking.
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"
}'API endpoint
POST https://trackcmp.net/eventAllow egress to trackcmp.net from the network your delivery workers run on.
Event Mapping
Each event is a form POST to https://trackcmp.net/event with actid, key, event (at most 32 characters), visit ({"email": "..."}) and eventdata, a JSON string of the event’s key properties (currency upper-case, value a number).
| Signal event | ActiveCampaign event | Preset |
|---|---|---|
view_item | product_viewed | Retail |
add_to_cart | added_to_cart | Default, Retail |
begin_checkout | checkout_started | Default, Retail |
purchase / refund | purchase / refund (transaction_id, value, currency) | Default, Retail |
search | searched | Retail |
sign_up / login | signed_up / logged_in | All / Default |
generate_lead | lead | Default, B2B / SaaS |
demo_requested, trial_started, trial_converted, subscription_started, subscription_cancelled | same names | B2B / SaaS |
Contact create and update through the v3 contacts API is not part of this integration.
Identity
ActiveCampaign matches an event to the contact by email, sent in plain text in visit because that is how Event Tracking identifies the contact. The address is trimmed and lower-cased; events without an email are not sent.
datafly.identify("user-123", { email: "jane@example.com" });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.