This article will help you learn about how Daasity replicates data from Sailthru Mobile, limitations to the data we can extract and where the data is stored in the Sailthru Mobile schema.
Key Topics
Click on the links below to take you to the section where you can learn more about this Integration
- Integration Overview
- Integration Availability
- API Endpoints
- S3 Feed
- Entity Relationship Diagram
- Sailthru Mobile Schema
- Related Resources
Integration Overview
Sailthru Mobile is a marketing automation platform that allows business to engage their mobile app audiences through highly targeted and personalized messaging. It offers audience segmentation, messaging options, and in-depth app usage and messaging analytics.
This document provides context on what kind of data is being gathered through this extractor, which endpoints that data is coming from, and how the extracted tables relate to each other.
Integration Availability
This integration is available for:
- Pro V2
NOTE: You are considered V2 if...
- Your account says Pro V2 in the Daasity App
Not sure? Reach out to Support@Daasity.com
API Endpoints
The Daasity Sailthru Mobile extractor is built based on this Sailthru Mobile API documentation. The following endpoints are used by Daasity to replicate data from Sailthru Mobile:
S3 Feed
The Daasity Sailthru Mobile extractor is also built based on this Sailthru Connect Documentation. The following is used by Daasity to replicate data from Sailthru Mobile:
Note:
- Daasity uses the Sailthru Integration to extract mobile events from the S3 Feed.
- Read more about the Sailthru Integration to see how Daasity extracts this info.
- Sailthru Mobile Events are only available for Pro V2.
- To extract mobile events, reach out to Support@Daasity.com
Entity Relationship Diagram (ERD)
The Daasity Sailthru Mobile extractor creates these tables using the endpoints and replication methods listed. The data is mapped from source API endpoint to the table based on the mapping logic outlined in each table.
Sailthru Mobile Schema
The Daasity Sailthru Mobile extractor creates these tables using the endpoints and replication methods listed. The data is mapped from source API endpoint and S3 Feed to the table based on the mapping logic outlined in each table.
Sailthru Mobile API
Audiences
- Endpoint: Audiences
- Update Method: UPSERT
- Table Name: sailthru_mobile.audiences
JSON Element | Database Column |
id | audience_id |
name | audience_name |
created_at | created_at |
updated_at | updated_date |
test | is_test |
Daasity: source_id | __source_id |
Daasity: account_id | _account_id |
Daasity: MD5(source_id + id) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Devices
- Endpoint: Audiences/Devices
- Update Method: UPSERT
- Table Name: sailthru_mobile.devices
JSON Element | Database Column |
id | device_id |
user_id, nullable: true | user_id |
email, nullable: true | |
push_enabled | is_push_enabled |
platform | platform |
installed_at | installed_at |
last_opened | last_opened |
location::geoip::lat | latitude |
location::geoip::lng | longitude |
location::geoip::city, nullable: true | city |
location::geoip::country, nullable: true | country |
push_token, nullable: true | push_token |
Daasity: source_id | __source_id |
Daasity: account_id | _account_id |
Daasity: MD5(source_id + id) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Device Attributes
- Endpoint: Audiences/Devices
- Update Method: UPSERT
- Table Name: sailthru_mobile.device_attributes
JSON Element | Database Column |
id | device_id |
attribute_name | attribute_name |
attribute::value | attribute_value |
Daasity: source_id | __source_id |
Daasity: account_id | _account_id |
Daasity: MD5(source_id + id + attribute_name) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Device Lifetime Events
- Endpoint: Audiences/Devices
- Update Method: UPSERT
- Table Name: sailthru_mobile.device_lifetime_events
JSON Element | Database Column |
id | device_id |
event_name | event_name |
event::first_happened_at | first_happened_at |
event::last_happened_at | last_happened_at |
event::count | event_count |
Daasity: source_id | __source_id |
Daasity: account_id | _account_id |
Daasity: MD5(source_id + id + event_name) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Sailthru Mobile S3 Feed
Device Events
- Endpoint: Mobile Event Stream
- Update Method: UPSERT
- Table Name: sailthru_mobile_staging.device_events
CSV Header | Database Column |
client_id | client_id |
app_id | app_id |
type | event_type |
event_time | event_time |
profile_id | profile_id |
device_id | device_id |
user_id | user_id |
platform | platform |
token | token |
installed_at | installed_at |
deactivated_token | deactivated_token |
reason | reason |
notification_status | notification_status |
previous_notification_status | previous_notification_status |
latitude | latitude |
longitude | longitude |
city | city |
country | country |
Daasity: timestamp when loaded into DB | __synced_at |
Notifications
- Endpoint: Mobile Event Stream
- Update Method: UPSERT
- Table Name: sailthru_mobile_staging.notifications
CSV Header | Database Column |
client_id | client_id |
app_id | app_id |
event_time | event_time |
type | notification_type |
status | status |
platform | platform |
profile_id | profile_id |
device_id | device_id |
user_id | user_id |
flow_id | flow_id |
step_id | step_id |
group | group_id |
message_id | message_id |
notification_id | notification_id |
transactional_notification_id | transactional_notification_id |
token | token |
title | title |
alert | alert |
custom_deeplink | custom_deeplink |
custom_badge | custom_badge |
custom_sound | custom_sound |
payload | payload |
Daasity: timestamp when loaded into DB | __synced_at |
Sessions
- Endpoint: Mobile Event Stream
- Update Method: UPSERT
- Table Name: sailthru_mobile_staging.sessions
CSV Header | Database Column |
client_id | client_id |
app_id | app_id |
event_time | event_time |
profile_id | profile_id |
device_id | device_id |
user_id | user_id |
session_duration | session_duration |
type | lifecycle_event_type |
platform | platform |
notification_id | notification_id |
notification_attribution | notification_attribution |
notification_action | notification_action |
latitude | latitude |
longitude | longitude |
city | city |
country | country |
Daasity: timestamp when loaded into DB | __synced_at |
Impressions
- Endpoint: Mobile Event Stream
- Update Method: UPSERT
- Table Name: sailthru_mobile_staging.sessions
CSV Header | Database Column |
client_id | client_id |
app_id | app_id |
event_time | event_time |
type | impression_type |
profile_id | profile_id |
device_id | device_id |
user_id | user_id |
platform | platform |
notification_id | notification_id |
notification_attribution | notification_attribution |
message_id | message_id |
latitude | latitude |
longitude | longitude |
city | city |
country | country |
Daasity: timestamp when loaded into DB | __synced_at |
Custom Events
- Endpoint: Mobile Event Stream
- Update Method: UPSERT
- Table Name: sailthru_mobile_staging.custom_events
CSV Header | Database Column |
client_id | client_id |
app_id | app_id |
event_time | event_time |
name | custom_event_name |
profile_id | profile_id |
device_id | device_id |
user_id | user_id |
platform | platform |
notification_id | notification_id |
notification_attribution | notification_attribution |
message_id | message_id |
source | source |
vars | vars |
latitude | latitude |
longitude | longitude |
city | city |
country | country |
Daasity: timestamp when loaded into DB | __synced_at |
Related Resources
- insert link to Sailthru integration here ***