Mailchimp Automation via Rube MCP
Selective Reading Rule
Start with:
references/senior-master-standard.md
references/usage-routing.md
references/quality-checklist.md
Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.
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
| Task |
Tool Slug |
Key Params |
| List audiences |
MAILCHIMP_GET_LISTS_INFO |
count, offset |
| Get audience details |
MAILCHIMP_GET_LIST_INFO |
list_id |
| Create campaign |
MAILCHIMP_ADD_CAMPAIGN |
type, recipients__list__id, settings__subject__line |
| Set campaign content |
MAILCHIMP_SET_CAMPAIGN_CONTENT |
campaign_id, html |
| Send test email |
MAILCHIMP_SEND_TEST_EMAIL |
campaign_id, test_emails |
| Send campaign |
MAILCHIMP_SEND_CAMPAIGN |
campaign_id |
| Schedule campaign |
MAILCHIMP_SCHEDULE_CAMPAIGN |
campaign_id, schedule_time |
| Get campaign info |
MAILCHIMP_GET_CAMPAIGN_INFO |
campaign_id |
| Search campaigns |
MAILCHIMP_SEARCH_CAMPAIGNS |
query |
| List campaigns |
MAILCHIMP_LIST_CAMPAIGNS |
status, count, offset |
| Replicate campaign |
MAILCHIMP_REPLICATE_CAMPAIGN |
campaign_id |
| List subscribers |
MAILCHIMP_LIST_MEMBERS_INFO |
list_id, status, count, offset |
| Search members |
MAILCHIMP_SEARCH_MEMBERS |
query, list_id |
| Get member info |
MAILCHIMP_GET_MEMBER_INFO |
list_id, subscriber_hash |
| Add subscriber |
MAILCHIMP_ADD_MEMBER_TO_LIST |
list_id, email_address, status |
| Upsert subscriber |
MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER |
list_id, subscriber_hash, email_address, status_if_new |
| Batch members |
MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS |
list_id, segment_id |
| List segments |
MAILCHIMP_LIST_SEGMENTS |
list_id |
| Campaign report |
MAILCHIMP_GET_CAMPAIGN_REPORT |
campaign_id |
| All reports |
MAILCHIMP_LIST_CAMPAIGN_REPORTS |
count, offset |
| Link click details |
MAILCHIMP_LIST_CAMPAIGN_DETAILS |
campaign_id, count |
| Subscriber activity |
MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY |
campaign_id, subscriber_hash |
| Member recent activity |
MAILCHIMP_VIEW_RECENT_ACTIVITY |
list_id, subscriber_hash |
| Campaign content |
MAILCHIMP_GET_CAMPAIGN_CONTENT |
campaign_id |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: mailchimp-automation3description: ALWAYS use this when the request matches Mailchimp Automation: Automate Mailchimp email marketing including campaigns, audiences, subscribers, segments, and analytics via Rube MCP (Composio).4---56# Mailchimp Automation via Rube MCP78## Selective Reading Rule910Start with:1112- `references/senior-master-standard.md`13- `references/usage-routing.md`14- `references/quality-checklist.md`1516Then load only the inherited docs, scripts, assets, or examples that match the user's actual task.1718Automate Mailchimp email marketing workflows including campaign creation and sending, audience/list management, subscriber operations, segmentation, and performance analytics through Composio's Mailchimp toolkit.1920## Prerequisites2122- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)23- Active Mailchimp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `mailchimp`24- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas2526## Setup2728**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.2930311. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds322. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `mailchimp`333. If connection is not ACTIVE, follow the returned auth link to complete Mailchimp OAuth344. Confirm connection status shows ACTIVE before running any workflows3536## Core Workflows3738### 1. Create and Send Email Campaigns3940**When to use**: User wants to create, configure, test, and send an email campaign.4142**Tool sequence**:431. `MAILCHIMP_GET_LISTS_INFO` - List available audiences and get list_id [Prerequisite]442. `MAILCHIMP_ADD_CAMPAIGN` - Create a new campaign with type, audience, subject, from name [Required]453. `MAILCHIMP_SET_CAMPAIGN_CONTENT` - Set HTML content for the campaign [Required]464. `MAILCHIMP_SEND_TEST_EMAIL` - Send preview to reviewers before live send [Optional]475. `MAILCHIMP_SEND_CAMPAIGN` - Send the campaign immediately [Required]486. `MAILCHIMP_SCHEDULE_CAMPAIGN` - Schedule for future delivery instead of immediate send [Optional]4950**Key parameters for MAILCHIMP_ADD_CAMPAIGN**:51- `type`: "regular", "plaintext", "rss", or "variate" (required)52- `recipients__list__id`: Audience/list ID for recipients53- `settings__subject__line`: Email subject line54- `settings__from__name`: Sender display name55- `settings__reply__to`: Reply-to email address (required for sending)56- `settings__title`: Internal campaign title57- `settings__preview__text`: Preview text shown in inbox5859**Key parameters for MAILCHIMP_SET_CAMPAIGN_CONTENT**:60- `campaign_id`: Campaign ID from creation step (required)61- `html`: Raw HTML content for the email62- `plain_text`: Plain-text version (auto-generated if omitted)63- `template__id`: Use a pre-built template instead of raw HTML6465**Pitfalls**:66- `MAILCHIMP_SEND_CAMPAIGN` is irreversible; always send a test email first and get explicit user approval67- Campaign must be in "save" (draft) status with valid audience, subject, from name, verified email, and content before sending68- `MAILCHIMP_SCHEDULE_CAMPAIGN` requires a valid future datetime; past timestamps fail69- Templates and HTML content must include compliant footer/unsubscribe merge tags70- Mailchimp uses double-underscore notation for nested params (e.g., `settings__subject__line`)7172### 2. Manage Audiences and Subscribers7374**When to use**: User wants to view audiences, list subscribers, or check subscriber details.7576**Tool sequence**:771. `MAILCHIMP_GET_LISTS_INFO` - List all audiences with member counts [Required]782. `MAILCHIMP_GET_LIST_INFO` - Get details for a specific audience [Optional]793. `MAILCHIMP_LIST_MEMBERS_INFO` - List members with status filter and pagination [Required]804. `MAILCHIMP_SEARCH_MEMBERS` - Search by email or name across lists [Optional]815. `MAILCHIMP_GET_MEMBER_INFO` - Get detailed profile for a specific subscriber [Optional]826. `MAILCHIMP_LIST_SEGMENTS` - List segments within an audience [Optional]8384**Key parameters for MAILCHIMP_LIST_MEMBERS_INFO**:85- `list_id`: Audience ID (required)86- `status`: "subscribed", "unsubscribed", "cleaned", "pending", "transactional", "archived"87- `count`: Records per page (default 10, max 1000)88- `offset`: Pagination offset (default 0)89- `sort_field`: "timestamp_opt", "timestamp_signup", or "last_changed"90- `fields`: Comma-separated list to limit response size9192**Pitfalls**:93- `stats.avg_open_rate` and `stats.avg_click_rate` are 0-1 fractions, NOT 0-100 percentages94- Always use `status="subscribed"` to filter active subscribers; omitting returns all statuses95- Must paginate using `count` and `offset` until collected members match `total_items`96- Large list responses may be truncated; data is under `response.data.members`9798### 3. Add and Update Subscribers99100**When to use**: User wants to add new subscribers, update existing ones, or bulk-manage list membership.101102**Tool sequence**:1031. `MAILCHIMP_GET_LIST_INFO` - Validate target audience exists [Prerequisite]1042. `MAILCHIMP_SEARCH_MEMBERS` - Check if contact already exists [Optional]1053. `MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER` - Upsert subscriber (create or update) [Required]1064. `MAILCHIMP_ADD_MEMBER_TO_LIST` - Add new subscriber (create only) [Optional]1075. `MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS` - Bulk manage segment membership [Optional]108109**Key parameters for MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER**:110- `list_id`: Audience ID (required)111- `subscriber_hash`: MD5 hash of lowercase email (required)112- `email_address`: Subscriber email (required)113- `status_if_new`: Status for new subscribers: "subscribed", "pending", etc. (required)114- `status`: Status for existing subscribers115- `merge_fields`: Object with merge tag keys (e.g., `{"FNAME": "John", "LNAME": "Doe"}`)116- `tags`: Array of tag strings117118**Key parameters for MAILCHIMP_ADD_MEMBER_TO_LIST**:119- `list_id`: Audience ID (required)120- `email_address`: Subscriber email (required)121- `status`: "subscribed", "pending", "unsubscribed", "cleaned", "transactional" (required)122123**Pitfalls**:124- `subscriber_hash` must be MD5 of the **lowercase** email; incorrect casing causes 404s or duplicates125- Use `MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER` (upsert) instead of `MAILCHIMP_ADD_MEMBER_TO_LIST` to avoid duplicate errors126- `status_if_new` determines status only for new contacts; existing contacts use `status`127- Use `skip_merge_validation: true` to bypass required merge field validation128- `MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS` manages static segment membership, not list membership129130### 4. View Campaign Reports and Analytics131132**When to use**: User wants to review campaign performance, open rates, click rates, or subscriber engagement.133134**Tool sequence**:1351. `MAILCHIMP_LIST_CAMPAIGNS` - List sent campaigns with report summaries [Required]1362. `MAILCHIMP_SEARCH_CAMPAIGNS` - Find campaigns by name, subject, or content [Optional]1373. `MAILCHIMP_GET_CAMPAIGN_REPORT` - Get detailed performance report for a campaign [Required]1384. `MAILCHIMP_LIST_CAMPAIGN_REPORTS` - Bulk fetch reports across multiple campaigns [Optional]1395. `MAILCHIMP_LIST_CAMPAIGN_DETAILS` - Get link-level click statistics [Optional]1406. `MAILCHIMP_GET_CAMPAIGN_LINK_DETAILS` - Drill into specific link click data [Optional]1417. `MAILCHIMP_LIST_CLICKED_LINK_SUBSCRIBERS` - See who clicked a specific link [Optional]1428. `MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY` - Get per-subscriber campaign activity [Optional]1439. `MAILCHIMP_GET_CAMPAIGN_CONTENT` - Retrieve campaign HTML content [Optional]144145**Key parameters for MAILCHIMP_LIST_CAMPAIGNS**:146- `status`: "save", "paused", "schedule", "sending", "sent"147- `count` / `offset`: Pagination (default 10, max 1000)148- `since_send_time` / `before_send_time`: ISO 8601 date range filter149- `sort_field`: "create_time" or "send_time"150- `fields`: Limit response fields for performance151152**Key parameters for MAILCHIMP_GET_CAMPAIGN_REPORT**:153- `campaign_id`: Campaign ID (required)154- Returns: opens, clicks, bounces, unsubscribes, timeseries, industry_stats155156**Pitfalls**:157- `MAILCHIMP_LIST_CAMPAIGNS` only returns high-level `report_summary`; use `MAILCHIMP_GET_CAMPAIGN_REPORT` for detailed metrics158- Draft/unsent campaigns lack meaningful report data159- When using `fields` parameter on LIST_CAMPAIGNS, explicitly request `send_time` and `report_summary` subfields160- Pagination defaults are low (10 records); iterate with `count` and `offset` until `total_items` is covered161- `send_time` is ISO 8601 with timezone; parse carefully162163## Common Patterns164165### ID Resolution166Always resolve names to IDs before operations:167- **Audience name -> list_id**: `MAILCHIMP_GET_LISTS_INFO` and match by name168- **Subscriber email -> subscriber_hash**: Compute MD5 of lowercase email in code169- **Campaign name -> campaign_id**: `MAILCHIMP_SEARCH_CAMPAIGNS` with query170- **Segment name -> segment_id**: `MAILCHIMP_LIST_SEGMENTS` with list_id171172### Pagination173Mailchimp uses offset-based pagination:174- Use `count` (page size, max 1000) and `offset` (skip N records)175- Continue until collected records match `total_items` from the response176- Default `count` is 10; always set explicitly for bulk operations177- Search endpoints max at 10 pages (300 results for 30/page)178179### Subscriber Hash180Many endpoints require `subscriber_hash` (MD5 of lowercase email):181```182import hashlib183subscriber_hash = hashlib.md5(email.lower().encode()).hexdigest()184```185186## Known Pitfalls187188### ID Formats189- `list_id` (audience ID) is a short alphanumeric string (e.g., "abc123def4")190- `campaign_id` is an alphanumeric string191- `subscriber_hash` is an MD5 hex string (32 characters)192- Segment IDs are integers193194### Rate Limits195- Mailchimp enforces API rate limits; use batching for bulk subscriber operations196- High-volume use of GET_MEMBER_INFO and ADD_OR_UPDATE_LIST_MEMBER can trigger throttling197- Use `MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS` for bulk segment operations198199### Parameter Quirks200- Nested parameters use double-underscore notation: `settings__subject__line`, `recipients__list__id`201- `avg_open_rate` and `avg_click_rate` are 0-1 fractions, not percentages202- `status_if_new` only applies to new contacts in upsert operations203- `subscriber_hash` must be MD5 of lowercase email; wrong casing creates phantom records204- Campaign `type` is required for creation; most common is "regular"205- `MAILCHIMP_SEND_CAMPAIGN` returns HTTP 204 on success (no body)206207### Content and Compliance208- Campaign HTML must include unsubscribe link and physical address (merge tags)209- Content must be set via `MAILCHIMP_SET_CAMPAIGN_CONTENT` before sending210- Test emails require campaign to have content already set211212## Quick Reference213214| Task | Tool Slug | Key Params |215|------|-----------|------------|216| List audiences | `MAILCHIMP_GET_LISTS_INFO` | `count`, `offset` |217| Get audience details | `MAILCHIMP_GET_LIST_INFO` | `list_id` |218| Create campaign | `MAILCHIMP_ADD_CAMPAIGN` | `type`, `recipients__list__id`, `settings__subject__line` |219| Set campaign content | `MAILCHIMP_SET_CAMPAIGN_CONTENT` | `campaign_id`, `html` |220| Send test email | `MAILCHIMP_SEND_TEST_EMAIL` | `campaign_id`, `test_emails` |221| Send campaign | `MAILCHIMP_SEND_CAMPAIGN` | `campaign_id` |222| Schedule campaign | `MAILCHIMP_SCHEDULE_CAMPAIGN` | `campaign_id`, `schedule_time` |223| Get campaign info | `MAILCHIMP_GET_CAMPAIGN_INFO` | `campaign_id` |224| Search campaigns | `MAILCHIMP_SEARCH_CAMPAIGNS` | `query` |225| List campaigns | `MAILCHIMP_LIST_CAMPAIGNS` | `status`, `count`, `offset` |226| Replicate campaign | `MAILCHIMP_REPLICATE_CAMPAIGN` | `campaign_id` |227| List subscribers | `MAILCHIMP_LIST_MEMBERS_INFO` | `list_id`, `status`, `count`, `offset` |228| Search members | `MAILCHIMP_SEARCH_MEMBERS` | `query`, `list_id` |229| Get member info | `MAILCHIMP_GET_MEMBER_INFO` | `list_id`, `subscriber_hash` |230| Add subscriber | `MAILCHIMP_ADD_MEMBER_TO_LIST` | `list_id`, `email_address`, `status` |231| Upsert subscriber | `MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER` | `list_id`, `subscriber_hash`, `email_address`, `status_if_new` |232| Batch members | `MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS` | `list_id`, `segment_id` |233| List segments | `MAILCHIMP_LIST_SEGMENTS` | `list_id` |234| Campaign report | `MAILCHIMP_GET_CAMPAIGN_REPORT` | `campaign_id` |235| All reports | `MAILCHIMP_LIST_CAMPAIGN_REPORTS` | `count`, `offset` |236| Link click details | `MAILCHIMP_LIST_CAMPAIGN_DETAILS` | `campaign_id`, `count` |237| Subscriber activity | `MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY` | `campaign_id`, `subscriber_hash` |238| Member recent activity | `MAILCHIMP_VIEW_RECENT_ACTIVITY` | `list_id`, `subscriber_hash` |239| Campaign content | `MAILCHIMP_GET_CAMPAIGN_CONTENT` | `campaign_id` |240241## When to Use242This skill is applicable to execute the workflow or actions described in the overview.243244## Limitations245- Use this skill only when the task clearly matches the scope described above.246- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.247- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.