Integrations

Listrak: Telltide Seed Address Guide

Place Telltide seeds in Listrak lists and conductors.

Listrak is an ecommerce-focused email and SMS platform. Contacts are called "subscribers" and subscription status is list-specific. Journey Hub is the primary automation builder. The most important constraint for seed management: unlike most ESPs, Listrak's "List Subscription" Journey entry event allows re-entry every time a contact re-subscribes to the trigger list - there is no "once ever" block. This makes resetting seeds for repeated testing straightforward: unsubscribe and re-subscribe to re-enter the Journey.

Quick reference

Send typeWhere to add seedsComplexity
Scheduled (Email Broadcast)Subscribe seed to the target list; apply segment filters or include via separate filterLow
Ongoing (Journey Hub)Subscribe seed to the trigger list (with optional EventID to fire Journey entry)Low-Medium

1. Scheduled / one-off sends (Email Broadcasts)

Listrak Email Broadcasts are one-time sends to a list or filtered segment. Seeds must be subscribed to the target list.

Where to add seed addresses

Subscribe the seed to the broadcast's target list. Apply the telltide-seed subscriber tag (or equivalent segmentation field value) so seeds can be included in broadcast audience filters independent of behavioral segment conditions.

Step-by-step: Subscribe a seed contact via UI

  1. Navigate to Contacts > Email Contacts > Subscribe/Unsubscribe Contacts
  2. Enter the seed email address
  3. Optionally: fill in segmentation field values (first name, last name, custom fields)
  4. Optionally: enter an EventID if you want to fire a Journey entry trigger simultaneously
  5. Optionally: toggle "send system default welcome message"
  6. Click Subscribe

Step-by-step: Subscribe seed via REST API

POST https://api.listrak.com/email/v1/lists/{listId}/contacts
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "emailAddress": "seed@example.com",
  "segmentationFieldValues": [
    {
      "segmentationFieldId": {{field_id}},
      "value": "Seed"
    },
    {
      "segmentationFieldId": {{last_name_field_id}},
      "value": "Monitor"
    }
  ],
  "eventId": {{journey_event_id}},
  "overrideUnsubscribe": false
}

Authentication: OAuth2 client credentials. Obtain token:

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

grant_type=client_credentials&client_id={{client_id}}&client_secret={{client_secret}}

segmentationFieldValues: Array of field ID + value pairs for the list's segmentation fields. Retrieve field IDs from:

GET https://api.listrak.com/email/v1/lists/{listId}/segmentationFields

eventId: Optional. If provided, fires the corresponding Journey Hub entry event for this contact at the time of subscription. Retrieve event IDs from the Journey Hub settings.

overrideUnsubscribe: Set to true to re-subscribe a contact that previously unsubscribed. Required when re-adding a seed that was previously unsubscribed via an unsubscribe link.

Step-by-step: Bulk import seeds via CSV

  1. Navigate to Contacts > Email Contacts (or through the list settings)
  2. Select the target list
  3. Import via CSV with columns: email address, segmentation field values
  4. Optionally include EventID column to fire Journey triggers on import

Profile attributes required

Seeds need:

  • Email address
  • Active subscription status on the target list (not unsubscribed or inactive)
  • Values for any segmentation fields referenced in email template personalization

Ensuring seeds receive the same version as real recipients

Segment filters on broadcasts: Listrak broadcasts support segment filtering (behavioral, demographic, lifecycle, CRM, predictive). Seeds may not satisfy these conditions. Use the "No Filter" option alongside a seed-specific filter (e.g., segmentation field is_seed = true) with OR logic to include seeds regardless of main segment conditions.

MultiPass broadcasts: Listrak's MultiPass feature allows a single email to be sent multiple times to qualifying contacts. Seeds receive each qualifying send.

Gotchas

overrideUnsubscribe: true required to re-subscribe. If a seed previously clicked an unsubscribe link or was manually unsubscribed, the standard POST /contacts call fails without overrideUnsubscribe: true. Always include this flag when re-activating seed accounts.

Frequency cap applies to automated sends. The "Automated Campaign Only Frequency Cap" setting limits the number of Journey and Conductor messages a contact receives within a 24-hour period (default: 3). Seeds are subject to this cap unless the individual campaign has a per-send override enabled. Check Account Settings > Frequency Cap for current limits.


2. Ongoing / automated journeys (Journey Hub)

Journey Hub is Listrak's primary automation builder. Each Journey has an Entry Event (trigger), Action Steps (send email/SMS, data management, wait), and Decision Splits.

Journey Hub entry event types

Entry eventDescriptionSeed approach
List SubscriptionFires when a contact subscribes to the trigger listSubscribe seed to the trigger list (via UI or API with EventID)
Cart AbandonmentFires when a cart abandonment event is received from the ecommerce integrationPass cart data via ecommerce integration or Cross Channel REST API
Product Browse AbandonmentFires when a contact views a product page without adding to cartRequires ecommerce integration passing browse events
Page Browse AbandonmentFires when a contact visits a page without viewing a productRequires ecommerce integration
WinbackFires based on last purchase date exceeding a set timeframeSeed must have purchase history tracked
Custom EventDeveloper-defined event via Cross Channel REST API or JS integrationCall POST /crosschannel/v1/events with seed contact data
Segment (NextGen only)Fires when a contact meets a defined segment's criteriaSet contact segmentation fields to satisfy the segment
Review Request (NextGen only)Fires after a completed purchase to request a reviewPass purchase completion via integration

