IntegrationsCDPActionIQ

ActionIQ

Enterprise customer data platform for audience management, journey orchestration, and real-time personalisation at scale.

Why route ActionIQ through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach ActionIQ even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what ActionIQ needs to attribute the event to the right session.
  • One consent decision governs every destination. ActionIQ is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Complete these steps with ActionIQ before configuring Signal.

Ask ActionIQ for a real-time ingestion source

ActionIQ provisions server-side ingestion per customer and does not publish a public ingestion API. Ask your ActionIQ account manager for a real-time (streaming) ingestion source for Datafly Signal events.

Collect the connection details

ActionIQ provides four values: the API username and password (HTTP Basic auth), the ingestion base URL and the endpoint identifier that selects the stream. Keep the password secret.

Agree the payload shape

Signal sends each event with uuid, user, timestamp and a properties object (see Event Mapping). Share it with ActionIQ so the source’s schema matches.

Configuration

FieldTypeRequiredDescription
usernamestringYesThe API username ActionIQ issues for your ingestion source.
passwordsecretYesThe API password ActionIQ issues for your ingestion source. Sent with the username as HTTP Basic auth.
ingest_base_urlstringYesThe https:// base URL of your ActionIQ real-time ingestion endpoint, without a trailing slash.
endpoint_identifierstringYesThe endpoint identifier that selects the ActionIQ stream Signal sends to. Appended to the base URL.

Ask your ActionIQ account manager for all four values. ActionIQ does not publish a public ingestion API, so the endpoint is provisioned per customer.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find ActionIQ under the CDP 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/actioniq/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ActionIQ",
    "variant": "default",
    "config": {
      "username": "your-aiq-username",
      "password": "xxxxxxxxxxxxxxxxxxxx",
      "ingest_base_url": "https://ingest.your-tenant.actioniq.com",
      "endpoint_identifier": "signal-events"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

Each event is POSTed to {ingest_base_url}/{endpoint_identifier} with HTTP Basic auth. The request follows the documented server-side ActionIQ mapping of MetaRouter, the only public description of ActionIQ ingestion; validate it against your ActionIQ source before go-live.

{
  "uuid": "3f1c2a90-7d4e-4b8a-9c61-2f0e5d7a1b22",
  "user": "crm-user-7",
  "timestamp": "1758500000123",
  "properties": {
    "eventType": "purchase",
    "anonymousId": "df_anon_0001",
    "isAnonymous": false,
    "context": {"ip": "203.0.113.7", "userAgent": "Mozilla/5.0 ...", "locale": "en-GB", "page": {"url": "https://www.example.com/checkout"}},
    "consent": {"marketing": "granted"},
    "transaction_id": "T-1001", "value": 279.98, "currency": "GBP", "items": [ ... ]
  }
}
FieldValue
uuidThe Signal event ID
userThe Signal user ID (absent for anonymous visitors)
timestampMilliseconds since epoch, as a string
properties.eventTypeThe Signal event name (page for page views, identify for identify calls)
properties.*Every property the event spec documents for the event; currency upper-cased, items as an array

Presets: Retail (ecommerce), Default, Insurance, B2B / SaaS, Travel and Media & Streaming, each covering the events of its event spec. Events a preset does not list are not sent.

Identity

FieldSourceNotes
userdatafly.identify() user IDThe customer ID ActionIQ merges profiles on.
properties.anonymousIdDatafly anonymous identifierAlways present, so pre-login activity joins the profile later.
properties.traits.emailidentify traitsSent on identify calls only, as it is (not hashed): ActionIQ builds customer profiles on it.

Call datafly.identify() whenever a user logs in or submits a form so subsequent events carry a stable user ID:

datafly.identify("user-123", { email: "jane@example.com" });

ActionIQ events should be sent under the marketing consent category by default. If your CMP exposes a separate analytics category, you can broaden the consent categories on the integration to include both.

Visitors who have not granted the required consent are filtered out of delivery by Signal — ActionIQ never receives their events.

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the ActionIQ API. No client-side scripts are loaded for this integration.

Verify it’s working

  1. After installing the integration, trigger a test event from your website or via the Signal event API.
  2. In ActionIQ, navigate to Connections > Destinations and select your destination. Check the Activity Log for recently received records.
  3. Verify that event attributes (event name, properties, user identifiers) appear correctly.
  4. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedWrong username or passwordConfirm the credentials with your ActionIQ account manager and update the integration config
404 Not FoundWrong ingestion base URL or endpoint identifierConfirm both values with your ActionIQ account manager
429 Too Many RequestsRate limit exceededActionIQ applies rate limits per destination. Contact ActionIQ support to increase limits if needed
Events delivered but not visibleDestination not activeEnsure the destination status is Active in ActionIQ Connections

Visit ActionIQ documentation for full API reference and advanced configuration options.

See also