Release Status Released Supported By Singer community
Availability Free Status Page Listrak Status Page
Default Historical Sync 1 year Default Replication Frequency 30 minutes
Whitelisting Tables only Destination Incompatibilities None

Connecting Listrak

Step 1: Create a Listrak Stitch user

  1. Sign into your Listrak account.
  2. From the home page, click Manage.
  3. Click Accounts > User Manager.
  4. Scroll to the bottom of the page and click Create New User.
  5. Fill in the User Information fields.
  6. In the Lists section, select the lists you want the Stitch user to have access to. Note: Stitch will only be able to replicate data for lists that it is able to access.
  7. For Granted Access, select Role Based Access.
  8. In the section below this field, select check the boxes for the following permissions:
    • Analytics Access - This allows the Stitch user to view analytics for messages, contacts, and lists for available lists.
    • API Access - This allows the Stitch user to replicate data from your Listrak using the Listrak API.
  9. Click Add User when finished.

Step 2: Add Listrak as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Listrak icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Listrak” would create a schema called stitch_listrak in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the Username field, enter the Stitch Listrak user’s username.
  6. In the Password field, enter the Stitch Listrak user’s password.

Step 3: Define the Historical Sync

The Sync Historical Data setting will define the starting date for your Listrak integration. This means that:

  • For tables using Incremental Replication, data equal to or newer than this date will be replicated to your data warehouse.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Listrak’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Initial and historical replication jobs

After you finish setting up Listrak, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Listrak table schemas

Replication Method: Full Table API Endpoint: GetContactListCollection
Primary Key : ListID

The lists table contains info about your contact lists.

ListID
INTEGER

The list ID.

Reference:

bounceHandling
INTEGER

Indicates how bounces are handled for the list.

BounceUnsubscribeCount
INTEGER

The number of bounces allowed before being automatically unsubscribed from the list.

CreateDate
STRING

The time the list was created.

DomainAliasEmail
STRING

The alias email for emails in the list’s messages.

DomainAliasLink
STRING

The alias domain for links in the list’s messages.

EnableBrowserLink
BOOLEAN

If true, browser links are enabled for the list.

EnableDoubleOptin
BOOLEAN

If true, double opt-in is enabled for the list.

EnableDynamicContent
BOOLEAN

If true, dynamic content is enabled for the list.

EnableGoogleAnalytics
BOOLEAN

If true, Google Analytics is enabled for the list.

EnableInternationalization
BOOLEAN

If true, internationalization is enabled for the list.

EnableListHygiene
BOOLEAN

If true, list hygiene is enabled for the list.

EnableListRemoveHeader
BOOLEAN

If true, unsubscribe information is automatically included in message headers.

EnableRemovalLink
BOOLEAN

If true, list removal links are automatically included for the list.

EnableRSS
BOOLEAN

If true, RSS is enabled for the list.

FromName
STRING

The From name used by default when sending messages to the list.

FromEmail
STRING

The From email used by default when sending messages to the list.

GoogleTrackingDomains

The Google tracking domains associated with the list.

If your destination doesn't natively support nested data, this data may be denested into a subtable named lists__GoogleTrackingDomains. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_ListID
INTEGER

The list ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

GoogleTrackingDomains
STRING

The Google tracking domain.

ListName
STRING

The name of the list.

ShowAdvancedPersonalization
BOOLEAN

If true, advanced personalization is enabled for the list.


Replication Method: Full Table API Endpoint: ReportRangeMessageContactBounces
Primary Key : MsgID : EmailAddress

The message_bounces table contains info about contact bounces for a message.

MsgID
INTEGER

The ID of the message that bounced.

Reference:

EmailAddress
STRING

The email address associated with the bounce.

ContactID
STRING

The ID of the contact that the bounced message was sent to.

Reference: subscribed_contacts.
BounceReason
STRING

An explanation for the reason for the bounce.

BounceDetail
STRING

Additional detail about the bounce.

BounceDate
STRING

The date that the bounce occurred.

BounceCount
INTEGER

The number of bounces for the message.


Replication Method: Full Table API Endpoint: ReportRangeMessageContactClick
Primary Key : MsgID : EmailAddress

The message_clicks table contains info about contact clicks for a message.

MsgID
INTEGER