Creating trap profiles per journey type

Welcome / onboarding (List Subscription entry)

  • Entry: List Subscription - fires every time a contact subscribes (or re-subscribes) to the trigger list
  • Seed requirements: Email address subscribed to the trigger list
  • How to trigger: Subscribe the seed to the trigger list. Include the Journey's EventID in the subscription API call to directly fire the entry event:
POST https://api.listrak.com/email/v1/lists/{listId}/contacts
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "emailAddress": "seed@example.com",
  "eventId": {{welcome_journey_event_id}},
  "segmentationFieldValues": [
    {"segmentationFieldId": {{first_name_field_id}}, "value": "Seed"}
  ]
}

The eventId fires the Journey entry trigger directly, bypassing the need for a standard subscription-event evaluation.

  • Re-entry for repeated testing: Unsubscribe the seed, then re-subscribe. Each subscription event fires a new Journey entry. No "once ever" block - the List Subscription trigger allows re-entry on every subscription.

Abandoned cart (Cart Abandonment entry)

  • Entry: Cart Abandonment - fires when cart abandonment data is received via the ecommerce integration
  • Seed requirements: Email address subscribed to the list; cart data (product IDs, names, prices, image URLs, cart URL) passed via the integration
  • For integrated stores (Shopify, Magento): Perform a real test checkout with the seed email address and abandon before completing payment
  • Via Cross Channel REST API:
POST https://api.listrak.com/crosschannel/v1/events
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "eventKey": "{{cart_abandonment_event_key}}",
  "contactEmailAddress": "seed@example.com",
  "objectData": {
    "cartId": "CART-TEST-001",
    "cartUrl": "https://yourstore.com/cart",
    "cartValue": 95.00,
    "items": [
      {
        "productId": "SKU-123",
        "productName": "Widget Pro",
        "productPrice": 95.00,
        "productUrl": "https://yourstore.com/products/widget",
        "productImageUrl": "https://yourstore.com/img/widget.jpg",
        "quantity": 1
      }
    ]
  }
}

The eventKey is the key for the custom event type defined in Journey Hub. Retrieve from the Journey's Custom Event entry settings.

Browse abandonment (Product Browse Abandonment entry)

  • Entry: Product Browse Abandonment - requires ecommerce integration passing browse events
  • Seed requirements: Email address subscribed to list; browse event with product data
  • How to trigger: Same Cross Channel REST API approach as abandoned cart, with a product browse event type instead of cart abandonment

Winback / re-engagement (Winback entry)

  • Entry: Winback - fires based on last purchase date exceeding a configured timeframe (e.g., no purchase in 90 days)
  • Seed requirements: Email address subscribed to list; purchase history data tracked via the ecommerce integration
  • How to trigger: For connected stores, purchase history is tracked automatically. For manual testing, the Segment entry event (NextGen only) can be used instead: define a segment for "last purchase date > 90 days ago" and subscribe the seed with a segmentation field that satisfies the condition.

Post-purchase (Custom Event entry)

  • Entry: Custom Event - fired after a confirmed purchase via ecommerce integration or Cross Channel REST API
  • Seed requirements: Email address subscribed to list; order data available in the event's objectData
  • Via Cross Channel REST API:
POST https://api.listrak.com/crosschannel/v1/events
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "eventKey": "{{post_purchase_event_key}}",
  "contactEmailAddress": "seed@example.com",
  "objectData": {
    "orderId": "TEST-ORD-001",
    "orderTotal": 149.99,
    "items": [
      {
        "productId": "SKU-123",
        "productName": "Widget Pro",
        "price": 149.99,
        "quantity": 1
      }
    ]
  }
}

Birthday / anniversary (Segment entry - NextGen)

  • Entry: Segment entry event (NextGen platform only) - fires when a contact first meets a segment's criteria. Configure the segment: date_of_birth anniversary is today
  • Seed requirements: Email address subscribed to list; date_of_birth segmentation field set

Set the segmentation field on subscribe:

POST https://api.listrak.com/email/v1/lists/{listId}/contacts
{
  "emailAddress": "seed@example.com",
  "segmentationFieldValues": [
    {"segmentationFieldId": {{birthday_field_id}}, "value": "1990-04-15"}
  ]
}

Or update the field on an existing subscriber:

PUT https://api.listrak.com/email/v1/lists/{listId}/contacts/{contactId}/segmentationFields
{
  "segmentationFieldValues": [
    {"segmentationFieldId": {{birthday_field_id}}, "value": "1990-04-15"}
  ]
}
  • For Conductor (legacy) or non-NextGen accounts: Use a scheduled broadcast filtered to "birthday this week/today" segment as the birthday send mechanism instead of a Journey entry.

