Skip to main content

Mailchimp

This page guides you through setting up the Mailchimp source connector.

Prerequisite

You can use OAuth or an API key to authenticate your Mailchimp account. If you choose to authenticate with OAuth, register your Mailchimp account.

Set up the Mailchimp source connector

  1. Log into your Airbyte Cloud or Airbyte Open Source account.

  2. Click Sources and then click + New source.

  3. On the Set up the source page, select Mailchimp from the Source type dropdown.

  4. Enter a name for your source.

  5. You can use OAuth or an API key to authenticate your Mailchimp account. We recommend using OAuth for Airbyte Cloud and an API key for Airbyte Open Source.

    • To authenticate using OAuth for Airbyte Cloud, ensure you have registered your Mailchimp account and then click Authenticate your Mailchimp account to sign in with Mailchimp and authorize your account.
    • To authenticate using an API key for Airbyte Open Source, select API key from the Authentication dropdown and enter the API key for your Mailchimp account.
      note

      Check the performance considerations before using an API key.

  6. Click Set up source.

Supported sync modes

The Mailchimp source connector supports the following sync modes:

  • Full Refresh
  • Incremental

Airbyte doesn't support Incremental Deletes for the Campaigns, Lists, and Email Activity streams because Mailchimp doesn't provide any information about deleted data in these streams.

Performance considerations

Mailchimp does not impose rate limits on how much data is read from its API in a single sync process. However, Mailchimp enforces a maximum of 10 simultaneous connections to its API, which means that Airbyte is unable to run more than 10 concurrent syncs from Mailchimp using API keys generated from the same account.

Supported streams

The Mailchimp source connector supports the following streams:

Lists Stream

{
"id": "q1w2e3r4t5",
"web_id": 000001,
"name": "Newsletter Subscribers",
"contact": {
"company": "",
"address1": "",
"address2": "",
"city": "San Francisco",
"state": "CA",
"zip": "00000-1111",
"country": "US",
"phone": ""
},
"permission_reminder": "You are receiving this email because you opted in via our website.",
"use_archive_bar": true,
"campaign_defaults": {
"from_name": "Airbyte Community",
"from_email": "hey@email.com",
"subject": "",
"language": "en"
},
"notify_on_subscribe": "",
"notify_on_unsubscribe": "",
"date_created": "2020-09-17T04:48:49+00:00",
"list_rating": 3,
"email_type_option": false,
"subscribe_url_short": "http://eepurl.com/hfpWAr",
"subscribe_url_long": "https://daxtarity.us2.list-manage.com/subscribe?u=q1q1q1q1q1q1q1q1q1q&id=q1w2e3r4t5",
"beamer_address": "us2-00000000-qqqqqqqqq@inbound.mailchimp.com",
"visibility": "prv",
"double_optin": false,
"has_welcome": false,
"marketing_permissions": false,
"modules": [],
"stats": {
"member_count": 4204,
"unsubscribe_count": 194,
"cleaned_count": 154,
"member_count_since_send": 91,
"unsubscribe_count_since_send": 19,
"cleaned_count_since_send": 23,
"campaign_count": 27,
"campaign_last_sent": "2022-04-01T14:29:31+00:00",
"merge_field_count": 5,
"avg_sub_rate": 219,
"avg_unsub_rate": 10,
"target_sub_rate": 18,
"open_rate": 39.478173607626694,
"click_rate": 8.504017780817234,
"last_sub_date": "2022-04-12T07:39:29+00:00",
"last_unsub_date": "2022-04-11T08:08:07+00:00"
},
"_links": [
{
"rel": "self",
"href": "https://us2.api.mailchimp.com/3.0/lists/q1w2e3r4t5",
"method": "GET",
"targetSchema": "https://us2.api.mailchimp.com/schema/3.0/Definitions/Lists/Response.json"
}
]
}

Campaigns Stream

