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
- Integration Availability
- API Endpoints
- Entity Relationship Diagram
- Iterable Schema
- Related Resources
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
- Campaign Lists
- Campaign Suppression Lists
- Campaign Labels
- Lists
- Users
- User Lists
- Email Subscribes
- Email Unsubscribes
- Email Unsubscribe Lists
- Channels
- User Unsubscribed Channels
- Email Unsubscribe Channels
- Message Types
- User Unsubscribed Message Types
- Email Sends
- Email Bounces
- Email Complaints
- Email Opens
- Email Clicks
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 |
| 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
- Endpoint: Export Data to JSON
- Update Method: UPSERT
- Table Name: iterable.email_subscribes
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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
| 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 | |
| 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
- Endpoint: Export Data to JSON
- Update Method: UPSERT
- Table Name: iterable.email_sends
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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
| JSON Element | Database Column |
| 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 |
Related Resources