Mailchimp
Overview
Section titled “Overview”Mailchimp is an email marketing and automation platform providing campaign templates, audience segmentation, and performance analytics to drive engagement and conversions. With the Mailchimp integration in SquadOS, your agents can create and send campaigns, manage contacts, add or remove tags, build segments, and much more — all programmatically and without manual intervention.
- Official website: https://mailchimp.com/
- Composio documentation: docs.composio.dev/toolkits/mailchimp
Authentication
Section titled “Authentication”This tool uses OAuth 2.0 (OAUTH2) to connect.
You will need the following fields:
| Field | Required | Description |
|---|---|---|
access_token | Yes | OAuth 2.0 access token generated after authorizing SquadOS to access your Mailchimp account. |
How to get credentials
Section titled “How to get credentials”Mailchimp authentication via Composio uses a managed OAuth 2.0 flow — you don’t need to create credentials manually. When you click Connect, you are redirected to the Mailchimp authorization page where you log in and grant access. The token is automatically generated and stored by Composio.
How to connect in SquadOS
Section titled “How to connect in SquadOS”- Go to Tools in the side menu (
/admin/tools). - Open the Available tab and search for
Mailchimp. - Click the card to open the details modal and hit Connect.
- You’re taken to the secure connection page hosted by Composio, where you authorize access to your Mailchimp account via OAuth.
- Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)
Available actions
Section titled “Available actions”Add campaign
Section titled “Add campaign”MAILCHIMP_ADD_CAMPAIGN
Create a new Mailchimp campaign. Supports regular, plaintext, RSS, and variate (multivariate A/B) types.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
type | string ("regular" | "plaintext" | "absplit" | "rss" | "variate") | Yes | The campaign type. A/B Split campaigns have been deprecated; use variate instead. |
settings__subject__line | string | No | The subject line for the campaign. |
settings__title | string | No | The internal title of the campaign. |
settings__from__name | string | No | The sender name displayed in the “From” field. Not an email address. |
settings__reply__to | string | No | The reply-to email address. Required for sending. |
recipients__list__id | string | No | The unique ID of the target audience/list. |
settings__template__id | integer | No | The ID of the template to use. |
content_type | string ("template" | "multichannel") | No | How the campaign’s content is put together. Defaults to template. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Add list
Section titled “Add list”MAILCHIMP_ADD_LIST
Create a new audience (list) in your Mailchimp account. Free accounts are limited to 1 audience; paid plans allow multiple audiences.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the audience. Must be unique within the account. |
contact__company | string | Yes | The company name for the list contact. |
contact__address1 | string | Yes | The street address for the list contact. |
contact__city | string | Yes | The city for the list contact. |
contact__country | string | Yes | A two-character ISO 3166 country code (e.g., 'US', 'BR'). |
permission_reminder | string | Yes | The permission reminder explaining why contacts are receiving emails from this list. |
campaign__defaults__from__name | string | Yes | The default “From” name for campaigns sent to this list. |
campaign__defaults__from__email | string | Yes | The default “From” email address for campaigns sent to this list. |
campaign__defaults__subject | string | Yes | The default subject line for campaigns sent to this list. |
campaign__defaults__language | string | Yes | The default language for this list’s forms (e.g., 'en'). |
double_optin | boolean | No | Require email confirmation (double opt-in). Recommended for GDPR compliance. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Add or update list member
Section titled “Add or update list member”MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER
Add or update a list member (subscriber) in a Mailchimp audience. This is an upsert operation: if the subscriber exists, they will be updated; if not, they will be created. The subscriber_hash parameter should be the MD5 hash of the lowercase email address.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
email_address | string | Yes | Email address for a subscriber. Required if the email is not already on the list. |
subscriber_hash | string | Yes | The MD5 hash of the lowercase version of the list member’s email address, the email address itself, or the contact_id. |
status_if_new | string ("subscribed" | "unsubscribed" | "cleaned" | "pending" | "transactional") | Yes | Subscriber’s status when creating a new member. |
status | string ("subscribed" | "unsubscribed" | "cleaned" | "pending" | "transactional") | No | Subscriber’s current status when updating. |
merge_fields | object | No | A dictionary of merge fields (e.g., FNAME, LNAME). |
skip_merge_validation | boolean | No | If true, accepts data without required merge field values. Defaults to false. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Batch subscribe or unsubscribe
Section titled “Batch subscribe or unsubscribe”MAILCHIMP_BATCH_SUBSCRIBE_OR_UNSUBSCRIBE
Batch subscribe or unsubscribe list members. Supports up to 500 members per API call.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
members | array | Yes | An array of member objects. Each must contain email_address (string) and status (one of: subscribed, unsubscribed, cleaned, pending, transactional). Up to 500 members per call. |
update_existing | boolean | No | Whether to update existing members. Defaults to false. |
sync_tags | boolean | No | Whether to replace all existing tags with the tags in the request. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get campaign info
Section titled “Get campaign info”MAILCHIMP_GET_CAMPAIGN_INFO
Get information about a specific campaign.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique id for the campaign. |
fields | array | No | A list of fields to return. Reference parameters of sub-objects with dot notation. |
exclude_fields | array | No | A list of fields to exclude from the response. Cannot be used together with fields. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get list info
Section titled “Get list info”MAILCHIMP_GET_LIST_INFO
Get information about a specific list in your Mailchimp account. Results include list members who have signed up but haven’t confirmed their subscription yet and unsubscribed or cleaned.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
fields | array | No | A comma-separated list of fields to return. |
exclude_fields | array | No | A comma-separated list of fields to exclude. |
include_total_contacts | boolean | No | Return the total_contacts field with an approximate count of all contacts in any state. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get lists info
Section titled “Get lists info”MAILCHIMP_GET_LISTS_INFO
Get information about all lists in the account.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
count | integer | No | The number of records to return. Default: 10. Maximum: 1000. |
offset | integer | No | Number of records to skip for pagination. Default: 0. |
email | string | No | Restrict results to lists that include a specific subscriber’s email address. |
sort_field | string ("date_created") | No | Returns lists sorted by the specified field. |
sort_dir | string ("ASC" | "DESC") | No | Determines the order direction for sorted results. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get member info
Section titled “Get member info”MAILCHIMP_GET_MEMBER_INFO
Get information about a specific list member, including a currently subscribed, unsubscribed, or bounced member.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
subscriber_hash | string | Yes | The MD5 hash of the lowercase version of the list member’s email address, the email address directly, or the contact_id. |
fields | string | No | Fields to return. Use field names for top-level fields or dot notation for nested fields. |
exclude_fields | string | No | Fields to exclude. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List members info
Section titled “List members info”MAILCHIMP_LIST_MEMBERS_INFO
Get information about members in a specific Mailchimp list, with support for status, date, and interest filters.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
count | integer | No | The number of records to return. Default: 10. Maximum: 1000. |
offset | integer | No | Number of records to skip. Default: 0. |
status | string ("subscribed" | "unsubscribed" | "cleaned" | "pending" | "transactional" | "archived") | No | Filter members by subscription status. |
sort_field | string ("timestamp_opt" | "timestamp_signup" | "last_changed") | No | Returns files sorted by the specified field. |
sort_dir | string ("ASC" | "DESC") | No | Determines the order direction for sorted results. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List campaigns
Section titled “List campaigns”MAILCHIMP_LIST_CAMPAIGNS
Get all campaigns in an account, with support for filters by type, status, list, and time period.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
count | integer | No | The number of records to return. Default: 10. Maximum: 1000. |
offset | integer | No | Number of records to skip. Default: 0. |
type | string ("regular" | "plaintext" | "absplit" | "rss" | "variate") | No | The campaign type. |
status | string ("save" | "paused" | "schedule" | "sending" | "sent") | No | The status of the campaign. |
list_id | string | No | Filter campaigns for the specified list. |
sort_field | string ("create_time" | "send_time") | No | Returns files sorted by the specified field. |
sort_dir | string ("ASC" | "DESC") | No | Determines the order direction for sorted results. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List segments
Section titled “List segments”MAILCHIMP_LIST_SEGMENTS
Get information about all available segments for a specific list.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
count | integer | No | The number of records to return. Default: 10. Maximum: 1000. |
offset | integer | No | Number of records to skip. Default: 0. |
type | string | No | Limit results based on segment type. |
since_created_at | string | No | Restrict results to segments created after the set time (ISO 8601). |
before_created_at | string | No | Restrict results to segments created before the set time (ISO 8601). |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Add segment
Section titled “Add segment”MAILCHIMP_ADD_SEGMENT
Create a new segment in a specific Mailchimp list/audience. Segments can be static (based on a list of specific email addresses) or saved (based on matching conditions). The static_segment and options fields are mutually exclusive.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the segment. Must be unique within the list. |
list_id | string | Yes | The unique ID for the list where the segment will be created. |
static_segment | array | No | An array of email addresses of existing list members for a static segment. Pass [] to create an empty static segment. |
options__match | string ("any" | "all") | No | Match type for dynamic segment conditions: any (OR) or all (AND). Required when using options__conditions. |
options__conditions | array | No | Array of condition objects for dynamic segments (e.g., by email, merge field, etc.). |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Set campaign content
Section titled “Set campaign content”MAILCHIMP_SET_CAMPAIGN_CONTENT
Set the content for a campaign. Accepts raw HTML, plain text, a template ID, or an archive file.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique id for the campaign. |
html | string | No | The raw HTML for the campaign. |
plain_text | string | No | The plain-text portion of the campaign. If left unspecified, it is generated automatically. |
template__id | integer | No | The id of the template to use. |
url | string | No | When importing a campaign, the URL where the HTML lives. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Schedule campaign
Section titled “Schedule campaign”MAILCHIMP_SCHEDULE_CAMPAIGN
Schedule a campaign for delivery at a specific date and time. The campaign must be in save (draft) status and pass all send checklist items. The schedule time must be in the future and on the quarter-hour (:00, :15, :30, :45). Requires a paid Mailchimp plan.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique ID for the campaign to schedule. |
schedule_time | string | Yes | The UTC date and time to schedule the campaign in ISO 8601 format (e.g., '2026-01-26T12:00:00+00:00'). Must be at least 15 minutes in the future. |
timewarp | boolean | No | Use Timewarp to send based on each recipient’s local time zone. Cannot be used with Batch Delivery. |
batch__delivery__batch__count | integer | No | The number of batches for Batch Delivery. |
batch__delivery__batch__delay | integer | No | The delay in minutes between batches for Batch Delivery. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Send campaign
Section titled “Send campaign”MAILCHIMP_SEND_CAMPAIGN
Send a Mailchimp campaign immediately. The campaign must be in save (draft) status, have a valid audience, subject line, from name, verified from email, and content set. Returns HTTP 204 on success.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique id for the campaign to send. Must be in save status and pass all send-checklist requirements. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Send test email
Section titled “Send test email”MAILCHIMP_SEND_TEST_EMAIL
Send a test email for a campaign to preview it before sending to your audience. The campaign must have content set. Free accounts can send to up to 6 addresses; paid accounts up to 20.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique ID of the campaign to send a test email for. |
test_emails | array | Yes | List of email addresses to receive the test email (e.g., ['user@example.com']). |
send_type | string ("html" | "plaintext") | No | The format of the test email. Defaults to html. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update list member
Section titled “Update list member”MAILCHIMP_UPDATE_LIST_MEMBER
Update information for a specific list member, including status, merge fields, tags, and language preferences.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
subscriber_hash | string | Yes | The MD5 hash of the lowercase version of the list member’s email address, the email address directly, or the contact_id. |
status | string ("subscribed" | "unsubscribed" | "cleaned" | "pending") | No | Subscriber’s current status. |
merge_fields | object | No | A dictionary of merge fields with updated values. |
language | string | No | The subscriber’s language code (e.g., 'en', 'es'). |
vip | boolean | No | VIP status for the subscriber. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Add or remove member tags
Section titled “Add or remove member tags”MAILCHIMP_ADD_OR_REMOVE_MEMBER_TAGS
Add or remove tags from a list member. Use status: 'active' to add a tag or status: 'inactive' to remove it. If a tag doesn’t exist and status is active, a new tag will be created. Returns HTTP 204 on success.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
subscriber_hash | string | Yes | The MD5 hash of the lowercase version of the list member’s email address, the email address directly, or the contact_id. |
tags | array | Yes | A list of tag objects, each with name (string) and status ('active' or 'inactive'). |
is_syncing | boolean | No | When true, automations based on the tags in the request will not fire. Useful for bulk imports. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Archive list member
Section titled “Archive list member”MAILCHIMP_ARCHIVE_LIST_MEMBER
Archive (soft delete) a list member from a Mailchimp audience. Archived members are removed from the active list but their data is preserved and they can be re-subscribed later. For permanent deletion, use the delete-permanent endpoint instead. Returns HTTP 204 on success.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
list_id | string | Yes | The unique ID for the list. |
subscriber_hash | string | Yes | The MD5 hash of the lowercase version of the list member’s email address, the email address directly, or the contact_id. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Search members
Section titled “Search members”MAILCHIMP_SEARCH_MEMBERS
Search for list members. This search can be restricted to a specific list, or can be used to search across all lists in an account.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The search query used to filter results. Should be a valid email, or a string representing a contact’s first or last name. |
list_id | string | No | The unique id for the list. If omitted, search will be performed across all lists in the account. |
fields | array | No | A comma-separated list of fields to return. |
exclude_fields | array | No | A comma-separated list of fields to exclude. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Search campaigns
Section titled “Search campaigns”MAILCHIMP_SEARCH_CAMPAIGNS
Search all campaigns for the specified query terms. Searches across campaign titles, subject lines, and content.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The search query used to filter campaigns. Searches across campaign titles, subject lines, and other campaign content. |
fields | array | No | A list of fields to return. Use dot notation to reference nested fields. |
exclude_fields | array | No | A list of fields to exclude from the response. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Replicate campaign
Section titled “Replicate campaign”MAILCHIMP_REPLICATE_CAMPAIGN
Replicate a campaign in saved or sent status, creating a draft copy for reuse.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | The unique id for the campaign to replicate. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Add template
Section titled “Add template”MAILCHIMP_ADD_TEMPLATE
Create a new email template in the Mailchimp account. Only Classic (HTML) templates are supported through this API endpoint. The template HTML can include Mailchimp merge tags (e.g., *|FNAME|*) for personalization.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the template. Must be unique within the account. |
html | string | Yes | The raw HTML content for the template. Supports Mailchimp Template Language for dynamic content. Must be valid HTML. |
folder_id | string | No | The ID of the folder to store the template in. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List templates
Section titled “List templates”MAILCHIMP_LIST_TEMPLATES
Get a list of an account’s available templates, with support for filters by type, category, folder, and creation date.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
count | integer | No | The number of records to return. Default: 10. Maximum: 1000. |
offset | integer | No | Number of records to skip. Default: 0. |
type | string | No | Limit results based on template type. |
category | string | No | Limit results based on category. |
folder_id | string | No | The unique folder id. |
content_type | string ("html" | "template" | "multichannel") | No | Limit results based on how the template’s content is put together. |
sort_field | string ("date_created" | "date_edited" | "name") | No | Returns user templates sorted by the specified field. |
sort_dir | string ("ASC" | "DESC") | No | Determines the order direction for sorted results. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
MAILCHIMP_PING
A health check for the API that won’t return any account-specific information. Useful to confirm the connection is working.
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |