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:

  1. Enable event tracking if not already enabled.
  2. 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

FieldTypeRequiredDescription
event_tracking_account_idstringYesThe account ID (actid) from Website > Site Tracking > Event Tracking.
event_tracking_keysecretYesThe Event Key from the same page.
api_urlstringNoNot used by event delivery.
api_keysecretNoNot used by event delivery.

Event Tracking must be turned on under Website > Site Tracking.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find ActiveCampaign under the Marketing Automation category.
  4. Click Install, and fill in the required fields with the credentials gathered above.
  5. 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/event

Allow 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 eventActiveCampaign eventPreset
view_itemproduct_viewedRetail
add_to_cartadded_to_cartDefault, Retail
begin_checkoutcheckout_startedDefault, Retail
purchase / refundpurchase / refund (transaction_id, value, currency)Default, Retail
searchsearchedRetail
sign_up / loginsigned_up / logged_inAll / Default
generate_leadleadDefault, B2B / SaaS
demo_requested, trial_started, trial_converted, subscription_started, subscription_cancelledsame namesB2B / 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" });

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

  1. After installing the integration, trigger a test event from your website.
  2. In ActiveCampaign, navigate to Contacts and search for the test contact by email to verify the contact was created or updated.
  3. Click into the contact and check the Activity stream for the custom events Signal delivered.
  4. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid API key or wrong API URLVerify both in ActiveCampaign Settings > Developer. The API URL is specific to your account region.
Custom events not appearingEvent Tracking disabled or missing credentialsEnable Event Tracking in Settings > Developer and configure event_tracking_account_id + event_tracking_key.
Duplicate contactsEmail casing/whitespace mismatchActiveCampaign matches contacts exactly; ensure email addresses are normalised (lowercase, trimmed) before identify.
429 Too Many RequestsRate limit hitActiveCampaign applies per-account rate limits. Signal retries automatically on 429.

Visit ActiveCampaign API documentation for full reference and event tracking details.

See also