{
"id": "q1w2e3r4t5",
"web_id": 0000000,
"type": "regular",
"create_time": "2020-11-03T22:46:43+00:00",
"archive_url": "http://eepurl.com/hhSLxH",
"long_archive_url": "https://mailchi.mp/xxxxxxxx/weekly-bytes-learnings-from-soft-launch-and-our-vision-0000000",
"status": "sent",
"emails_sent": 89,
"send_time": "2020-11-05T16:15:00+00:00",
"content_type": "template",
"needs_block_refresh": false,
"resendable": true,
"recipients": {
"list_id": "1q2w3e4r",
"list_is_active": true,
"list_name": "Newsletter Subscribers",
"segment_text": "",
"recipient_count": 89
},
"settings": {
"subject_line": "Some subject",
"preview_text": "Text",
"title": "Newsletter",
"from_name": "Weekly Bytes from Airbyte",
"reply_to": "hey@email.com",
"use_conversation": false,
"to_name": "",
"folder_id": "",
"authenticate": true,
"auto_footer": false,
"inline_css": false,
"auto_tweet": false,
"fb_comments": true,
"timewarp": false,
"template_id": 0000000,
"drag_and_drop": false
},
"tracking": {
"opens": true,
"html_clicks": true,
"text_clicks": false,
"goal_tracking": false,
"ecomm360": false,
"google_analytics": "",
"clicktale": ""
},
"report_summary": {
"opens": 46,
"unique_opens": 33,
"open_rate": 0.0128372,
"clicks": 13,
"subscriber_clicks": 7,
"click_rate": 0.0383638,
"ecommerce": {
"total_orders": 0,
"total_spent": 0,
"total_revenue": 0
}
},
"delivery_status": {
"enabled": false
},
"_links": [
{
"rel": "parent",
"href": "https://us2.api.mailchimp.com/3.0/campaigns",
"method": "GET",
"targetSchema": "https://us2.api.mailchimp.com/schema/3.0/Definitions/Campaigns/CollectionResponse.json",
"schema": "https://us2.api.mailchimp.com/schema/3.0/Paths/Campaigns/Collection.json"
}
]
}

Email Activity Stream

{
"campaign_id": "q1w2q1w2q1w2",
"list_id": "123qwe",
"list_is_active": true,
"email_id": "qwerty123456",
"email_address": "email@email.com",
"_links": [
{
"rel": "parent",
"href": "https://us2.api.mailchimp.com/3.0/reports/q1w2q1w2q1w2/email-activity",
"method": "GET",
"targetSchema": "https://us2.api.mailchimp.com/schema/3.0/Definitions/Reports/EmailActivity/CollectionResponse.json"
}
],
"action": "open",
"timestamp": "2020-10-08T22:15:43+00:00",
"ip": "00.000.00.5"
}

A note on the primary keys

The Lists and Campaigns streams have id as the primary key. The Email Activity stream doesn't have a primary key because Mailchimp does not provide one.

Data type mapping

Integration TypeAirbyte TypeNotes
arrayarraythe type of elements in the array is determined based on the mappings in this table
date, time, datetimestring
int, float, numbernumber
objectobjectproperties within objects are mapped based on the mappings in this table
stringstring

Tutorials

Now that you have set up the Mailchimp source connector, check out the following Mailchimp tutorial:

Changelog

VersionDatePull RequestSubject
0.4.12023-05-0225717Handle unknown error in EmailActivity
0.4.02023-04-1123290Add Automations stream
0.3.52023-02-2823464Add Reports stream
0.3.42023-02-0622405Revert extra logging
0.3.32023-02-0122228Add extra logging
0.3.22023-01-2722014Set AvailabilityStrategy for streams explicitly to None
0.3.12022-12-2020720Use stream slices as a source for request params instead of a stream state
0.3.02022-11-0719023Set primary key for Email Activity stream.
0.2.152022-09-2817326Migrate to per-stream states.
0.2.142022-04-1211352Update documentation
0.2.132022-04-1111632Add unit tests
0.2.122022-03-1710975Fix campaign's stream normalization
0.2.112021-12-247159Add oauth2.0 support
0.2.102021-12-219000Update connector fields title/description
0.2.92021-12-137975Updated JSON schemas
0.2.82021-08-175481Remove date-time type from some fields
0.2.72021-08-035137Source Mailchimp: fix primary key for email activities
0.2.62021-07-285024Source Mailchimp: handle records with no no "activity" field in response
0.2.52021-07-084621Mailchimp fix url-base
0.2.42021-06-094285Use datacenter URL parameter from apikey
0.2.32021-06-083973Add AIRBYTE_ENTRYPOINT for Kubernetes support
0.2.22021-06-083415Get Members activities
0.2.12021-04-032726Fix base connector versioning
0.2.02021-03-092238Protocol allows future/unknown properties
0.1.42020-11-301046Add connectors using an index YAML file