MailChimp integration summary

Stitch’s MailChimp integration replicates data using the MailChimp API 3.0. Refer to the Schema section for a list of objects available for replication.

MailChimp feature snapshot

A high-level look at Stitch's MailChimp (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on March 9, 2020

Supported by

Stitch

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-mailchimp

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting MailChimp

MailChimp setup requirements

To set up MailChimp in Stitch, you need:

  • To verify your access in MailChimp. Stitch will only be able to replicate the same data as the user who authorizes the integration.

    If this user has restricted permissions - meaning the user doesn’t have access to all campaigns or lists, for example - Stitch may encounter issues replicating data.


Step 1: Add MailChimp as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the MailChimp icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch MailChimp” would create a schema called stitch_mailchimp in the destination. Note: Schema names cannot be changed after you save the integration.

Step 2: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your MailChimp integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond MailChimp’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

MailChimp integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Authorize Stitch to access MailChimp

  1. When finished in the Integration Settings page, click the Authorize button. You’ll be prompted to sign into your MailChimp account.
  2. Sign into your MailChimp account.
  3. After the authorization process is successfully completed, you’ll be directed back to Stitch.
  4. Click All Done.

Step 5: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For MailChimp integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up MailChimp, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


MailChimp table reference

automations

The automations table contains summary info about your MailChimp account’s automations. In MailChimp, an automation is a feature that sends a series of emails to subscribers when triggered by a specific date, activity, or event.

Replication Method

Full Table

Primary Key

id

Replication Key

create_time

Useful links

automations schema on GitHub

MailChimp API method

Join automations with on
campaigns
automations.recipients.list_id = campaigns.recipients.list_id
list_members
automations.recipients.list_id = list_members.list_id
list_segment_members
automations.recipients.list_id = list_segment_members.list_id
list_segments
automations.recipients.list_id = list_segments.list_id
lists
automations.recipients.list_id = lists.id
reports_email_activity
automations.recipients.list_id = reports_email_activity.list_id

create_time

DATE-TIME

emails_sent

INTEGER

id

STRING

recipients

OBJECT

list_id

STRING

list_is_active

BOOLEAN

list_name

STRING

segment_opts

OBJECT

conditions

ARRAY

condition_type

STRING

field

STRING

op

STRING

value

STRING

match

STRING

saved_segment_id

INTEGER

store_id

STRING

report_summary

OBJECT

click_rate

NUMBER

clicks

INTEGER

open_rate

NUMBER

opens

INTEGER

subscriber_clicks

INTEGER

unique_opens

INTEGER

settings

OBJECT

authenticate

BOOLEAN

auto_footer

BOOLEAN

from_name

STRING

inline_css

BOOLEAN

reply_to

STRING

title

STRING

to_name

STRING

use_conversation

BOOLEAN

start_time

DATE-TIME

status

STRING

tracking

OBJECT

capsule

OBJECT

notes

BOOLEAN

clicktale

STRING

ecomm360

BOOLEAN

goal_tracking

BOOLEAN

google_analytics

STRING

html_clicks

BOOLEAN

opens

BOOLEAN

salesforce

OBJECT

campaign

BOOLEAN

notes

BOOLEAN

text_clicks

BOOLEAN

trigger_settings

OBJECT

runtime

STRING

workflow_emails_count

INTEGER

workflow_title

STRING

workflow_type

STRING

campaigns

The campaigns table contains info about the campaigns in your MailChimp account.

Replication Method

Full Table

Primary Key

id

Useful links

campaigns schema on GitHub

MailChimp API method

Join campaigns with on
reports_email_activity
campaigns.id = reports_email_activity.campaign_id
campaigns.recipients.list_id = reports_email_activity.list_id
automations
campaigns.recipients.list_id = automations.recipients.list_id
list_members
campaigns.recipients.list_id = list_members.list_id
list_segment_members
campaigns.recipients.list_id = list_segment_members.list_id
list_segments
campaigns.recipients.list_id = list_segments.list_id
lists
campaigns.recipients.list_id = lists.id

archive_url

STRING

content_type

STRING

create_time

DATE-TIME

delivery_status

OBJECT

emails_sent

INTEGER

has_logo_merge_tag

BOOLEAN

id

STRING

long_archive_url

STRING

