Integration Specifications
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:
Enterprise
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)
Click here to view the ERD for the Daasity Pepperjam integration illustrating the different tables and keys to join across tables.
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
]
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
]
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
]
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
]
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
]
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
]
userId
user_id
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
]
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_subscribes
]
messageId
message_id
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_unsubscribes
]
email_unsubscribes::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
]
emailListIds::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
]
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
]
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
]
channelIds::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
]
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
]
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_sends
]
messageId
message_id
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_bounces
]
messageId
message_id
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_complaints
]
messageId
message_id
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_opens
]
messageId
message_id
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
Endpoint: Export Data to JSON
Update Method: UPSERT
Table Name: [
iterable.email_clicks
]
messageId
message_id
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
Last updated