Integration: Iterable

This article will help you learn about how Daasity replicates data from Iterable, limitations to the data we can extract and where the data is stored in the Iterable schema.

Key Topics

Click on the links below to take you to the section where you can learn more about this Integration

Integration Overview

Iterable is a cross-channel marketing platform that powers unified customer experiences and empowers businesses to create, optimize, and measure every interaction across the entire customer journey. Iterable leverages real-time data to personalize email campaigns, dynamically segmenting users and triggers with relevant messaging using Workflow Studio.

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...

  • You are a Growth customer
  • Your account says Pro V2 in the Daasity App

Not sure? Reach out to Support@Daasity.com

API Endpoints

The Daasity Iterable extractor is built based on this Iterable API documentation.  The following endpoint is used by Daasity to replicate data from Iterable:

Entity Relationship Diagram (ERD)

The Daasity Iterable 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.

Iterable Schema

The Daasity Iterable 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.

Campaigns

  • Endpoint: Campaigns
  • Update Method: UPSERT
  • Table Name: iterable.campaigns
JSON Element Database Column
id campaign_id
createdAt created_at
updatedAt updated_at
startAt started_at
endedAt ended_at
name campaign_name
templateId template_id
messageMedium message_medium
createdByUserId created_by
campaignState campaign_state
workflowId workflow_id
sendSize send_size
type campaign_type
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

Campaign Lists

  • Endpoint: Campaigns
  • Update Method: UPSERT
  • Table Name: iterable.campaign_lists
JSON Element Database Column
id campaign_id
listIds::listId list_id
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + id + listIds::listId) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Campaign Suppression Lists

  • Endpoint: Campaigns
  • Update Method: UPSERT
  • Table Name: iterable.campaign_suppression_lists
JSON Element Database Column
id campaign_id
suppressionListIds::listId list_id
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + id + suppressionListIds::listId) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Campaign Labels

  • Endpoint: Campaigns
  • Update Method: UPSERT
  • Table Name: iterable.campaign_labels
JSON Element Database Column
id campaign_id
labels::label campaign_labels
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + id + labels::label) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Lists

  • Endpoint: Lists
  • Update Method: UPSERT
  • Table Name: iterable.lists
JSON Element Database Column
id list_id
name list_name
createdAt created_at
listType list_type
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

Users

  • Endpoint: Users
  • Update Method: UPSERT
  • Table Name: iterable.users
JSON Element Database Column
userId user_id
email email
signupDate sign_up_date
profileUpdatedAt profile_updated_at
publicIdString public_id_string
verified_email verified_email
accepts_marketing accepts_marketing
phoneNumber, limit 64 phone_number
email_signup_location email_signup_location
tags, limit: 4095 tags
signupSource sign_up_source
timeZone user_time_zone
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + userId) __sync_key
Daasity: timestamp when loaded into DB __synced_at

User Lists

  • Endpoint: Users
  • Update Method: UPSERT
  • Table Name: iterable.user_lists
JSON Element Database Column
userId user_id
emailListIds::id list_id
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + userId + emailListIds::id) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Subscribes

JSON Element Database Column
messageId message_id
email email
templateId template_id
camapaignId campaign_id
userAgent user_Agent
userAgentDevice user_agent_device
hrefIndex href_index
url, limi: 4095 url
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId + hrefIndex + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Unsubscribes

JSON Element Database Column
email_unsubscribes::email email
email_unsubscribes::unsubSource unsub_source
email_unsubscribes::campaignId campaign_id
email_unsubscribes::workflowId workflow_id
email_unsubscribes::templateId template_id
email_unsubscribes::createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + email + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Unsubscribe Lists

  • Endpoint: Export Data to JSON
  • Update Method: UPSERT
  • Table Name: iterable.email_unsubscribe_lists
JSON Element Database Column
emailListIds::email email
emailListIds::id list_id
emailListIds::createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + email + createdAt + emailListIds::id) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Channels

  • Endpoint: Channels
  • Update Method: UPSERT
  • Table Name: iterable.channels
JSON Element Database Column
id channel_id
name channel_name
channelType channel_type
messageMedium message_medium
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

User Unsubscribed Channels

  • Endpoint: Users
  • Update Method: UPSERT
  • Table Name: iterable.user_unsubscribed_channels
JSON Element Database Column
unsubscribedChanelIds::userId user_id
unsubscribedChanelIds::id channel_id
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + unsubscribedChanelIds::userId + unsubscribedChanelIds::id) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Unsubscribed Channels

  • Endpoint: Export Data to JSON
  • Update Method: UPSERT
  • Table Name: iterable.email_unsubscribed_channels
JSON Element Database Column
 channelIds::email email
channelIds::id channel_id
channelIds::createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + channelIds::email + channelIds::createdAt + channelIds::id) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Message Types

  • Endpoint: MessageTypes
  • Update Method: UPSERT
  • Table Name: iterable.message_types
JSON Element Database Column
id message_type_id
name message_type_name
channelId channel_id
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

User Unsubscribed Message Types

  • Endpoint: Users
  • Update Method: UPSERT
  • Table Name: iterable.user_unsubscribed_message_types
JSON Element Database Column
user::userId user_id
unsubscribedMessageTypeIds::id message_type_id
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + user::userId + unsubscribedMessageTypeIds::id) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Sends

JSON Element Database Column
messageId message_id
email email
messageBusId message_bus_id
templateId template_id
campaignId campaign_id
channelId channel_id
messageTypeId message_type_id
contentId content_id
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Bounces

JSON Element Database Column
messageId message_id
email email
templateId template_id
campaignId campaign_id
recipientState recipient_state
status bounce_status
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Complaints

JSON Element Database Column
messageId message_id
email email
templateId template_id
campaignId campaign_id
recipientState recipient_state
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Opens

JSON Element Database Column
messageId message_id
email email
templateId template_id
campaignId campaign_id
ip ip_address
userAgent user_agent
userAgentDevice user_agent_device
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Email Clicks

JSON Element Database Column
messageId message_id
email email
templateId template_id
campaignId campaign_id
userAgent user_agent
userAgentDevice user_agent_device
hrefIndex href_index
url, limit: 4095 url
createdAt created_at
Daasity: source_id __source_id
Daasity: account_id _account_id
Daasity: MD5(source_id + messageId + hrefIndex + createdAt) __sync_key
Daasity: timestamp when loaded into DB __synced_at

Related Resources