CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-airbyte-source-mailchimp

Airbyte source connector that enables data extraction from Mailchimp's API for email marketing analytics and audience management

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

data-streams.mddocs/

Data Streams

Access to 12 Mailchimp data streams including campaigns, lists, segments, email activity, and detailed analytics reports. All streams are configured declaratively through the manifest.yaml file with automatic pagination, error handling, and incremental sync capabilities.

Stream Configuration

All streams inherit from declarative base configurations that provide:

  • Authentication: Automatic selection between OAuth and API key methods
  • Pagination: Offset-based pagination with 1000 records per page
  • Rate Limiting: Built-in handling of Mailchimp API rate limits
  • Data Center Routing: Automatic routing to correct Mailchimp data center
  • Incremental Sync: Timestamp-based incremental updates where supported

Available Streams

Campaign Streams

Campaigns

Email marketing campaigns with comprehensive metadata and settings.

  • Primary Key: id
  • Cursor Field: create_time
  • Sync Mode: Incremental
  • API Endpoint: /campaigns

Contains campaign details, settings, content, recipients, and delivery statistics.

Email Activity

Detailed tracking of individual email interactions and engagement events.

  • Primary Key: ["timestamp", "email_id", "action"]
  • Cursor Field: timestamp
  • Sync Mode: Incremental
  • API Endpoint: /reports/{campaign_id}/email-activity
  • Custom Extractor: MailChimpRecordExtractorEmailActivity

Tracks opens, clicks, bounces, unsubscribes, and other email activities with timestamp precision.

Reports

Campaign performance analytics and detailed reporting metrics.

  • Primary Key: id
  • Cursor Field: send_time
  • Sync Mode: Incremental
  • API Endpoint: /reports

Includes open rates, click rates, bounce rates, unsubscribe rates, and detailed campaign statistics.

Audience Management Streams

Lists

Mailing lists and audience segments with subscriber counts and settings.

  • Primary Key: id
  • Cursor Field: date_created
  • Sync Mode: Incremental
  • API Endpoint: /lists

Contains list metadata, subscriber counts, default settings, and contact information.

List Members

Individual subscribers within mailing lists with detailed profile information.

  • Primary Key: ["id", "list_id"]
  • Cursor Field: last_changed
  • Sync Mode: Incremental
  • API Endpoint: /lists/{list_id}/members

Includes email addresses, subscriber status, merge fields, interests, and engagement statistics.

Segments

Audience segments within lists based on subscriber criteria and behavior.

  • Primary Key: id
  • Cursor Field: updated_at
  • Sync Mode: Incremental
  • API Endpoint: /lists/{list_id}/segments

Contains segment definitions, member counts, and segmentation criteria.

Segment Members

Individual subscribers within specific audience segments.

  • Primary Key: ["id", "segment_id"]
  • Cursor Field: last_changed
  • Sync Mode: Incremental
  • API Endpoint: /lists/{list_id}/segments/{segment_id}/members

Links subscribers to segments with join timestamps and engagement data.

Subscriber Interaction Streams

Tags

Contact tags for organizing and categorizing subscribers.

  • Primary Key: ["id", "name"]
  • Sync Mode: Full Refresh
  • API Endpoint: /lists/{list_id}/tags

Contains tag names, creation dates, and usage counts across subscribers.

Interest Categories

Interest categories for subscriber preference management and segmentation.

  • Primary Key: ["id", "list_id"]
  • Sync Mode: Full Refresh
  • API Endpoint: /lists/{list_id}/interest-categories

Defines interest categories with titles, types, and subscriber opt-in preferences.

Interests

Individual interests within categories for granular subscriber preferences.

  • Primary Key: id
  • Sync Mode: Full Refresh
  • API Endpoint: /lists/{list_id}/interest-categories/{interest_category_id}/interests

Contains specific interest options subscribers can select within categories.

Unsubscribes

Unsubscribe events and opt-out history with detailed reasoning and timestamps.

  • Primary Key: ["campaign_id", "email_id", "timestamp"]
  • Cursor Field: timestamp
  • Sync Mode: Incremental
  • API Endpoint: /reports/{campaign_id}/unsubscribed

Tracks unsubscribe events with campaign attribution and subscriber details.

Automation Streams

Automations

Email automation workflows and drip campaigns with trigger conditions.

  • Primary Key: id
  • Cursor Field: create_time
  • Sync Mode: Incremental
  • API Endpoint: /automations

Contains automation settings, triggers, email sequences, and performance metrics.

Stream Access

All streams are automatically available when using the SourceMailchimp connector. The declarative configuration handles:

  • Stream Discovery: Automatic detection of available streams and their schemas
  • Data Extraction: Efficient pagination and rate limit handling
  • Schema Evolution: Automatic handling of API schema changes
  • Error Recovery: Robust error handling and retry mechanisms

Usage Examples

Accessing Stream Data

from source_mailchimp import SourceMailchimp

# Create connector instance
source = SourceMailchimp()

# Discover available streams
catalog = source.discover(logger, config)

# Available streams will include all 12 data streams:
# - automations, campaigns, email_activity, lists, list_members  
# - tags, interest_categories, interests, reports, segments
# - segment_members, unsubscribes

Stream Configuration

{
  "streams": [
    {
      "stream": {
        "name": "campaigns",
        "json_schema": {...},
        "supported_sync_modes": ["full_refresh", "incremental"]
      },
      "sync_mode": "incremental",
      "cursor_field": ["create_time"],
      "destination_sync_mode": "append"
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/pypi-airbyte-source-mailchimp

docs

configuration.md

core-connector.md

custom-processing.md

data-streams.md

index.md

tile.json