Email Event Stream Data Sets
The following email-centric data sets are available through Connect. To set up your S3 bucket policy, see the Event Stream S3 Bucket Policy documentation.
Layout of the Data
Email Event Stream is designed so that teams are able to focus more on analysis and less on the transformation and handling of data. Two types of data are provided as part of the Email Event Stream feature: Email Events, and Lookup Data. Email Events capture granular individual events that an end-user would experience. Each time a message send occurs, an open is tracked, a click is recorded, that data is collated into a file and then sent to your bucket. Events are incremental and uniquely identified. Lookup Data is designed to help you enrich your Event data. Lookup Data will have relevant keys that allow the data to be streamlined, and reduced in size as it gets sent to your bucket. Whether you wish to know more about the Campaign, Template, or Lifecycle Optimizer Flow, you can use the relevant key to enrich your query. Lookup Data is sent as a full refresh, and should be loaded into your system in a way that refers to the latest copy by the /dt.../hr... path. Note that timestamps on event data as well as the dates in the output S3 path are all in UTC, corresponding to the date of events within the file (dt) or the hour at time of export (hr).
Primary key
It's important to use event_id as the primary key within your technology setup when the field is available in a dataset, such as Campaign/Triggered clicks and opens. Event ID is a unique identifier for every event and will identify distinct events down to the millisecond precision level. This gives greater flexibility when segmenting and reviewing event data within these datasets.
Note: Using message_idis primarily meant to uniquely identify a send from the Sailthru platform.
-
For the clicks/opens/bounces datasets, the
message_idcan be used as a foreign key to join back to the sends. It is expected that a user may open or click multiple times for the same message, so it should not be used as the primary key as this would result in data loss. -
While
message_idlooks like a number, it should not be treated as a number. Certain systems round these, resulting in hard to debug data issues. Capturingmessage_idas a string is best.
Email Events
Campaign Sends
| Target Location | s3://[bucket_name]/campaign_send/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
|
event_id |
string |
018da7fe-4803-7d10-a547-68f0fb16af82 |
A uuid7 string that represents a unique event |
|
event_time |
string |
2024-02-14T21:42:15.520Z |
A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string | 2018-01-02 09:24:25 | This is the send time of the message. The campaign start time can be found in the campaign lookup table. The time is in UTC. |
| message_id | string | 15273725.1064 | Unique identifier for the message unique to the campaign and recipient. In the case of campaign emails this is a combination of the campaign_id and email_num. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2ce1ac75146c95f491bf3 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the recipient's email address. |
| engagement | string | passive | User status at the time of send. |
| signup_time | string | 2018-03-29 15:33:09 | Time that the user originally signed up. Can be used for cohort analysis. The time is in UTC. |
| campaign_id | int | 15273725 | Unique identifier for the campaign send. All messages sent as part of the campaign on a particular date will share the same campaign_id. Foreign key to the Campaign lookup data. |
| list_name | string | Mon-To-Fri-Daily-Sends(Smart List) | The name of the list to which the campaign was sent. |
| list_id | string | 5abd071f2e9bba1a861570cc | The unique identifier that corresponds with the list name. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. Note: A/B split Campaigns will not have a Template ID |
| subject | string | October Monthly Deliverability Newsletter | Subject line of the sent message. Note that this field includes the final rendered subject lines if Zephyr personalization is used, and the Campaign Lookup table contains the corresponding non-rendered Zephyr code. |
Campaign Opens
| Location | s3://[bucket_name]/campaign_open/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
|
event_id |
string |
018da7fe-4803-7d10-a547-68f0fb16af82 |
A uuid7 string that represents a unique event |
|
event_time |
string |
2024-02-14T21:42:15.520Z |
A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string | 2018-01-02 09:24:25 | This is the send time of the message in UTC. The campaign start time can be found in the campaign lookup table. The time is in UTC. |
| message_id | string | 15273725.1064 | Unique identifier for the message unique to the campaign and recipient. In the case of campaign emails this is a combination of the campaign_id and email_num. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2ce1ac75146c95f491bf3 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the recipient's email address. |
| engagement | string | passive | User status at the time of send. See doc for definitions and configuration options. |
| signup_time | string | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. |
| campaign_id | int | 15273725 | Unique identifier for the campaign send. All messages sent as part of the campaign on a particular date will share the same campaign_id. Foreign key to the Campaign lookup data. |
| list_id | string | 5abd071f2e9bba1a861570cc | The unique identifier that corresponds with the list name. |
| browser | string | iPhone | Device/browser used by the recipient. |
| count | int | 2 | The open count for the user on that message at the time of the event. If there are multiple opens this will increment each time. |
| ip | string | 127.255.255.255 | Can be either an IPv4 or IPv6 address. The value provided is the address that would log at the edge of our network, as seen when an event comes into our platform for processing. |
| ip_type | string | IPv4 | Specifies the IP address type observed. |
| user_agent | string | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 | The value noted is the user agent string data as seen when an event comes into our platform, without any transformation. |
|
is_real_open |
string |
False, true |
This identifier indicates whether or not an open was done by a machine or human. True = Human If false, the open was pre-cached by Apple MPP. |
Campaign Clicks
| Location | s3://[bucket_name]/campaign_click/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | bigint | 2018-01-02 09:24:25 | This is the send time of the message. The campaign start time can be found in the campaign lookup table. The time is in UTC. |
| message_id | string | 15273725.1064 | Unique identifier for the message unique to the campaign and recipient. In the case of campaign emails this is a combination of the campaign_id and email_num. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2ce1ac75146c95f491bf3 | SHA-256 hash of the recipient's email address. Can be used as a unique identifier to the email, and can be used to join other events by the same user. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the recipient's email address. Can be used as a unique identifier to the email, and can be used to join other events by the same user. |
| engagement | string | passive | User status at the time of send. See doc for definitions and configuration options. |
| signup_time | string | 2018-01-02 09:24:25 | Time that the user originally signed up. Can be used for cohort analysis. The time is in UTC. |
| campaign_id | int | 15273725 | Unique identifier for the campaign send. All messages sent as part of the campaign on a particular date will share the same campaign_id. Foreign key to the campaign lookup data. |
| list_id | string | 5abd071f2e9bba1a861570cc | The unique identifier that corresponds with the list name. |
| browser | string | iPhone | Device/browser used by the recipient. |
| url | string | https://www..com/marketing-blog/luxury-brands-embracing-ecommerce/ | The url of the clicked link. |
| index | int | 2 | The order of the link based on how many times that link appears in the email. The first instance of a link is indexed at 1, the second at 2, and so on. If a link only appears once, it will have an index of 1. |
| count | int | 2 | The click count for the user on that message at the time of the event. If there are multiple clicks this will increment each time. |
| url_count | int | 1 | If the user clicks multiple URLs within the message, this counts unique URLs. |
| ip | string | 127.255.255.255 | Can be either an IPv4 or IPv6 address. The value provided is the address that would log at the edge of our network, as seen when an event comes into our platform for processing. |
| ip_type | string | IPv4 | Specifies the IP address type observed. |
| user_agent | string | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 | The value noted is the user agent string data as seen when an event comes into our platform, without any transformation. |
is_real_click | string | True = Real / False = NHI | |
Campaign Bounces
| Location | s3://[bucket_name]/campaign_bounce/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | bigint | 2018-01-02 09:24:25 | This is the send time of the message. The campaign start time can be found in the campaign lookup table. The time is in UTC. |
| message_id | string | 15273725.1064 | Unique identifier for the message unique to the campaign and recipient. In the case of campaign emails this is a combination of the campaign_id and email_num. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2ce1ac75146c95f491bf3 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the recipient's email address. |
| engagement | string | passive | User status at the time of send. See doc for definitions and configuration options. |
| signup_time | string | 2018-01-02 09:24:25 | Time that the user originally signed up. Can be used for cohort analysis. The time is in UTC. |
| campaign_id | int | 15273725 | Unique identifier for the campaign. This is a foreign key to the campaign lookup table. |
| list_id | string | 5abd071f2e9bba1a861570cc | The unique identifier that corresponds with the list name. |
| reason_log | string | 4.2.2 (mailbox full) smtp;450 4.2.2 <sampleuser@icloud.com>: user is overquota | Explains the reason for the bounce. |
| message_type | string | hardbounce | Type includes softbounce or hardbounce. |
Campaign Unsubscribes
| Location | s3://[bucket_name]/campaign_unsubscribe/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string | 2018-01-02 09:24:25 | This is the send time of the message. The campaign start time can be found in the campaign lookup table. The time is in UTC. |
| message_id | string | 15273725.1064 | Unique identifier for the message unique to the campaign and recipient. In the case of campaign emails this is a combination of the campaign_id and email_num. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2 ce1ac75146c95f491bf3 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the recipient's email address. |
| engagement | string | passive | User status at the time of send. |
| signup_time | string | 2018-01-02 09:24:25 | Time that the user originally signed up. Can be used for cohort analysis. The time is in UTC. |
| campaign_id | int | 15273725 | Unique identifier for the campaign. This is a foreign key to the campaign lookup table. |
| list_id | string | 5abd071f2e9bba1a861570cc | The unique identifier that corresponds with the list name. |
| message_type | string | unsubscribe_hostedpage | Type describes how a user unsubscribed: unsubscribe_hostedpage- user directly requested to unsubscribe through a page hosted by the system unsubscribe- user requested to unsubscribe through their email provider spam- user marked the email as spam |
Triggered Sends
| Location | s3://[bucket_name]/triggered_send/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Email send time represented in the following UTC format YYYY-MM-DD HR:MI:SS |
| message_id | string | 5db2165b9c625f28504758d3 | Unique identifier for the message. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | 6b3918d4492bcb86d2e81b126ca466888c7e40e0f5acc 1c88277bf7c59757349 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | fa2ae4e9af4986e483d006a036783691 | MD5 hash of the recipient's email address. |
| engagement | string | active | User status at the time of send. |
| signup_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. The time is in UTC. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. |
| is_basic | boolean | True | Whether the template is classified as a basic / transactional template. |
| flow_id | string | 79c15585-ee58-4ca2-8f3f-7ec4d1a2d831 | Unique identifier for the LO flow that triggered this send. Foreign key to the lifecycle_optimizer_flow lookup data. |
Triggered Opens
| Location | s3://[bucket_name]/triggered_open/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Email send time in UTC |
| message_id | string | 5db2165b9c625f28504758d3 | Unique identifier for the message. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | 6b3918d4492bcb86d2e81b126ca466888c7e40e0f5a cc1c88277bf7c59757349 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | fa2ae4e9af4986e483d006a036783691 | MD5 hash of the recipient's email address. |
| engagement | string | active | User status at the time of send. |
| signup_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. The time is in UTC. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. |
| is_basic | boolean | True | Whether the template is classified as a basic / transactional template. |
| flow_id | string | 79c15585-ee58-4ca2-8f3f-7ec4d1a2d831 | Unique identifier for the LO flow that triggered this send. Foreign key to the lifecycle_optimizer_flow lookup data. |
| browser | string | iPhone | Device/browser used by the recipient. |
| count | int | 2 | The open count for the user on that message at the time of the event. If there are multiple opens this will increment each time. |
| ip | string | 127.255.255.255 | Can be either an IPv4 or IPv6 address. The value provided is the address that the system would log at the edge of our network, as seen when an event comes into our platform for processing. |
| ip_type | string | IPv4 | Specifies the IP address type observed. |
| user_agent | string | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 | The value noted is the user agent string data as seen when an event comes into our platform, without any transformation. |
is_real_open | string | False, true | This identifier indicates whether or not an open was done by a machine or human. True = Human If false, the open was pre-cached by Apple MPP. |
Triggered Clicks
| Location | s3://[bucket_name]/triggered_click/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Email send time in UTC |
| message_id | string | 5db2165b9c625f28504758d3 | Unique identifier for the message. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | 6b3918d4492bcb86d2e81b126ca466888c7e40e0f5a cc1c88277bf7c59757349 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | fa2ae4e9af4986e483d006a036783691 | MD5 hash of the recipient's email address. |
| engagement | string | active | User status at the time of send. |
| signup_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. The time is in UTC. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. |
| is_basic | boolean | True | Whether the template is classified as a basic / transactional template. |
| flow_id | string | 79c15585-ee58-4ca2-8f3f-7ec4d1a2d831 | Unique identifier for the LO flow that triggered this send. Foreign key to the lifecycle_optimizer_flow lookup data. |
| browser | string | iPhone | Device/browser used by the recipient. |
| url | string | https://www.sailthru.com/marketing-blog/luxury-brands-embracing-ecommerce/ | The url of the clicked link. |
| index | int | 2 | The order of the link based on how many times that link appears in the email. The first instance of a link is indexed at 1, the second at 2, and so on. If a link only appears once, it will have an index of 1. |
| count | int | 2 | The click count for the user on that message at the time of the event. If there are multiple clicks this will increment each time. |
| url_count | int | 1 | If the user clicks multiple URLs within the message, this counts unique URLs. |
| ip | string | 127.255.255.255 | Can be either an IPv4 or IPv6 address. The value provided is the address that the system would log at the edge of our network, as seen when an event comes into our platform for processing. |
| ip_type | string | IPv4 | Specifies the IP address type observed. |
| user_agent | string | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 | The value noted is the user agent string data as seen when an event comes into our platform, without any transformation. |
is_real_click | string | True = Real / False = NHI | |
Triggered Bounces
| Location | s3://[bucket_name]/triggered_bounce/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Email send time in UTC |
| message_id | string | 5db2165b9c625f28504758d3 | Unique identifier for the message. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | 6b3918d4492bcb86d2e81b126ca466888c7e40e0f5acc1c88277bf7c59757349 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | fa2ae4e9af4986e483d006a036783691 | MD5 hash of the recipient's email address. |
| engagement | string | active | User status at the time of send. |
| signup_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. The time is in UTC. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. |
| is_basic | boolean | True | Whether the template is classified as a basic / transactional template. |
| reason_log | string | 4.2.2 (mailbox full) smtp;450 4.2.2 <sampleuser@icloud.com>: user is overquota | Explains the reason for the bounce |
| message_type | string | hardbounce | Type includes softbounce or hardbounce |
Triggered Unsubscribes
| Location | s3://[bucket_name]/triggered_bounce/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup data. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup data. |
event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event |
event_time | string | 2024-02-14T21:42:15.520Z | A timestamp string with millisecond level precision (YYYY-MM-DD HH:MM:SS..SSS) |
| send_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Email send time in UTC |
| message_id | string | 5db2165b9c625f28504758d3 | Unique identifier for the message. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile of the message recipient. |
| email_sha256 | string | 6b3918d4492bcb86d2e81b126ca466888c7e40e0f5a cc1c88277bf7c59757349 | SHA-256 hash of the recipient's email address. |
| email_md5 | string | fa2ae4e9af4986e483d006a036783691 | MD5 hash of the recipient's email address. |
| engagement | string | active | User status at the time of send. |
| signup_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time that the user originally signed up in UTC. Can be used for cohort analysis. The time is in UTC. |
| template_id | int | 5259685 | Unique identifier for the template used in the send if applicable. Foreign key to the template lookup data. |
| is_basic | boolean | True | Whether the template is classified as a basic / transactional template. |
| message_type | string | unsubscribe_hostedpage | Type describes how a user unsubscribed: unsubscribe_hostedpage- user directly requested to unsubscribe through a hosted page unsubscribe- user requested to unsubscribe through their email provider spam- user marked the email as spam |
Profile events
This dataset reflects every change made to a profile.
| Location | s3://[bucket_name]/profile_update/dt=[dt]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the account_id field. |
| event_id | string | 018da7fe-4803-7d10-a547-68f0fb16af82 | A uuid7 string that represents a unique event. |
| event_time | timestamp | 2024-02-14T21:42:15.520123Z | A timestamp string with microsecond level precision (YYYY-MM-DD HH:MM:SS.SSSSSS) The time is in UTC. |
| profile_id | string | 597fa1d224c17c309b02400 | Unique identifier for the user profile. Referred to as SID in the API. |
| is_deleted | boolean | true | True if this is a delete event. Only client_id, event_id, event_time, profile_id and is_deleted will be included in the export for a delete event. |
| string | sailthru@meetmargold.com | The profile’s email address. | |
| email_sha256 | string | fbc1acf72184b83374e1920a6ee754e030e3c45defd2ce1ac75146c95f491bf3 | SHA-256 hash of the profile’s email address. |
| email_md5 | string | 81a1ffc0947e2ca9efadd006c10685ca | MD5 hash of the profile's email address. |
| extid | string | id_21529 | A unique, user-specified identifier for a user's profile. |
| fb | string | 46235678 | The profile's Facebook ID. |
| sms | string | The profile’s SMS number. | |
| sms_md5 | string | Hash of the profile's SMS number. | |
| string | 23456789 | The profile’s Twitter ID. | |
| gdpr_do_not_track | boolean | true | If the Profile has been opted out from online tracking via the gdprDoNotTrack javascript api. |
| signup_time | timestamp | 2020-08-25T04:00:00.000Z | The time the profile was added to their first list. |
| email_bounce_status | string | hardbounce | The profile's current email bounce status. If this is null, then the profile has not bounced. |
| email_bounce_status_time | timestamp | 2025-05-13T00:14:56.000Z | The last email bounce time for the profile. |
| email_bounce_message | string | 5.1.1 (bad destination mailbox address) smtp;550 5.1.1 The email account that you tried to reach does not exist. | The last email bounce message for the profile. |
| email_optout | string | all | Opt out status of the profile. If the value does not exist or is null, the user is opted in (i.e. has not opted out of any messaging). For definitions, see User Opt-Out Levels. |
| email_optout_time | timestamp | 2025-05-10T03:50:40.000 | Time profile opted out. |
| email_optout_reason | string | api | Set for some hosted email applications when the subscriber clicks the Spam or Unsubscribe link. See the optout_reason options and definitions in the Data Exporter User Profiles data set. |
| sms_marketing_status | string | opt-in | The SMS opt-in status for marketing messages. |
| sms_transactional_status | string | opt-in | SMS opt-in status for transactional messages. |
| mobile_apps | json | {"apps":[{"app_id":"5f043","devices":[{"device_id":"682c69","platform":"ios","push_status":"enabled"}]}]} | Linked mobile devices and push status broken down by app. |
Note: When merging a source profile into a target profile you will get a delete event for the source profile and an update event for the target profile.
In rare cases, due to internal system events you might get a new export due to a new event even though it might not look like anything has changed in the data.
Lookup Tables
Client
| Location | s3://[bucket_name]/client/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the account_id field. |
| account_id | int | 1 | The client_id of the parent account. If this client is the parent account the account_id will be the same as the client_id. |
| name | string | Testing | The name of the client account. |
Campaign
| Table Name | Campaign | ||
| Location | s3://[bucket_name]/campaign/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup table. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup table. |
| campaign_id | int | 15273725 | Unique identifier for the campaign send. All messages sent as part of the campaign on a particular date will share the same campaign_id. |
| name | string | 12/6/18 Customer blog send | User defined campaign name |
| from_name | string | Sailthru | The name displayed as the sender |
| from_email | string | example@sailthru.com | The email address displayed as the sender |
| replyto_email | string | support@sailthru.com | The email address replies are sent to |
| subject | string | Get Ready for Green Monday with These 4 Best Practices | The subject line for the campaign. If Zephyr is used in the subject line this will include the unresolved Zephyr code. |
| list_name | string | sailthru_blog_updates | The list to which the campaign was sent. |
| data_feed_url | string | http://feed.sailthru.com/ws/feed?id=58472bd51aa312367c8b456b | URL of the data feed used to power dynamic content in the campaign (if applicable). |
| preheader | string | Marketing best practices | The preheader text that shows up with the subject line (only available for templates created through Email Composer). |
| template_id | int | 5259685 | Unique identifier for the template used in the campaign (if applicable). Foreign key to the template lookup table.
Note: A/B Split Campaigns will not have a template ID in the template_id column.
|
| schedule_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Scheduled send time represented as a unix timestamp in UTC time with milliseconds. |
| report_email | string | example@sailthru.com | Email address to which the confirmation report is sent once the campaign sends complete. |
| suppress_list | string | [ "Old/Dormant Mkto Blog Users", "Marketo Suppression", "sailthru_blog_updates" ] | Listing of email list(s) used as suppression lists for the campaign. |
| email_hour_range | int | 6 | The length in hours of the sent time range when Personalized Send Time (PST) is used. |
| create_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Time of campaign creation represented as a unix timestamp in UTC time with milliseconds. |
| start_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | Campaign send start time represented as a unix timestamp in UTC time with milliseconds. |
| abtest_id | UUID | 60c21795a1a5332aff168c2f | The unique identifier for an A/B test, will be common across multiple campaigns. |
| abtest_segment | string | A | The "leg" of the A/B test, can be the letters A, B, through E, or final. |
| abtest_percent | int | 50 | A value between 0 and 100 percent that refers to the proportion of sends allocated to the segment. |
| label_ids | array | "[5d1640fb6feb44bdb50c72bc, 5d83ab476feb44bdb55fda0d, 5d88e22f6feb44bdb57399fe]" | The unique identifier(s) which tie a Campaign to a Label. Note that a user in the UI is allowed to associate a Label directly to a Campaign. This is independent of the Template-to-Label association. |
Template
| Location | s3://[bucket_name]/template/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup table. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup table. |
| template_id | int | 5241784 | Unique identifier for the template. |
| name | string | Abandoned Cart | User defined name for the template. |
| create_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | The time the template was created represented as a unix timestamp in UTC time with milliseconds. |
| modify_time | string (yyyy-MM-dd HH:mm:ss) | 2018-01-02 09:24:25 | The last time the template was modified represented as a unix timestamp in UTC time with milliseconds. |
| create_user | string | example@sailthru.com | The email address of the user that created the template. |
| modify_user | string | example@sailthru.com | The email address of the last user to modify the template. |
| from_name | string | Sailthru | The name displayed as the sender |
| from_email | string | example@sailthru.com | The email address displayed as the sender |
| replyto_email | string | support@sailthru.com | The email address replies are sent to |
| subject | string | Get Ready for Green Monday with These 4 Best Practices | The subject line for the template. If Zephyr is used in the subject line this will include the unresolved Zephyr code. |
| preheader | string | Marketing best practices | The preheader text that shows up with the subject line (only available for templates created through Email Composer). |
| is_basic | boolean | false | Indicator of whether the template is a basic template. Basic templates are non-marketing transactional emails, such as password reset messages. |
| data_feed_url | string | http://feed.sailthru.com/ws/feed?id=58472bd51aa312367c8b456b | URL of the data feed used to power dynamic content (if applicable). |
| label_ids | array | "[5cdc25636feb44bdb5e1b949, 5d83ab476feb44bdb55fda0e, 5ea1b364f68d5e34b4cd5e38]" | The unique identifier(s) which associate a Template to a Label. Note that a user in the UI is allowed to associate a Label directly to a Template. This is independent of the Campaign-to-Label association. |
Lifecycle Optimizer Flow
| Location | s3://[bucket_name]/lifecycle_optimizer_flow/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| flow_id | string | 4320f1ef-ebe4-4d65-86ba-484d26dc02a7 | Unique identifier for the Lifecycle Optimizer (LO) flow. |
| name | string | Internal DHC Proposed Changes | User defined name for the LO flow. |
| create_time | string (yyyy-MM-dd HH:mm:ss) | 2017-02-09 23:17:24 | The time the LO flow was created represented in UTC. |
| modify_time | string (yyyy-MM-dd HH:mm:ss) | 2017-02-09 23:22:24 | The time the LO flow was modified represented in UTC. |
| version | string | 3 | The most recent version of the flow. |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup table. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup table. |
Label
| Location | s3://[bucket_name]/label/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup table. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup table. |
| label_id | ObjectID | 60c21795a1a5332aff168c2f | The unique identifier for a label. Can be used to join either from the Campaign lookup table or Template lookup table for the corresponding "name" value. |
| name | string | BRAND X NL | The value of the Label that is displayed in the UI. |
Campaign AB Test
| Target Location | s3://[bucket_name]/campaign_abtest/dt=[dt]/hr=[hr]/client_id=[id]/[filename].csv | ||
| Field Name | Data Type | Example | Description |
| client_id | int | 3386 | Client identifier. Foreign key to the Client lookup table. If the client has multiple accounts, this will be the child account which can be linked to the parent account through the lookup table. |
| abtest_id | UUID | 60c21795a1a5332aff168c2f | The unique identifier for an A/B test, will be common across multiple campaign sends. Can be used to join to the Campaign lookup table. |
| abtest_type | string | split, final | The type of A/B test to be run. |
| abtest_fields | string | "[from_name, subject]" | The fields where changes are being tested in a given variation in the abtest. |
| abtest_final_id | int | 18690717 | The campaign id of the final segment that was eventually sent to users. |
| abtest_winner_metric | string | click | The metric to determine which segment of the ab test should be sent to the final leg. Values are present only for autowinner types of AB tests. |
| abtest_winner_id | int | 18557303 | The id of the campaign which was copied from, for final send. Only filled in for winner or autowinner types. |