mailchimp-automation

Automate Mailchimp email marketing including campaigns, audiences, subscribers, segments, and analytics via Rube MCP (Composio). Always search tools first for current schemas.

View Source
name:mailchimp-automationdescription:"Automate Mailchimp email marketing including campaigns, audiences, subscribers, segments, and analytics via Rube MCP (Composio). Always search tools first for current schemas."requires:mcp:[rube]

Mailchimp Automation via Rube MCP

Automate Mailchimp email marketing workflows including campaign creation and sending, audience/list management, subscriber operations, segmentation, and performance analytics through Composio's Mailchimp toolkit.

Prerequisites

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)

  • Active Mailchimp connection via RUBE_MANAGE_CONNECTIONS with toolkit mailchimp

  • Always call RUBE_SEARCH_TOOLS first to get current tool schemas
  • Setup

    Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.


  • Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds

  • Call RUBE_MANAGE_CONNECTIONS with toolkit mailchimp

  • If connection is not ACTIVE, follow the returned auth link to complete Mailchimp OAuth

  • Confirm connection status shows ACTIVE before running any workflows
  • Core Workflows

    1. Create and Send Email Campaigns

    When to use: User wants to create, configure, test, and send an email campaign.

    Tool sequence:

  • MAILCHIMP_GET_LISTS_INFO - List available audiences and get list_id [Prerequisite]

  • MAILCHIMP_ADD_CAMPAIGN - Create a new campaign with type, audience, subject, from name [Required]

  • MAILCHIMP_SET_CAMPAIGN_CONTENT - Set HTML content for the campaign [Required]

  • MAILCHIMP_SEND_TEST_EMAIL - Send preview to reviewers before live send [Optional]

  • MAILCHIMP_SEND_CAMPAIGN - Send the campaign immediately [Required]

  • MAILCHIMP_SCHEDULE_CAMPAIGN - Schedule for future delivery instead of immediate send [Optional]
  • Key parameters for MAILCHIMP_ADD_CAMPAIGN:

  • type: "regular", "plaintext", "rss", or "variate" (required)

  • recipients__list__id: Audience/list ID for recipients

  • settings__subject__line: Email subject line

  • settings__from__name: Sender display name

  • settings__reply__to: Reply-to email address (required for sending)

  • settings__title: Internal campaign title

  • settings__preview__text: Preview text shown in inbox
  • Key parameters for MAILCHIMP_SET_CAMPAIGN_CONTENT:

  • campaign_id: Campaign ID from creation step (required)

  • html: Raw HTML content for the email

  • plain_text: Plain-text version (auto-generated if omitted)

  • template__id: Use a pre-built template instead of raw HTML
  • Pitfalls:

  • MAILCHIMP_SEND_CAMPAIGN is irreversible; always send a test email first and get explicit user approval

  • Campaign must be in "save" (draft) status with valid audience, subject, from name, verified email, and content before sending

  • MAILCHIMP_SCHEDULE_CAMPAIGN requires a valid future datetime; past timestamps fail

  • Templates and HTML content must include compliant footer/unsubscribe merge tags

  • Mailchimp uses double-underscore notation for nested params (e.g., settings__subject__line)
  • 2. Manage Audiences and Subscribers

    When to use: User wants to view audiences, list subscribers, or check subscriber details.

    Tool sequence:

  • MAILCHIMP_GET_LISTS_INFO - List all audiences with member counts [Required]

  • MAILCHIMP_GET_LIST_INFO - Get details for a specific audience [Optional]

  • MAILCHIMP_LIST_MEMBERS_INFO - List members with status filter and pagination [Required]

  • MAILCHIMP_SEARCH_MEMBERS - Search by email or name across lists [Optional]

  • MAILCHIMP_GET_MEMBER_INFO - Get detailed profile for a specific subscriber [Optional]

  • MAILCHIMP_LIST_SEGMENTS - List segments within an audience [Optional]
  • Key parameters for MAILCHIMP_LIST_MEMBERS_INFO:

  • list_id: Audience ID (required)

  • status: "subscribed", "unsubscribed", "cleaned", "pending", "transactional", "archived"

  • count: Records per page (default 10, max 1000)

  • offset: Pagination offset (default 0)

  • sort_field: "timestamp_opt", "timestamp_signup", or "last_changed"

  • fields: Comma-separated list to limit response size
  • Pitfalls:

  • stats.avg_open_rate and stats.avg_click_rate are 0-1 fractions, NOT 0-100 percentages

  • Always use status="subscribed" to filter active subscribers; omitting returns all statuses

  • Must paginate using count and offset until collected members match total_items

  • Large list responses may be truncated; data is under response.data.members
  • 3. Add and Update Subscribers

    When to use: User wants to add new subscribers, update existing ones, or bulk-manage list membership.

    Tool sequence:

  • MAILCHIMP_GET_LIST_INFO - Validate target audience exists [Prerequisite]

  • MAILCHIMP_SEARCH_MEMBERS - Check if contact already exists [Optional]

  • MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER - Upsert subscriber (create or update) [Required]

  • MAILCHIMP_ADD_MEMBER_TO_LIST - Add new subscriber (create only) [Optional]

  • MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS - Bulk manage segment membership [Optional]
  • Key parameters for MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER:

  • list_id: Audience ID (required)

  • subscriber_hash: MD5 hash of lowercase email (required)

  • email_address: Subscriber email (required)

  • status_if_new: Status for new subscribers: "subscribed", "pending", etc. (required)

  • status: Status for existing subscribers

  • merge_fields: Object with merge tag keys (e.g., {"FNAME": "John", "LNAME": "Doe"})

  • tags: Array of tag strings
  • Key parameters for MAILCHIMP_ADD_MEMBER_TO_LIST:

  • list_id: Audience ID (required)

  • email_address: Subscriber email (required)

  • status: "subscribed", "pending", "unsubscribed", "cleaned", "transactional" (required)
  • Pitfalls:

  • subscriber_hash must be MD5 of the lowercase email; incorrect casing causes 404s or duplicates

  • Use MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER (upsert) instead of MAILCHIMP_ADD_MEMBER_TO_LIST to avoid duplicate errors

  • status_if_new determines status only for new contacts; existing contacts use status

  • Use skip_merge_validation: true to bypass required merge field validation

  • MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS manages static segment membership, not list membership
  • 4. View Campaign Reports and Analytics

    When to use: User wants to review campaign performance, open rates, click rates, or subscriber engagement.

    Tool sequence:

  • MAILCHIMP_LIST_CAMPAIGNS - List sent campaigns with report summaries [Required]

  • MAILCHIMP_SEARCH_CAMPAIGNS - Find campaigns by name, subject, or content [Optional]

  • MAILCHIMP_GET_CAMPAIGN_REPORT - Get detailed performance report for a campaign [Required]

  • MAILCHIMP_LIST_CAMPAIGN_REPORTS - Bulk fetch reports across multiple campaigns [Optional]

  • MAILCHIMP_LIST_CAMPAIGN_DETAILS - Get link-level click statistics [Optional]

  • MAILCHIMP_GET_CAMPAIGN_LINK_DETAILS - Drill into specific link click data [Optional]

  • MAILCHIMP_LIST_CLICKED_LINK_SUBSCRIBERS - See who clicked a specific link [Optional]

  • MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY - Get per-subscriber campaign activity [Optional]

  • MAILCHIMP_GET_CAMPAIGN_CONTENT - Retrieve campaign HTML content [Optional]
  • Key parameters for MAILCHIMP_LIST_CAMPAIGNS:

  • status: "save", "paused", "schedule", "sending", "sent"

  • count / offset: Pagination (default 10, max 1000)

  • since_send_time / before_send_time: ISO 8601 date range filter

  • sort_field: "create_time" or "send_time"

  • fields: Limit response fields for performance
  • Key parameters for MAILCHIMP_GET_CAMPAIGN_REPORT:

  • campaign_id: Campaign ID (required)

  • Returns: opens, clicks, bounces, unsubscribes, timeseries, industry_stats
  • Pitfalls:

  • MAILCHIMP_LIST_CAMPAIGNS only returns high-level report_summary; use MAILCHIMP_GET_CAMPAIGN_REPORT for detailed metrics

  • Draft/unsent campaigns lack meaningful report data

  • When using fields parameter on LIST_CAMPAIGNS, explicitly request send_time and report_summary subfields

  • Pagination defaults are low (10 records); iterate with count and offset until total_items is covered

  • send_time is ISO 8601 with timezone; parse carefully
  • Common Patterns

    ID Resolution


    Always resolve names to IDs before operations:
  • Audience name -> list_id: MAILCHIMP_GET_LISTS_INFO and match by name

  • Subscriber email -> subscriber_hash: Compute MD5 of lowercase email in code

  • Campaign name -> campaign_id: MAILCHIMP_SEARCH_CAMPAIGNS with query

  • Segment name -> segment_id: MAILCHIMP_LIST_SEGMENTS with list_id
  • Pagination


    Mailchimp uses offset-based pagination:
  • Use count (page size, max 1000) and offset (skip N records)

  • Continue until collected records match total_items from the response

  • Default count is 10; always set explicitly for bulk operations

  • Search endpoints max at 10 pages (300 results for 30/page)
  • Subscriber Hash


    Many endpoints require subscriber_hash (MD5 of lowercase email):
    import hashlib
    subscriber_hash = hashlib.md5(email.lower().encode()).hexdigest()

    Known Pitfalls

    ID Formats


  • list_id (audience ID) is a short alphanumeric string (e.g., "abc123def4")

  • campaign_id is an alphanumeric string

  • subscriber_hash is an MD5 hex string (32 characters)

  • Segment IDs are integers
  • Rate Limits


  • Mailchimp enforces API rate limits; use batching for bulk subscriber operations

  • High-volume use of GET_MEMBER_INFO and ADD_OR_UPDATE_LIST_MEMBER can trigger throttling

  • Use MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS for bulk segment operations
  • Parameter Quirks


  • Nested parameters use double-underscore notation: settings__subject__line, recipients__list__id

  • avg_open_rate and avg_click_rate are 0-1 fractions, not percentages

  • status_if_new only applies to new contacts in upsert operations

  • subscriber_hash must be MD5 of lowercase email; wrong casing creates phantom records

  • Campaign type is required for creation; most common is "regular"

  • MAILCHIMP_SEND_CAMPAIGN returns HTTP 204 on success (no body)
  • Content and Compliance


  • Campaign HTML must include unsubscribe link and physical address (merge tags)

  • Content must be set via MAILCHIMP_SET_CAMPAIGN_CONTENT before sending

  • Test emails require campaign to have content already set
  • Quick Reference

    TaskTool SlugKey Params
    List audiencesMAILCHIMP_GET_LISTS_INFOcount, offset
    Get audience detailsMAILCHIMP_GET_LIST_INFOlist_id
    Create campaignMAILCHIMP_ADD_CAMPAIGNtype, recipients__list__id, settings__subject__line
    Set campaign contentMAILCHIMP_SET_CAMPAIGN_CONTENTcampaign_id, html
    Send test emailMAILCHIMP_SEND_TEST_EMAILcampaign_id, test_emails
    Send campaignMAILCHIMP_SEND_CAMPAIGNcampaign_id
    Schedule campaignMAILCHIMP_SCHEDULE_CAMPAIGNcampaign_id, schedule_time
    Get campaign infoMAILCHIMP_GET_CAMPAIGN_INFOcampaign_id
    Search campaignsMAILCHIMP_SEARCH_CAMPAIGNSquery
    List campaignsMAILCHIMP_LIST_CAMPAIGNSstatus, count, offset
    Replicate campaignMAILCHIMP_REPLICATE_CAMPAIGNcampaign_id
    List subscribersMAILCHIMP_LIST_MEMBERS_INFOlist_id, status, count, offset
    Search membersMAILCHIMP_SEARCH_MEMBERSquery, list_id
    Get member infoMAILCHIMP_GET_MEMBER_INFOlist_id, subscriber_hash
    Add subscriberMAILCHIMP_ADD_MEMBER_TO_LISTlist_id, email_address, status
    Upsert subscriberMAILCHIMP_ADD_OR_UPDATE_LIST_MEMBERlist_id, subscriber_hash, email_address, status_if_new
    Batch membersMAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERSlist_id, segment_id
    List segmentsMAILCHIMP_LIST_SEGMENTSlist_id
    Campaign reportMAILCHIMP_GET_CAMPAIGN_REPORTcampaign_id
    All reportsMAILCHIMP_LIST_CAMPAIGN_REPORTScount, offset
    Link click detailsMAILCHIMP_LIST_CAMPAIGN_DETAILScampaign_id, count
    Subscriber activityMAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITYcampaign_id, subscriber_hash
    Member recent activityMAILCHIMP_VIEW_RECENT_ACTIVITYlist_id, subscriber_hash
    Campaign contentMAILCHIMP_GET_CAMPAIGN_CONTENTcampaign_id