Skip to main content

Overview

Mailchimp is an email marketing and automation platform used for audience management, email campaigns, and marketing analytics. This connector extracts audiences and their members, segments, email campaigns, campaign reports, and automation workflows from the Mailchimp Marketing API.

Configuration

1

Add account access

You can connect Mailchimp using either an API key or OAuth.
To create an API key, go to Account → Extras → API keys → Create A Key in your Mailchimp account. Copy the key immediately — Mailchimp shows it only once.
Instead of an API key, you can click Authorization to connect via OAuth and grant access without copying a key. Use one method or the other.
2

Select streams

Choose which streams you want to sync. Available streams are listed in the Streams and Fields section below.
3

Configure data streams

For each selected stream, configure:
  • Layer: Choose the destination layer (e.g., Bronze).
  • Folder: Organize data within the layer.
  • Table name: The table name in your lakehouse.
  • Sync Type: Incremental (recommended) or Full Sync.
4

Configure data source

Set up the source-level configuration:
  • Description: Add a description for this data source.
  • Triggers: Configure sync triggers (schedule or manual).
  • Delta Log Retention Days: Number of days to retain delta log history.
  • Full Sync: Optionally force a full sync on first run.
5

Check your new source

After saving, verify the source appears in your Sources list. Run a manual sync to validate that data flows correctly.

Streams and Fields

Audiences (lists) in the account, including contact details, signup settings, and aggregate stats. Synced as a full table.
Members (contacts) of each audience. Child of lists. Supports incremental sync via last_changed.
Segments within each audience. Child of lists. Supports incremental sync via updated_at.
Email campaigns including recipients, settings, tracking, and a report summary. Supports incremental sync via create_time.
Per-campaign aggregate reports. The id matches the campaign id. Supports incremental sync via send_time.
Classic automation workflows including recipients, settings, and a report summary. Supports incremental sync via create_time.

Implementation Notes

  • Authentication: HTTP Basic Auth with the API key (any username, API key as password), or OAuth via the Authorization button. The data center (e.g. us9) is resolved from the API key suffix or the OAuth metadata endpoint.
  • Pagination: The connector paginates with count and offset, fetching all pages up to each endpoint’s total.
  • Incremental sync: list_members, segments, campaigns, reports, and automations sync incrementally using Mailchimp’s since_* date filters. lists is full-table only, since Mailchimp exposes only a creation date for audiences.
  • JSON fields: Fields with audience-specific or variable structure — merge_fields, interests (members), options (segments), and trigger_settings (automations) — are serialized as JSON strings. Parse them downstream as needed.
  • Child streams: list_members and segments are synced per audience, using the parent lists stream to provide each list_id.