Listrak

Datafly Signal delivers your first-party events server-to-server to the Listrak Cross Channel REST API, passing contacts and their event detail into a custom event journey in Listrak Journey Hub. Contacts are matched by email address, so behaviour captured on your site can trigger Listrak email and SMS automations without a browser pixel.

Prerequisites

  • A Listrak account with Journey Hub and at least one custom event configured.
  • A Listrak integration created under Integrations > Integration Management > New Integration, which gives you an OAuth Client ID and Client Secret. The secret is shown only once and cannot be retrieved later — store it securely.
  • Your Listrak Company ID.
  • The Event UID of the custom event in Journey Hub you want incoming events to trigger.

Configuration

FieldRequiredDescription
Client IDYesOAuth Client ID from your Listrak integration.
Client SecretYesOAuth Client Secret paired with the Client ID. Shown once at creation.
Company IDYesYour Listrak company (account) ID. Sent as companyId.
Event UIDYesThe unique ID of the Journey Hub custom event to trigger. Sent as eventUid.

Configure in Signal

  1. In the Signal management UI, open Integrations and add Listrak.
  2. Enter your Client ID, Client Secret, Company ID, and Event UID.
  3. Attach the Listrak integration to the pipeline that carries the events you want to forward.
  4. Select the Default preset (or customise the event mappings) and save.

Signal authenticates with Listrak using the OAuth 2.0 client_credentials grant. It exchanges your Client ID and Client Secret for a short-lived access token at https://auth.listrak.com/OAuth2/Token and sends that token as a Bearer credential on every event request. Tokens are cached and refreshed automatically.

API Endpoint

POST https://api.listrak.com/crosschannel/v1/Event
Authorization: Bearer <access_token>
Content-Type: application/json

Authentication token request:

POST https://auth.listrak.com/OAuth2/Token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=<id>&client_secret=<secret>

The entire custom event request (including headers) has a maximum size of 1 MB.

Identity Signals

Listrak matches each event to an existing contact by email address. Signal places the email in the identifiers array with identifierType of EmailAddress:

"identifiers": [
  { "identifierType": "EmailAddress", "identifierValue": "user@example.com" }
]

The email is trimmed and lowercased before sending. Listrak matches on the raw email address (it is not hashed). Events without a known email are dropped, because the Cross Channel API cannot associate them with a contact journey.

Event Mapping

Signal uses GA4-style snake_case event names. The Default preset maps:

Signal eventListrak custom event detail (dataFields.event_name)
pagepage_view
Signed Upsign_up
Product Viewedview_item
Product Addedadd_to_cart
Order Completedpurchase

All event detail is sent inside the dataFields object, which is addressable with Handlebars in your Journey Hub messages. The custom event itself is selected by the eventUid you configured.

Example: Order Completed

Datafly.js call on your site:

datafly.track("Order Completed", {
  order_id: "ORD-10428",
  revenue: 129.99,
  currency: "USD",
  tax: 8.50,
  shipping: 5.00,
  coupon: "WELCOME10"
});

Resulting payload Signal sends to Listrak:

{
  "eventUid": "00000000-0000-0000-0000-000000000000",
  "companyId": 12345,
  "events": [
    {
      "identifiers": [
        { "identifierType": "EmailAddress", "identifierValue": "user@example.com" }
      ],
      "dataFields": {
        "event_name": "purchase",
        "order_id": "ORD-10428",
        "revenue": 129.99,
        "currency": "USD",
        "tax": 8.50,
        "shipping": 5.00,
        "coupon": "WELCOME10",
        "event_time": "2026-06-06T12:34:56Z"
      }
    }
  ]
}

Testing

  1. Trigger a tracked event on a page where the contact’s email is known (e.g. after sign-up or login).
  2. In Journey Hub, open the custom event and confirm a new event was received for the contact.
  3. Inspect the dataFields values using a Handlebars expression in a test journey message to confirm the detail arrived.
  4. In Signal’s Event Debugger, confirm the delivery returned 200 and the payload matches the example above.

Troubleshooting

  • 401 Unauthorized — the access token is invalid or expired. Re-check the Client ID and Client Secret; confirm the integration is not paused in Listrak (a paused integration rejects both token requests and event posts).
  • 403 Forbidden — the integration lacks Cross Channel access, or API access has been paused on the Integrations page in Listrak.
  • 404 Not Found — the eventUid or companyId is wrong. Confirm both against your Journey Hub custom event and account settings.
  • 400 Bad Request — the payload is malformed, missing the email identifier, or exceeds the 1 MB request limit.
  • No contact match — verify the email is present and correct; Listrak matches on the raw email address and cannot create a journey entry without a resolvable contact.