needs_block_refresh

BOOLEAN

recipients

OBJECT

list_id

STRING

list_is_active

BOOLEAN

list_name

STRING

recipient_count

INTEGER

segment_opts

OBJECT

conditions

ARRAY

condition_type

STRING

field

STRING

op

STRING

value

STRING

match

STRING

prebuilt_segment_id

STRING

saved_segment_id

INTEGER

segment_text

STRING

report_summary

OBJECT

click_rate

NUMBER

clicks

INTEGER

ecommerce

OBJECT

total_orders

INTEGER

total_revenue

INTEGER

total_spent

INTEGER

open_rate

NUMBER

opens

INTEGER

subscriber_clicks

INTEGER

unique_opens

INTEGER

resendable

BOOLEAN

send_time

DATE-TIME

settings

OBJECT

authenticate

BOOLEAN

auto_footer

BOOLEAN

auto_tweet

BOOLEAN

drag_and_drop

BOOLEAN

fb_comments

BOOLEAN

folder_id

STRING

from_name

STRING

inline_css

BOOLEAN

preview_text

STRING

reply_to

STRING

subject_line

STRING

template_id

STRING

timewarp

BOOLEAN

title

STRING

to_name

STRING

use_conversation

BOOLEAN

social_card

OBJECT

description

STRING

image_url

STRING

title

STRING

status

STRING

tracking

OBJECT

clicktale

STRING

ecomm360

BOOLEAN

goal_tracking

BOOLEAN

google_analytics

STRING

html_clicks

BOOLEAN

opens

BOOLEAN

text_clicks

BOOLEAN

type

STRING

web_id

INTEGER

list_members

The list_members table contains info about the members in a specific MailChimp list, including currently subscribed, unsubscribed, and bounced members.

Replication Method

Key-based Incremental

Primary Keys

id

list_id

Replication Key

last_changed

Useful links

list_members schema on GitHub

MailChimp API method

Join list_members with on
automations
list_members.list_id = automations.recipients.list_id
campaigns
list_members.list_id = campaigns.recipients.list_id
list_segment_members
list_members.list_id = list_segment_members.list_id
list_segments
list_members.list_id = list_segments.list_id
lists
list_members.list_id = lists.id
reports_email_activity
list_members.list_id = reports_email_activity.list_id

email_address

STRING

email_client

STRING

email_type

STRING

id

STRING

ip_opt

STRING

ip_signup

STRING

language

STRING

last_changed

DATE-TIME

list_id

STRING

location

OBJECT

country_code

STRING

dstoff

INTEGER

gmtoff

INTEGER

latitude

NUMBER

longitude

NUMBER

timezone

STRING

member_rating

NUMBER

source

STRING

stats

OBJECT

avg_click_rate

NUMBER

avg_open_rate

NUMBER

status

STRING

tags

ARRAY

id

INTEGER

name

STRING

tags_count

INTEGER

timestamp_opt

DATE-TIME

timestamp_signup

DATE-TIME

unique_email_id

STRING

unsubscribe_reason

STRING

vip

BOOLEAN

web_id

INTEGER

list_segment_members

The list_segment_members table contains info about members in a saved segment

Replication Method

Full Table

Primary Key

id

Useful links

list_segment_members schema on GitHub

MailChimp API method

Join list_segment_members with on
automations
list_segment_members.list_id = automations.recipients.list_id
campaigns
list_segment_members.list_id = campaigns.recipients.list_id
list_members
list_segment_members.list_id = list_members.list_id
list_segments
list_segment_members.list_id = list_segments.list_id
lists
list_segment_members.list_id = lists.id
reports_email_activity
list_segment_members.list_id = reports_email_activity.list_id

email_address

STRING

email_client

STRING

email_type

STRING

id

STRING

ip_opt

STRING

ip_signup

STRING

language

STRING

last_changed

DATE-TIME

list_id

STRING

location

OBJECT

country_code

STRING

dstoff

INTEGER

gmtoff

INTEGER

latitude

NUMBER

longitude

NUMBER

timezone

STRING

member_rating

NUMBER

stats

OBJECT

avg_click_rate

NUMBER

avg_open_rate

NUMBER

status

STRING

timestamp_opt

DATE-TIME

timestamp_signup

STRING

unique_email_id

STRING

vip

