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 type | Where to add seeds | Complexity |
|---|---|---|
| Scheduled (Email Broadcast) | Subscribe seed to the target list; apply segment filters or include via separate filter | Low |
| 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
- Navigate to Contacts > Email Contacts > Subscribe/Unsubscribe Contacts
- Enter the seed email address
- Optionally: fill in segmentation field values (first name, last name, custom fields)
- Optionally: enter an EventID if you want to fire a Journey entry trigger simultaneously
- Optionally: toggle "send system default welcome message"
- 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
- Navigate to Contacts > Email Contacts (or through the list settings)
- Select the target list
- Import via CSV with columns: email address, segmentation field values
- 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 event | Description | Seed approach |
|---|---|---|
| List Subscription | Fires when a contact subscribes to the trigger list | Subscribe seed to the trigger list (via UI or API with EventID) |
| Cart Abandonment | Fires when a cart abandonment event is received from the ecommerce integration | Pass cart data via ecommerce integration or Cross Channel REST API |
| Product Browse Abandonment | Fires when a contact views a product page without adding to cart | Requires ecommerce integration passing browse events |
| Page Browse Abandonment | Fires when a contact visits a page without viewing a product | Requires ecommerce integration |
| Winback | Fires based on last purchase date exceeding a set timeframe | Seed must have purchase history tracked |
| Custom Event | Developer-defined event via Cross Channel REST API or JS integration | Call POST /crosschannel/v1/events with seed contact data |
| Segment (NextGen only) | Fires when a contact meets a defined segment's criteria | Set contact segmentation fields to satisfy the segment |
| Review Request (NextGen only) | Fires after a completed purchase to request a review | Pass 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_birthsegmentation 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 identifierExternalContactID- client-provided identifier (set at import)UniversalEmailKey- SHA256 hash of the email address (cross-list identity)
Platform-specific terminology
| Listrak term | What it means |
|---|---|
| Subscriber | A contact record in Listrak (subscription is list-specific). |
| List | The primary subscriber container. Subscription status is tracked per subscriber per list. |
| Subscription Point | A defined sign-up touchpoint attached to a list (web form, API integration, JS widget) that controls welcome message behavior. |
| Segment | A filter-based group of subscribers. Used for broadcast targeting and Journey Hub entry events (NextGen). |
| Journey Hub | Listrak's primary drag-and-drop automation builder. |
| Conductor | Listrak's legacy conversation-based automation system. Some accounts still use this. |
| Entry Event | The trigger that starts a Journey (List Subscription, Cart Abandonment, Custom Event, Segment, etc.). |
| EventID | The ID of a Journey Hub entry event. Can be passed when subscribing a contact to immediately fire the Journey entry. |
| Custom Event | A developer-defined Journey entry event fired via the Cross Channel REST API with object data for personalization. |
| segmentationField | A contact-level custom data field in Listrak. Referenced by numeric ID in the API. |
| Data Management step | A Journey action step that subscribes/unsubscribes contacts to/from lists within the Journey flow. |
| MultiPass | A broadcast configuration that allows the same email to be sent multiple times to qualifying contacts. |
| Frequency Cap | Account setting limiting the number of automated Journey/Conductor messages per contact per 24-hour period. Default: 3 per 24 hours. |
| NextGen | Listrak's updated platform with enhanced Journey Hub features (Segment entry, AI Channel Affinity, Subscribe/Unsubscribe action). |
overrideUnsubscribe | API 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