Data Management Action Step

Within a Journey, the Data Management action step can subscribe or unsubscribe a contact to/from a list. When a contact is subscribed via this step, it fires the List Subscription entry event on that list - which can trigger a connected Journey. Use this for post-purchase-to-list handoffs: purchase Journey subscribes the contact to a "Recent Purchasers" list, which fires the post-purchase Journey entry.


How to reset seeds for repeated Journey testing

List Subscription entry: Unsubscribe the seed from the trigger list, wait for the Journey to complete or exit, then re-subscribe. Each subscription fires a new entry.

Custom Event entry: Fire the event via Cross Channel REST API again. Journey re-entry settings determine if multiple simultaneous instances are allowed.

Segment entry (NextGen): Remove the qualifying segmentation field condition, wait for the segment membership to update, then re-add the qualifying value.


3. Platform-specific considerations

API options

Authentication (OAuth2):

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

grant_type=client_credentials&client_id={{id}}&client_secret={{secret}}

Subscribe contact to list:

POST https://api.listrak.com/email/v1/lists/{listId}/contacts
Authorization: Bearer {{access_token}}

Update contact segmentation fields:

PUT https://api.listrak.com/email/v1/lists/{listId}/contacts/{contactId}/segmentationFields

Get list segmentation fields (retrieve field IDs):

GET https://api.listrak.com/email/v1/lists/{listId}/segmentationFields

Cross Channel event (custom Journey entry):

POST https://api.listrak.com/crosschannel/v1/events

API documentation: api.listrak.com/email (Email REST API reference). Client credentials and configuration: Listrak account settings > Integrations.

Rate limits

Listrak does not publish specific API rate limits publicly. For bulk imports of many seed contacts, use the batch import functionality rather than individual API calls.

Duplicate and subscription handling

Email address is the unique identifier per list. A contact can be subscribed to multiple lists independently. Subscribing a contact that already exists updates their record and fires the subscription event. Unsubscribing records the unsubscribe event and changes the contact to inactive status on that list.

Listrak generates several identifiers per contact:

  • EmailKey - Listrak-proprietary per-contact identifier
  • ExternalContactID - client-provided identifier (set at import)
  • UniversalEmailKey - SHA256 hash of the email address (cross-list identity)

Platform-specific terminology

Listrak termWhat it means
SubscriberA contact record in Listrak (subscription is list-specific).
ListThe primary subscriber container. Subscription status is tracked per subscriber per list.
Subscription PointA defined sign-up touchpoint attached to a list (web form, API integration, JS widget) that controls welcome message behavior.
SegmentA filter-based group of subscribers. Used for broadcast targeting and Journey Hub entry events (NextGen).
Journey HubListrak's primary drag-and-drop automation builder.
ConductorListrak's legacy conversation-based automation system. Some accounts still use this.
Entry EventThe trigger that starts a Journey (List Subscription, Cart Abandonment, Custom Event, Segment, etc.).
EventIDThe ID of a Journey Hub entry event. Can be passed when subscribing a contact to immediately fire the Journey entry.
Custom EventA developer-defined Journey entry event fired via the Cross Channel REST API with object data for personalization.
segmentationFieldA contact-level custom data field in Listrak. Referenced by numeric ID in the API.
Data Management stepA Journey action step that subscribes/unsubscribes contacts to/from lists within the Journey flow.
MultiPassA broadcast configuration that allows the same email to be sent multiple times to qualifying contacts.
Frequency CapAccount setting limiting the number of automated Journey/Conductor messages per contact per 24-hour period. Default: 3 per 24 hours.
NextGenListrak's updated platform with enhanced Journey Hub features (Segment entry, AI Channel Affinity, Subscribe/Unsubscribe action).
overrideUnsubscribeAPI parameter that re-subscribes a previously unsubscribed contact. Required for reactivating seeds.

Known limitations and workarounds

overrideUnsubscribe: true is required to re-subscribe previously unsubscribed contacts. Without it, the API call silently fails to re-subscribe the contact. Always include this flag in seed re-activation calls.

Frequency Cap limits automated Journey sends to 3 per 24 hours by default. Seeds receiving multiple Journey emails in rapid succession (as happens during multi-step Journey testing) may hit this cap. Temporarily increase the cap or enable the per-send override on specific Journey emails during testing periods.

Segmentation field IDs are not human-readable. They are numeric identifiers. Retrieve them via GET /lists/{listId}/segmentationFields before building seed management scripts.

Segment entry event (NextGen only). If your Listrak account is not on the NextGen platform, Segment entry events are unavailable. Use the Custom Event trigger with Cross Channel REST API as the equivalent for programmatic entry.

Birthday Journey requires NextGen Segment entry for API-based testing. Without NextGen, birthday campaigns are typically sent as scheduled broadcasts with date-based segment filters rather than as ongoing Journeys.

Start monitoring your Listrak sends

Place a Telltide seed in your Listrak audience, and we will tell you when an expected email did not land.

Start free