Sailthru integration summary

Stitch’s Sailthru integration replicates data using the Sailthru API. Refer to the Schema section for a list of objects available for replication.

Sailthru feature snapshot

A high-level look at Stitch's Sailthru (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Beta

Supported by

Stitch

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-sailthru

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Sailthru

Step 1: Retrieve your API key and secret

  1. Log into your Sailthru account.
  2. Navigate to the API & Postbacks settings page in My Sailthru.
  3. Click the lock icon to display your API key and API secret.
  4. Copy these values and have them readily available for the next step.

Step 2: Add Sailthru 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 Sailthru 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 Sailthru” would create a schema called stitch_sailthru in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the API Key field, paste the API key you copied from from step 1.
  6. In the API Secret field, paste the API secret you copied from step 1.

Step 3: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Sailthru integration. This means that:

  • For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
  • 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 destination.

Change this setting if you want to replicate data beyond Sailthru’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.

Sailthru integrations support the following replication scheduling methods:

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

Step 5: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Sailthru integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Sailthru, 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.


Sailthru table reference

ad_targeter_plans

Replication Method :

Full Table

Primary Key :

plan_id

API endpoint :

get AdTargeterPlan

The ad_targeter_plans table contains information about Ad Targeter Plans in your Sailthru account.

plan_id
STRING

The plan ID.

list
STRING

The list ID

name
STRING

schedule
ARRAY

value
STRING

ad_targeter_plans (table), schedule (attribute)

Replication Method :

Key-based Incremental

Replication Key :

modify_time

Primary Key :

blast_id

API endpoint :

get Blasts

The blasts table contains infomation about your specific Sailthru campaigns, or information about campaigns by status types: sent, sending, scheduled, unscheduled.

blast_id
INTEGER

The blast ID.

modify_time
DATE-TIME

The time the campaign was last modified.

copy_template
STRING

data_feed_url
STRING

email_count
INTEGER

list
STRING

The list ID.

mode
STRING

modify_user
STRING

name
STRING

schedule_time
DATE-TIME

sent_count
INTEGER

start_time
DATE-TIME

stats
OBJECT

total
OBJECT

beacon_noclick
INTEGER

count
INTEGER

open_total
INTEGER

pv
INTEGER

blasts (table), total (attribute)
blasts (table), stats (attribute)

status
STRING

subject
STRING


Replication Method :

Full Table

Primary Key :

blast_id : profile_id

API endpoint :

get BlastQuery

The blast_query table contains information from blast query jobs in your Sailthru account. This is a child table of blasts.

blast_id
INTEGER

The blast ID.

profile_id
STRING

The profile ID.

click_time
DATE-TIME

device
STRING

email_hash
STRING

first_ten_clicks
ARRAY

items
STRING

blast_query (table), first_ten_clicks (attribute)

first_ten_clicks_time
ARRAY

items
STRING

blast_query (table), first_ten_clicks_time (attribute)

purchase_time
DATE-TIME

send_time
DATE-TIME


Replication Method :

Key-based Incremental

Replication Key :

modify_time

Primary Key :

repeat_id

API endpoint :

get BlastRepeat

The blast_repeats table contains information about recurring campaigns in your Sailthru account.

repeat_id
STRING

The repeat ID.

modify_time
DATE-TIME

The time the recurring campaign was last modified.

create_time
DATE-TIME

create_user
STRING

days
ARRAY

value
STRING

blast_repeats (table), days (attribute)

days_month
ARRAY

value
INTEGER

blast_repeats (table), days_month (attribute)

end_date
DATE-TIME

error_time
DATE-TIME

errors
ARRAY

value
STRING

blast_repeats (table), errors (attribute)

generate_time
INTEGER

is_static
BOOLEAN

list
STRING

The list ID.

message_criteria
STRING

modify_user
STRING

name
STRING

previous_blast_id
INTEGER

report_email
STRING

seed_emails
STRING

send_time
STRING

start_date
DATE-TIME

status
STRING

suppress_list
STRING

template
STRING

template_id
INTEGER


Replication Method :

Full Table

Primary Key :

profile_id

API endpoint :

get BlastSaveList

The blast_save_list table contains a list of users that received a specific campaign from your Sailthru account. This is a child table of lists.

profile_id
STRING

The profile ID.

clicks
STRING

domain
STRING

email_hash
STRING

email_status
STRING

engagement
STRING

first_purchase_time
DATE-TIME

geolocation_city
STRING

geolocation_country
STRING

geolocation_state
STRING

geolocation_zip
STRING

largest_purchase item_price
STRING

last_click
STRING

last_open
STRING

last_pageview
STRING

last_purchase_time
DATE-TIME

lifetime_message
STRING

list_signup
STRING

lists
STRING

The list IDs.

opens
STRING

optout_time
DATE-TIME

pageviews
STRING

profile_created_date
DATE-TIME

purchase_count
STRING

purchase_incomplete
STRING

purchase_price
STRING

signup
STRING

top_device
STRING


Replication Method :

Full Table

Primary Key :

list_id

API endpoint :

get Lists

The lists table contains basic information about lists in your Sailthru account.

list_id
STRING

The list ID.

create_time
DATE-TIME

email_count
INTEGER

name
STRING

type
STRING

valid_count
INTEGER


Replication Method :

Key-based Incremental

Replication Key :

date

Primary Key :

channel : email_hash : extid : message_id : price

API endpoint :

get PurchaseLog

The purchase_log table contains a a list of user data in your Sailthru account.

channel
STRING

The channel.

email_hash
STRING

The email hash.

extid
STRING

The external ID.

message_id
STRING

The message ID.

price
STRING

The price.

date
DATE-TIME

The date list was created

items
STRING

quantities
STRING

unit_prices
STRING

urls
STRING


Replication Method :

Full Table

Primary Key :

profile_id

API endpoint :

get Users

The users table contains user data from your Sailthru account. This is a child table of blast_save_list.

profile_id
STRING

The profile ID.

cookie
STRING

email
STRING

engagement
STRING

lists
ARRAY

Information about lists.

value
STRING

The list ID.

users (table), lists (attribute)

optout_email
STRING

vars
STRING



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.