The Snowflake + Iterable integration lets you send campaign-related data from your Iterable project to your Snowflake account. This gives you another way to analyze your Iterable campaign data and can help you gain more insights from it.
For example, imagine that you're preparing a new marketing campaign to encourage one-time buyers to make an additional purchase. The campaign takes two approaches: one group of customers receives a standard discount, and another is incentivized by a "mystery gift" to leave a product review. Information about your customers' engagement with these campaigns is stored in Iterable as usual. But with Snowflake Secure Data Sharing, that data is also sent to your Snowflake account.
In Snowflake, you might join your Iterable data with session-related events from your website (or any other data you have stored in Snowflake), comparing how your different campaign approaches affect sign-ins, conversions, etc. You might also use demographic data stored in Snowflake to further analyze your results, or create visualizations and dashboards in your favorite business intelligence tools. Iterable's integration with Snowflake makes all these things possible, and more.
This guide looks at how Snowflake Secure Data Sharing works, some of the benefits of using this integration, how to set it up, and some sample queries you can use to inspect your Iterable data in Snowflake.
In this article
- Early access conditions & limitations
- Benefits of sharing Iterable data with Snowflake
- How does Snowflake Secure Data Sharing work?
- Setting up Iterable's integration with Snowflake
- Ways to use Iterable data in Snowflake
- Querying data in Snowflake
- Events sent from Iterable to Snowflake
-
Frequently Asked Questions (FAQ)
- Is this a one-way sync?
- Does accepting shared data from Iterable increase my Snowflake costs?
- How long does it take Iterable data to appear in Snowflake?
- Does Iterable backfill old system event data to Snowflake?
- Does this feature copy Iterable data to my Snowflake account?
- Does the early access release of Iterable's integration with Snowflake support GDPR or CCPA?
- In Snowflake, can I edit the data that Iterable has shared?
- If I update a system event in Iterable, does it re-sync to Snowflake?
- Can I control access to my Iterable data in Snowflake?
Early access conditions & limitations
To use this early access release:
- You must be a customer of both Iterable and Snowflake.
- You acknowledge that Iterable's integration with Snowflake Secure Data Sharing:
- Is an early access feature. During early access, it is excluded from Iterable's SLAs.
- Is a one-way share of data from Iterable to Snowflake.
Benefits of sharing Iterable data with Snowflake
Sharing Iterable data with Snowflake allows you to:
Spend time and money where it matters most. With Snowflake Secure Data Sharing, you can send data from Iterable to Snowflake without setting up or maintaining an ETL.
Save on data storage costs. Since Iterable shares data to your Snowflake account rather than copying it, you'll avoid extra data storage costs. (However, you will have to pay for compute resources you use to query the shared data.)
Gain valuable customer insights. With your Iterable data in Snowflake, you can join it with any other data you store there—and use your favorite business intelligence tools—to gain a deeper understanding of your customers.
How does Snowflake Secure Data Sharing work?
Sharing data from Iterable to Snowflake is a straightforward process:
- After you ask your Iterable customer success manager to enable the feature, Iterable will share, from its Snowflake account to yours, a database that contains your Iterable system event data (for example, blast and triggered sends, email opens, clicks, bounces, and more).
- In your Snowflake account, you'll accept this share and use it to create a read-only database, using standard Snowflake role-based access controls to grant access as needed.
TIP
This is a one-way, read-only share of data (not a copy or transfer) between Iterable's Snowflake account and yours. If you need to edit the shared data, you'll have to make a copy of it.
Setting up Iterable's integration with Snowflake
To share your project's Iterable system event data with Snowflake, follow these steps:
-
Tell your Iterable customer success manager that you'd like to use Snowflake Secure Data Sharing and give them your Snowflake URL and Snowflake Account ID. We'll use a portion of the URL to determine where to send the shared data.
TIP
To find your Snowflake Account ID, expand the drop down menu on the top right corner of your Snowflake instance. The ID is right next to "Organization" under your business name.
-
When you receive an email stating that we’ve shared data with you, have your Snowflake account administrator sign in to Snowflake and complete these steps:
-
On Snowflake's top navigation bar, click Shares:
Select the secure share from Iterable.
-
Click Create Database from Secure Share. You'll see this window:
-
Give the share a Database Name.
In Grant access to, use standard Snowflake role-based access controls to indicate which roles should have access to the shared data.
(optional) Leave any comments.
Click Create Database
Snowflake users with access to the shared database can now navigate to the Worksheets tab and work with the data.
IMPORTANT
- Iterable does not backfill system event data to Snowflake. Sharing starts with data created close to the creation of the share.
- New system event data will appear in Snowflake within 24—48 hours of its creation in Iterable.
Ways to use Iterable data in Snowflake
Once your Iterable data is in Snowflake, you can use it in all sorts of interesting ways. You might already have some ideas you'd like to explore, but for now, let’s consider some common ways to evaluate campaigns:
Email, push, or SMS bounces. It’s important to know when Iterable sends messages that bounce, or can’t be delivered. For example, with email, a bounce event might indicate that the recipient’s inbox is full, that the message content was perceived to be spam, or even that an email was sent to a misspelled or outdated email address.
Email, in-app, SMS, or web push clicks. When testing different templates to see which is most effective, you’ll want to be able to determine which template generates the most unique clicks during a certain period of time. This information helps you expand on what’s working and pull back from what’s not.
Email unsubscribes. Knowing how many unique users have unsubscribed during a certain period of time can be a valuable indicator of a campaign's success, and of any opportunities you may have for improvement.
Push or SMS sends and bounces. Knowing how many of your push notifications or SMS messages have been successfully delivered (sends minus bounces) can help you identify users to remove from your user lists so you can focus your efforts on those who are actively receiving your messages.
Querying data in Snowflake
Now, let’s take a look at how to query this Iterable data in your Snowflake account:
Sign in to Snowflake, using an account that has permission to see your Iterable data.
Navigate to the Worksheets tab, and use the menu in the upper-right corner to select a role, warehouse, database, and schema.
-
Create your first query. We’ll start by evaluating how many email bounces there were in all of your campaigns over the past 30 days, and the most common reasons they happened:
SELECT RECIPIENT_STATE, COUNT(DISTINCT MESSAGE_ID) AS UNIQUE_BOUNCES FROM "EMAIL_BOUNCES_VIEW" WHERE CREATED_AT >= dateadd('day', -30, current_date()) GROUP BY RECIPIENT_STATE ORDER BY UNIQUE_BOUNCES DESC;
-
Create another query, this time to determine which email template generated the most unique clicks in the past 30 days:
SELECT TEMPLATE_ID, COUNT(DISTINCT EMAIL) AS UNIQUE_CLICKS FROM "EMAIL_CLICKS_VIEW" WHERE CREATED_AT >= dateadd('day', -30, current_date()) GROUP BY TEMPLATE_ID ORDER BY UNIQUE_CLICKS DESC;
-
Finally, let’s create a query that tells us how many unique email users unsubscribed every day, before a certain date:
SELECT DATE_TRUNC('DAY',CREATED_AT) AS DD, COUNT(DISTINCT EMAIL) AS TOTAL_USERS_UNSUBCRIBED FROM "EMAIL_UNSUBSCRIBES_VIEW" WHERE CREATED_AT >= '2021-08-01' GROUP BY 1 ORDER BY 1 DESC;
NOTE
You can also analyze the performance of your campaigns directly in Iterable. To learn more, read our Messaging Insights support guide.
Events sent from Iterable to Snowflake
These system events are shared by Iterable with Snowflake.
Email events
Email blast send
An event that's captured when Iterable sends a blast email campaign to a particular user.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EMAIL_SUBJECT
- (String) The subject of the email. -
MESSAGE_ID
- (String) An ID associated with a specific send of this campaign to this user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this email. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this email. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template.
Email bounce
An event that's captured when Iterable sends an email to a user, but it cannot be delivered.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this campaign to this user. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this email. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this email. -
RECIPIENT_STATE
- (String) The reason for the bounce. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template.
Email click
An event that's captured when a user clicks a link in an email.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CITY
- (String) The city associated with the link click (if available). -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EMAIL_SUBJECT
- (String) The subject of the email. -
IP
- (String) The IP address associated with the link click (if available). -
LINK_URL
- (String) The URL of the link that was clicked. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this campaign. -
REGION
- (String) The region associated with the link click (if available). For example, a state abbreviation. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
URL
- (String) The URL of the link that was clicked. -
USER_AGENT
- (String) The user agent string of the device on which the link was clicked. -
USER_AGENT_DEVICE
- (String) The type of device on which the link was clicked. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Email complaint
An event that's captured when a user complains about an email (marks it as spam).
-
CAMPAIGN_ID
- (Integer) The ID of the campaign that generated the complaint. -
CAMPAIGN_NAME
- (String) The name of the campaign that generated the complaint -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign that generated the complaint. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The email address of the user that complained. -
MESSAGE_ID
- (String) An ID associated with a specific send of the specific campaign to the specific user who complained. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign that generated the complaint. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the complaint. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the complaint. -
RECIPIENT_STATE
- (String) "Complaint" -
TEMPLATE_ID
- (Integer) The ID of the template associated with the campaign that generated the complaint. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign that generated the complaint (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign that generated the complaint (if available).
Email open
An event that's captured when a user opens an email.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
IP
- (String) The IP address from which the email was opened (if available). -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
USER_AGENT
- (String) The user agent string of the device that opened this email.
Email send skip
An event that's captured when Iterable cannot send an email to an intended recipient.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CREATED_AT
- A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- The user's email address. -
REASON
- A string corresponding to the reason for the send skip. -
MESSAGE_ID
- An ID associated with a specific send of this campaign to this user.
Email triggered send
An event that's captured when Iterable sends a triggered email campaign to a particular user.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EMAIL_SUBJECT
- (String) The subject of the email. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Email unsubscribe
An event that's captured when a user is unsubscribed from a message channel, message type, or list.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_IDS
- (String representation of an array) An array containing the IDs of the channels from which the user was unsubscribed (if any). -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EMAIL_LIST_IDS
- (String representation of an array) An array containing the IDs of the lists from which the user was unsubscribed (if any). -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_IDS
- (String representation of an array) An array containing the IDs of the message types from which the user was unsubscribed (if any). -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
UNSUB_SOURCE
- (String) A string that provides more information about the source of the unsubscribe. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign that sent the email (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign that sent the email (if available)
In-app events
In-app click
An event that's captured when a user clicks a link or button in an in-app message.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CLICKED_URL
- (String) The URL that was clicked. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
DEVICE_INFO
- (Variant) An object containing various fields (deviceId, platform, appPackageName) that describe the device and app associated with the event. -
DEVICE_ID
- (String) The device's unique identifier. -
PLATFORM
- iOS or Android. -
APP_PACKAGE_NAME
- (String) The package name of the app. -
EMAIL
- (String) The user's email address. -
INBOX_SESSION_ID
- (String) The ID of the experiment associated with this SMS campaign. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
SENT_AT
- (Timestamp) A UTC timestamp corresponding to when the message was sent. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template.
In-app close
An event that's captured when a user closed an in-app message by tapping a button or link in the message's content or by tapping a back button.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CLOSE_ACTION
- (Strig) The type of action that initiated the close: link (for buttons or links), back (for a back button), other or a custom value. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
DEVICE_INFO
- (Variant) An object containing various fields (deviceId, platform, appPackageName) that describe the device and app associated with the event. -
DEVICE_ID
- (String) The device's unique identifier. -
PLATFORM
- iOS or Android. -
APP_PACKAGE_NAME
- (String) The package name of the app. -
EMAIL
- (String) The user's email address. -
INBOX_SESSION_ID
- (String) The ID of the experiment associated with this SMS campaign. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
In-app deleted
An event that's captured when a user deletes an inbox-enabled in-app message by swiping it in the inbox or clicking a delete button/link (with URL iterable://delete in it).
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
DELETE_ACTION
- How the message was deleted: inbox-swipe (the message was deleted with a swipe in the inbox), or delete-button (the user tapped a button or link having URL iterable://delete) or a custom value. -
DEVICE_INFO
- (Variant) An object containing various fields (deviceId, platform, appPackageName) that describe the device and app associated with the event. -
DEVICE_ID
- (String) The device's unique identifier. -
PLATFORM
- iOS or Android. -
APP_PACKAGE_NAME
- (String) The package name of the app. -
EMAIL
- (String) The user's email address. -
INBOX_SESSION_ID
- The ID of the inbox session in which this event occurred. Not present if there's not an inbox session associated with the event. -
MESSAGE_CONTEXT
- (String) An object containing various fields that describe the message associated with the event. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
In-app delivered
An event that's captured when an in-app message arrives on a user's device. This doesn’t mean that the user viewed the message.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
DEVICE_INFO
- (Variant) An object containing various fields (deviceId, platform, appPackageName) that describe the device and app associated with the event. -
DEVICE_ID
- (String) The device's unique identifier. -
PLATFORM
- iOS or Android. -
APP_PACKAGE_NAME
- (String) The package name of the app. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
In-app open
An event that's captured when an in-app message is displayed in an app, either because it appeared on arrival or because the user selected it in the inbox.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
DEVICE_INFO
- (Variant) An object containing various fields (deviceId, platform, appPackageName) that describe the device and app associated with the event. -
DEVICE_ID
- (String) The device's unique identifier. -
PLATFORM
- iOS or Android. -
APP_PACKAGE_NAME
- (String) The package name of the app. -
EMAIL
- (String) The user's email address. -
INBOX_SESSION_ID
- The ID of the inbox session in which this event occurred. Not present if there's not an inbox session associated with the event. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template.
In-app send
An event that's captured when Iterable sends an in-app campaign to a particular user. This doesn’t mean that the user received the message.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this in-app campaign. -
EXPIRES_AT
-The expiration date and time for the message associated with the event. -
LABELS
- (String) The ID associated with a specific label assigned to an in-app campaign. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_CONTEXT
- (Variant) An object containing various fields (saveToInbox, silentInbox) that describe the message associated with the event. -
SAVE_TO_INBOX
- (Boolean) Whether or not the message associated with the event was configured to use the inbox. -
SILENT_INBOX
- (Boolean) Whether or not the message associated with the event was configured to send directly to the inbox. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PRIORITY_LEVEL
- (Float) Message priority, with greater priority messages first (proof= 100.0, critical=100.5, high=200.5, medium=300.5, low=400.5), sorted by send time (first sent, first displayed). -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
In-app send skip
An event that's captured when Iterable can’t send a message to an intended recipient.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
REASON
- A string that describes why Iterable did not send the message to the intended recipient; for example, DuplicateMarketingMessage.
Push events
Push bounce
An event that's captured when Iterable sends a push to a user, but it cannot be delivered.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this campaign to this user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PLATFORM_ENDPOINT
- (String) The address Iterable uses to send a push notification to a given device. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this message. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this message. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Push open
An event that's captured when a user opens a push message.
-
APP_ALREADY_RUNNING
- (Boolean) Indicates whether the app was already running when the push notification was received by a user. -
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Push send skip
An event that's captured when Iterable cannot send a push message to an intended recipient.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- The user's email address. -
MESSAGE_ID
- An ID associated with a specific send of this campaign to this user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Push send
An event that's captured when Iterable sends a push campaign to a particular user.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PLATFORM_ENDPOINT
- (String) The address Iterable uses to send a push notification to a given device. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Push uninstall
An event that's captured when a device is assigned an uninstall from a message channel, message type, or list.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_IDS
- (String representation of an array) An array containing the IDs of the channels from which the user was unsubscribed (if any). -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EMAIL_LIST_IDS
- (String representation of an array) An array containing the IDs of the lists from which the user was unsubscribed (if any). -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_IDS
- (String representation of an array) An array containing the IDs of the message types from which the user was unsubscribed (if any). -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
UNSUB_SOURCE
- (String) A string that provides more information about the source of the unsubscribe. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign that sent the email (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign that sent the email (if available).
SMS events
SMS bounce
An event that's captured when Iterable sends an SMS message to a user, but it can’t be delivered.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this SMS campaign. -
FROM_SMS_SENDER_ID
- (Integer) An ID associated with the SMS sender. -
IMAGE_URL
- (String) The URL of the image that was clicked. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_ID
- (String) An ID associated with a specific send of this campaign to this user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this email. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this email. -
SMS_MESSAGE
- (String) - The message that was sent. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
TO_PHONE_NUMBER
- (String) An ID associated with the message recipient. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
SMS click
An event that's captured when a user clicks a link in a message.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CLICKED_URL
- (String) The URL that was clicked. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this SMS campaign. -
FROM_PHONE_NUMBER_ID
- (Integer) An ID associated with the SMS sender. -
IMAGE_URL
- (String) The URL of the image that was clicked. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this campaign. -
SMS_MESSAGE
- (String) The message that was sent. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
SMS send
An event that's captured when Iterable sends a push campaign to a particular user.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this SMS campaign. -
FROM_PHONE_NUMBER_ID
- (Integer) An ID associated with the SMS sender. -
FROM_SMS_SENDER_ID
- (Integer) An ID associated with the SMS sender. -
IMAGE_URL
- (String) The URL of the image that was clicked. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
SMS_MESSAGE
- (String) The message that was sent. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
TO_PHONE_NUMBER
- (String) An ID associated with the message recipient. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
SMS send skip
An event that's captured when Iterable can’t send a message to an intended recipient.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this SMS campaign. -
FROM_SMS_SENDER_ID
- (Integer) An ID associated with the SMS sender. -
IMAGE_URL
- (String) The URL of the image that was clicked. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this message. -
SMS_MESSAGE
- (String) The message that was sent. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
SMS received
An event that's captured when a user responds to an SMS message sent through Iterable.
-
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
FROM_PHONE_NUMBER_ID
- (Integer) An ID associated with the SMS sender. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this campaign. -
SMS_MESSAGE
- (String) The message that was sent. -
TO_PHONE_NUMBER_ID
- (Integer) An ID associated with the message recipient.
Web push events
Web push click
An event that's captured when a user clicks a link in a web push message.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with this campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with this campaign.
Web push send
An event that's captured when Iterable sends a web push campaign to a particular user.
-
BROWSER_TOKEN
- (String) The browser token value for a user who accepts notifications. -
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CHANNEL_ID
- (Integer) The ID of the message channel associated with the campaign. -
CHANNEL_NAME
- (String) The name of the channel associated with the campaign. -
CONTENT_ID
- (Integer) The ID of the content associated with the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
EXPERIMENT_ID
- (Integer) The ID of the experiment associated with this in-app campaign. -
LABELS
- (String) The ID associated with a specific label assigned to a web push campaign. -
LOCALE
- (String) A value associated with the region the message is sent to. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
MESSAGE_TYPE_ID
- (Integer) The ID of the message type associated with the campaign. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
TEMPLATE_ID
- (Integer) The ID of the campaign's template. -
TEMPLATE_NAME
- (String) The name of the campaign's template. -
WEB_PUSH_BODY
- (String) The text that should display in the body of the notification. -
WEB_PUSH_CLICK_ACTION
- (String) The URL to which the notification should navigate the user on click. -
WEB_PUSH_ICON
- (String) The image to display with the notification. -
WORKFLOW_ID
- (Integer) The ID of the workflow associated with the campaign (if available). -
WORKFLOW_NAME
- (String) The name of the workflow associated with the campaign (if available).
Web push send skips
An event that's captured when Iterable can’t send a message to an intended recipient.
-
CAMPAIGN_ID
- (Integer) The ID of the campaign. -
CAMPAIGN_NAME
- (String) The name of the campaign. -
CREATED_AT
- (Timestamp) A UTC timestamp corresponding to the event's creation in Iterable. -
EMAIL
- (String) The user's email address. -
MESSAGE_ID
- (String) An ID associated with a specific send of this specific campaign to this specific user. -
ORGANIZATION_ID
- (Integer) The ID of the organization associated with this message. -
PROJECT_ID
- (Integer) The ID of the Iterable project associated with the campaign. -
PROJECT_NAME
- (String) The name of the Iterable project associated with the campaign. -
REASON
- (String) A string corresponding to the reason for the send skip.
Frequently Asked Questions (FAQ)
Is this a one-way sync?
Yes. This feature syncs data from Iterable to Snowflake, not from Snowflake to Iterable.
Does accepting shared data from Iterable increase my Snowflake costs?
This integration uses Snowflake's Secure Data Sharing feature, which shares data rather than copying it. Because of this, the data doesn't affect your Snowflake data storage costs. However, you will have to pay for compute resources you use to query the shared data. See Snowflake's Introduction to Secure Data Sharing document.
How long does it take Iterable data to appear in Snowflake?
Data appears in Snowflake within 24—48 hours of its creation in Iterable.
Does Iterable backfill old system event data to Snowflake?
Iterable does not backfill system event data to Snowflake. Sharing starts with data created close to the creation of the share.
Does this feature copy Iterable data to my Snowflake account?
No. This feature uses Snowflake's Secure Data Sharing feature, which does not copy data. However, you can copy the data if you need to (this may increase your Snowflake costs).
Does the early access release of Iterable's integration with Snowflake support GDPR or CCPA?
Yes. To learn how to respond to GDPR and CCPA requests in Iterable, read Responding to GDPR Requests.
In Snowflake, can I edit the data that Iterable has shared?
No. Data shared via Secure Data Sharing is read-only. To edit the data, you'll need to make a copy of it (which may increase your Snowflake costs).
If I update a system event in Iterable, does it re-sync to Snowflake?
It's not possible to manually update a system event in Iterable (by making an API call or otherwise).
Can I control access to my Iterable data in Snowflake?
To control access to shared data in Snowflake, you can use its role-based access controls.
Comments
0 comments
Article is closed for comments.