Sailthru is currently in beta. The info in this guide is subject to change.
This integration is powered by Singer's Sailthru tap and certified by Stitch. Check out and contribute to the repo on GitHub.
For support, contact Stitch support.
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 plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
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
- Log into your Sailthru account.
- Navigate to the API & Postbacks settings page in My Sailthru.
- Click the lock icon to display your API key and API secret.
- Copy these values and have them readily available for the next step.
Step 2: Add Sailthru as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Sailthru icon.
-
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. - In the API Key field, paste the API key you copied from from step 1.
- 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 data equal to or newer than this date will be replicated to your data warehouse.
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:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
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:
-
Individual tables and columns
-
All tables and columns
Click the tabs to view instructions for each selection method.
- In the integration’s Tables to Replicate tab, locate a table you want to replicate.
-
To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.
-
To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.
- Repeat this process for all the tables and columns you want to replicate.
- When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
- Click into the integration from the Stitch Dashboard page.
-
Click the Tables to Replicate tab.
- In the list of tables, click the box next to the Table Names column.
-
In the menu that displays, click Track all Tables and Fields:
- 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.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
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
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 1 of this integration.
This is the latest version of the Sailthru integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
ad_targeter_plans
The ad_targeter_plans
table contains information about Ad Targeter Plans in your Sailthru account.
Full Table |
|
Primary Key |
plan_id |
Useful links |
Join ad_targeter_plans with | on |
---|---|
lists |
ad_targeter_plans.list = lists.list_id |
blast_save_list |
ad_targeter_plans.list = blast_save_list.lists |
users |
ad_targeter_plans.list = users.lists |
blasts |
ad_targeter_plans.list = blasts.list |
blast_repeats |
ad_targeter_plans.list = blast_repeats.list |
list STRING |
name STRING |
plan_id STRING |
schedule ARRAY |
blast_query
The blast_query
table contains information from blast query jobs in your Sailthru account. This is a child table of blasts
.
Full Table |
|
Primary Keys |
blast_id profile_id |
Useful links |
Join blast_query with | on |
---|---|
blasts |
blast_query.blast_id = blasts.blast_id |
blast_id INTEGER |
click_time DATE-TIME |
device STRING |
email_hash STRING |
first_ten_clicks ARRAY |
first_ten_clicks_time ARRAY |
open_time DATE-TIME |
profile_id STRING |
purchase_time DATE-TIME |
send_time DATE-TIME |
blast_repeats
The blast_repeats
table contains information about recurring campaigns in your Sailthru account.
Key-based Incremental |
|
Primary Key |
repeat_id |
Replication Key |
modify_time |
Useful links |
Join blast_repeats with | on |
---|---|
lists |
blast_repeats.list = lists.list_id |
ad_targeter_plans |
blast_repeats.list = ad_targeter_plans.list |
blast_save_list |
blast_repeats.list = blast_save_list.lists |
users |
blast_repeats.list = users.lists |
blasts |
blast_repeats.list = blasts.list |
create_time DATE-TIME |
create_user STRING |
days ARRAY |
days_month ARRAY |
end_date DATE-TIME |
error_time DATE-TIME |
errors ARRAY |
generate_time INTEGER |
is_static BOOLEAN |
list STRING |
message_criteria STRING |
modify_time DATE-TIME |
modify_user STRING |
name STRING |
previous_blast_id INTEGER |
repeat_id STRING |
report_email STRING |
seed_emails STRING |
send_time STRING |
start_date DATE-TIME |
status STRING |
suppress_list STRING |
template STRING |
template_id INTEGER |
blast_save_list
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
.
Full Table |
|
Primary Key |
profile_id |
Useful links |
Join blast_save_list with | on |
---|---|
lists |
blast_save_list.lists = lists.list_id |
ad_targeter_plans |
blast_save_list.lists = ad_targeter_plans.list |
users |
blast_save_list.lists = users.lists |
blasts |
blast_save_list.lists = blasts.list |
blast_repeats |
blast_save_list.lists = blast_repeats.list |
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 |
opens STRING |
optout_time DATE-TIME |
pageviews STRING |
profile_created_date DATE-TIME |
profile_id STRING |
purchase_count STRING |
purchase_incomplete STRING |
purchase_price STRING |
signup STRING |
top_device STRING |
blasts
The blasts
table contains infomation about your specific Sailthru campaigns, or information about campaigns by status types: sent
, sending
, scheduled
, unscheduled
.
Key-based Incremental |
|
Primary Key |
blast_id |
Replication Key |
modify_time |
Useful links |
Join blasts with | on |
---|---|
lists |
blasts.list = lists.list_id |
ad_targeter_plans |
blasts.list = ad_targeter_plans.list |
blast_save_list |
blasts.list = blast_save_list.lists |
users |
blasts.list = users.lists |
blast_repeats |
blasts.list = blast_repeats.list |
blast_query |
blasts.blast_id = blast_query.blast_id |
blast_id INTEGER |
|||||
copy_template STRING |
|||||
data_feed_url STRING |
|||||
email_count INTEGER |
|||||
list STRING |
|||||
mode STRING |
|||||
modify_time DATE-TIME |
|||||
modify_user STRING |
|||||
name STRING |
|||||
schedule_time DATE-TIME |
|||||
sent_count INTEGER |
|||||
start_time DATE-TIME |
|||||
stats OBJECT
|
|||||
status STRING |
|||||
subject STRING |
lists
The lists
table contains basic information about lists in your Sailthru account.
Full Table |
|
Primary Key |
list_id |
Useful links |
Join lists with | on |
---|---|
ad_targeter_plans |
lists.list_id = ad_targeter_plans.list |
blast_save_list |
lists.list_id = blast_save_list.lists |
users |
lists.list_id = users.lists |
blasts |
lists.list_id = blasts.list |
blast_repeats |
lists.list_id = blast_repeats.list |
create_time DATE-TIME |
email_count INTEGER |
list_id STRING |
name STRING |
type STRING |
valid_count INTEGER |
purchase_log
The purchase_log
table contains a a list of user data in your Sailthru account.
Key-based Incremental |
|
Primary Keys |
channel email_hash extid message_id price |
Replication Key |
date |
Useful links |
channel STRING |
date DATE-TIME |
email_hash STRING |
extid STRING |
items STRING |
message_id STRING |
price STRING |
quantities STRING |
unit_prices STRING |
urls STRING |
users
The users
table contains user data from your Sailthru account. This is a child table of blast_save_list
.
Full Table |
|
Primary Key |
profile_id |
Useful links |
Join users with | on |
---|---|
lists |
users.lists = lists.list_id |
ad_targeter_plans |
users.lists = ad_targeter_plans.list |
blast_save_list |
users.lists = blast_save_list.lists |
blasts |
users.lists = blasts.list |
blast_repeats |
users.lists = blast_repeats.list |
cookie STRING |
STRING |
engagement STRING |
lists ARRAY |
optout_email STRING |
profile_id STRING |
vars STRING |
Related | Troubleshooting |
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.