The message ID that contains the link that was clicked.

Reference:

EmailAddress
STRING

The email address of the contact who clicked the link.

ContactID
STRING

The ID of the contact who clicked the link.

Reference: subscribed_contacts.
LinkUrl
STRING

The URL of the link.

ClickDate
STRING

The date the contact clicked the link.

LinkDescription
STRING

A description of the link.


Replication Method: Full Table API Endpoint: ReportRangeMessageContactOpen
Primary Key : MsgID : EmailAddress

The message_opens table contains info about contact opens for a message.

MsgID
INTEGER

The ID of the message that was opened.

Reference:

EmailAddress
STRING

The email address of the contact that opened the email.

ContactID
STRING

The ID of the contact that opened the email.

Reference: subscribed_contacts.
OpenDate
STRING

The date the contact opened the email.


Replication Method: Full Table API Endpoint: ReportRangeMessageContactRead
Primary Key : MsgID : EmailAddress

The message_reads table contains info about contact reads for a message.

MsgID
INTEGER

The ID of the message that was read.

Reference: subscribed_contacts.
EmailAddress
STRING

The email address of the contact who read the message.

ContactID
STRING

The ID of the contact who read the message.

Reference: subscribed_contacts.
ReadDate
STRING

The date the contact read the message.


Replication Method: Full Table API Endpoint: ReportMessageContactSent
Primary Key : MsgID : EmailAddress

The message_sends table contains MsgID and EmailAddress pairs, allowing you to identify the messages that your contacts have been sent.

MsgID
INTEGER

The ID of the message that was sent.

Reference:

EmailAddress
STRING

The email address that the message was sent to.


Replication Method: Full Table API Endpoint: ReportRangeMessageContactRemoval
Primary Key : MsgID : EmailAddress

The message_unsubs table contains info about contacts who requested to be removed from a list from the supplied message.

MsgID
INTEGER

The ID of the message that resulted in the unsubscribe.

Reference:

EmailAddress
STRING

The email address that requested the unsubscribe.

ContactID
STRING

The ID of the contact who unsubscribed.

Reference: subscribed_contacts.
AdditionDate
STRING

The date the contact initially subscribed.

RemovalDate
STRING

The date the contact unsubscribed.

RemovalMethod
STRING

The method the contact used to unsubscribe.


Replication Method: Full Table API Endpoint: ReportListMessageActivity
Primary Key : MsgID

The messages table contains info about message statistics.

MsgID
INTEGER

The message ID.

Reference:

AverageOrderValue
NUMBER

The average order value associated with the message.

ClickCount
INTEGER

The current number of clicks for the message.

ClickerCount
INTEGER

The current number of contacts who clicked for the message.

ClickerPercent
NUMBER

The percent of contacts who clicked the message.

ConversionCount
INTEGER

The current number of conversions for the message.

DeliverCount
INTEGER

The current number of messages delivered.

ListID
INTEGER

The ID of the list the message was sent to.

Reference:

NewClickerCount
INTEGER

The current number of new clickers for the message.

OpenCount
INTEGER

The current number of opens for the message.

OpenPercent
NUMBER

The percentage of contacts who opened the message.

OrderTotal
NUMBER

The order total associated with the message.

ReadCount
INTEGER

The current number of reads for the message.

ReadPercent
NUMBER

The percentage of contacts who read the message.

RemovePercent
NUMBER

The percentage of contacts who unsubscribed as a result of the message.

RemoveCount
INTEGER

The current number of unsubscribes for the message.

RepeatClickerCount
INTEGER

The current number of contacts who clicked multiple times for the message.

SendDate
STRING

The date the message was sent.

Subject
STRING

The subject of the message.


subscribed_contacts

Replication Method: Full Table API Endpoint: ReportRangeSubscribedContacts
Primary Key : ContactID : ListID

The subscribed_contacts table contains info about contacts who are currently subscribed to the specified list.

ContactID
STRING

The ID of the contact.

Reference: subscribed_contacts.
ListID
INTEGER

The ID of the list the contact is subscribed to.

Reference:

AdditionDate
STRING

The date the contact was added to the list.

AdditionMethod
STRING

The method used to add the contact to the list.

EmailAddress
STRING

The email address associated with the contact.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.