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]

JSON ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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

  • Update Method: UPSERT

  • Table Name: [iterable.email_unsubscribe_lists]

JSON ElementDatabase 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 ElementDatabase 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 ElementDatabase 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

  • Update Method: UPSERT

  • Table Name: [iterable.email_unsubscribed_channels]

JSON ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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

Last updated