Listrak

Listrak is a retail email and SMS marketing platform. Datafly Signal triggers a Journey Hub custom event through the Cross Channel REST API (POST /crosschannel/v1/eventConfigurations/{eventUID}/events).

Why route Listrak through Datafly Signal

  • Events come from your server, not the browser. They reach Listrak even when a tracker blocker or a failed page unload would have dropped a client-side call.
  • Delivery is queued and retried. Signal buffers to Kafka and retries on 429 or a transient failure rather than dropping the event; a permanent rejection goes to the dead-letter queue with the vendor’s reason.
  • One consent decision governs every destination. Listrak is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Get your Listrak credentials

Create a Cross Channel integration

In Listrak go to Integrations > Integration Management > New Integration, choose Cross Channel API, and store the Client ID and Client Secret (the secret cannot be retrieved later).

Create the custom event

Create the custom event in Journey Hub with the fields you want (for example order_id, value, currency), and note its Event UID.

Configuration

FieldRequiredDescription
client_idYesOAuth Client ID for your Listrak integration. Found under Integrations > Integration Management when you create an integration.
client_secretYesOAuth Client Secret paired with the Client ID. Shown only once at integration creation and cannot be retrieved later — store it securely.
event_uidYesThe Event UID of the Journey Hub custom event to trigger (Integrations > Integration Management > your Cross Channel integration > Custom Events, or GET /crosschannel/v1/eventConfigurations). One integration triggers one custom event.

Management UI setup

  1. Go to Integrations in the sidebar and open the Integration Library tab.
  2. Find Listrak under Marketing Automation and click Install.
  3. Choose a preset, enter the fields above and click Install Integration.

Management API setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/listrak/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Listrak",
  "variant": "default",
  "config": {
    "client_id": "your_client_id",
    "client_secret": "your_client_secret",
    "event_uid": "your_event_uid"
  },
  "delivery_mode": "server_side"
}'

What Signal sends

An example request, rendered from the ecommerce preset for purchase:

POST https://api.listrak.com/crosschannel/v1/eventConfigurations/00000000-0000-0000-0000-000000000001/events
 
events=%7B%27dataFields%27%3A+%7B%27coupon%27%3A+%27AUTUMN10%27%2C+%27currency%27%3A+%27GBP%27%2C+%27event_name%27%3A+%27purchase%27%2C+%27event_time%27%3A+%272025-09-22T00%3A13%3A20Z%27%2C+%27item_count%27%3A+%272%27%2C+%27item_id%27%3A+%27SKU-1%27%2C+%27item_name%27%3A+%27Parka+Jacket%27%2C+%27item_price%27%3A+%27129.99%27%2C+%27order_id%27%3A+%27ORD-1001%27%2C+%27shipping%27%3A+%274.99%27%2C+%27tax%27%3A+%2746.66%27%2C+%27user_id%27%3A+%27crm-user-7%27%2C+%27value%27%3A+%27279.98%27%7D%2C+%27identifiers%27%3A+%5B%7B%27identifierType%27%3A+%27EmailAddress%27%2C+%27identifierValue%27%3A+%27neill%40example.com%27%7D%5D%7D
FieldSource
events[0].identifiersEmailAddress with the contact’s email from identify() traits, trimmed and lower-cased. Required.
events[0].dataFieldsThe event name, time, user ID and the event’s properties, all as strings (Listrak parses them to the schema’s types). Only fields in the custom event’s schema are kept.

Listrak looks the contact up by email and accepts no hashed identifier, so the email is sent in plain text. An event without an email is not sent. The contact must be subscribed to your email or SMS list to enter the journey.

Presets

PresetSignal event → vendor event
Defaultsign_up, newsletter_subscribed (disabled), generate_lead (disabled), purchase (disabled)
Retailpurchase, add_to_wishlist (disabled), product_reviewed (disabled), order_shipped (disabled), refund (disabled)

Events not listed are not sent. Each preset is a starting point: add, rename or remove mappings on the installed integration.

Notes and limits

  • One integration triggers one custom event (the Event UID). Each preset enables the one event that should start the journey and lists alternatives disabled; to trigger several journeys, install the integration once per custom event.

Marketing-automation integrations have no consent category by default. Assign the marketing category when you install Listrak, so an event is delivered only when the visitor has granted it. Cookie-banner consent is not email or SMS opt-in: keep messaging opt-in in Listrak.

Verify it’s working

  1. Open the integration in the Signal Management UI and watch Live Events while you trigger a mapped event.
  2. Confirm a 2xx response from Listrak.
  3. Find the contact in Listrak and check the event or record arrived.

Troubleshooting

SymptomResolution
401Client credentials wrong, or API access paused on the Integrations page.
404The Event UID does not exist.
Journey not enteredThe contact is not subscribed, or the data field names do not match the custom event’s schema.