BOOLEAN

list_segments

The list_segments table contains info about the available segments for a specific list.

Replication Method

Full Table

Primary Key

id

Replication Key

updated_at

Useful links

list_segments schema on GitHub

MailChimp API method

Join list_segments with on
automations
list_segments.list_id = automations.recipients.list_id
campaigns
list_segments.list_id = campaigns.recipients.list_id
list_members
list_segments.list_id = list_members.list_id
list_segment_members
list_segments.list_id = list_segment_members.list_id
lists
list_segments.list_id = lists.id
reports_email_activity
list_segments.list_id = reports_email_activity.list_id

created_at

DATE-TIME

id

STRING

list_id

STRING

member_count

INTEGER

name

STRING

options

OBJECT

conditions

ARRAY

condition_type

STRING

field

STRING

op

STRING

value

STRING

match

STRING

type

STRING

updated_at

DATE-TIME

lists

The lists table contains info about all the lists in your MailChimp account. A list is also known as an audience, and is where all contacts are stored and managed in MailChimp.

Replication Method

Full Table

Primary Key

id

Useful links

lists schema on GitHub

MailChimp API method

Join lists with on
automations
lists.id = automations.recipients.list_id
campaigns
lists.id = campaigns.recipients.list_id
list_members
lists.id = list_members.list_id
list_segment_members
lists.id = list_segment_members.list_id
list_segments
lists.id = list_segments.list_id
reports_email_activity
lists.id = reports_email_activity.list_id

beamer_address

STRING

campaign_defaults

OBJECT

from_email

STRING

from_name

STRING

language

STRING

subject

STRING

contact

OBJECT

address1

STRING

address2

STRING

city

STRING

company

STRING

country

STRING

phone

STRING

state

STRING

zip

STRING

date_created

DATE-TIME

double_optin

BOOLEAN

email_type_option

BOOLEAN

has_welcome

BOOLEAN

id

STRING

list_rating

INTEGER

marketing_permissions

BOOLEAN

modules

ARRAY

name

STRING

notify_on_subscribe

STRING

notify_on_unsubscribe

STRING

permission_reminder

STRING

stats

OBJECT

avg_sub_rate

NUMBER

avg_unsub_rate

NUMBER

campaign_count

INTEGER

campaign_last_sent

DATE-TIME

cleaned_count

INTEGER

cleaned_count_since_send

INTEGER

click_rate

NUMBER

last_sub_date

DATE-TIME

last_unsub_date

DATE-TIME

member_count

INTEGER

member_count_since_send

INTEGER

merge_field_count

INTEGER

open_rate

NUMBER

target_sub_rate

NUMBER

unsubscribe_count

INTEGER

unsubscribe_count_since_send

INTEGER

subscribe_url_long

STRING

subscribe_url_short

STRING

use_archive_bar

BOOLEAN

visibility

STRING

web_id

STRING

reports_email_activity

The reports_email_activity table contains info about a member’s subscriber activity in a specific campaign.

Replication Method

Key-based Incremental

Primary Keys

action

campaign_id

email_id

timestamp

Useful links

MailChimp documentation

reports_email_activity schema on GitHub

MailChimp API method

Join reports_email_activity with on
campaigns
reports_email_activity.campaign_id = campaigns.id
reports_email_activity.list_id = campaigns.recipients.list_id
automations
reports_email_activity.list_id = automations.recipients.list_id
list_members
reports_email_activity.list_id = list_members.list_id
list_segment_members
reports_email_activity.list_id = list_segment_members.list_id
list_segments
reports_email_activity.list_id = list_segments.list_id
lists
reports_email_activity.list_id = lists.id

action

STRING

campaign_id

STRING

email_address

STRING

email_id

STRING

ip

STRING

list_id

STRING

list_is_active

BOOLEAN

timestamp

DATE-TIME

type

STRING

url

STRING

unsubscribes

The unsubscribes table contains info about members who have unsubscribed from a specific campaign.

Replication Method

Full Table

Primary Keys

campaign_id

email_id

Useful links

unsubscribes schema on GitHub

MailChimp API method

campaign_id

STRING

email_address

STRING

email_id

STRING

list_id

STRING

list_is_active

BOOLEAN

reason

STRING

timestamp

DATE-TIME

vip

BOOLEAN


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.