atmon docs

REFERENCE/TOOLKITS/MAILCHIMP.MD

Mailchimp

Email marketing. Manage audiences, members, and tags, build segments, send campaigns, and read how each one performed.

PropertyValue
Slugmailchimp
Definition version0.1.0
Base URLhttps://api.mailchimp.com/3.0
Auth schemesoauth2, api_key
Action tools39
By class14 read, 18 write, 7 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

72 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 39 cases written by hand and 33 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-143/7259.7%
top-868/7294.4%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://login.mailchimp.com/oauth2/authorize
Token URLhttps://login.mailchimp.com/oauth2/token
Refresh tokensno, so the end user reauthorizes when the token expires

api_key

PropertyValue
Placementheader
NameAuthorization
Rendered asBasic {key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

39 action tools. The catalog-wide slug is mailchimp.<tool>, which is what search_tools returns and call_tool takes.

mailchimp.list_audiences

List the mailing list audiences in a Mailchimp account, paginated. Use when the user asks what audiences, lists, or subscriber groups exist in Mailchimp, rather than looking for one specific audience.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists.

Arguments:

ArgumentTypeRequiredNotes
countintegernoPage size, default 10.
dcstringyesMailchimp account datacenter, e.g. "us21".
offsetintegernoNumber of audiences to skip, for pagination.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
listsarray of object
lists[].idstring
lists[].namestring
lists[].permission_reminderstring
lists[].statsobject
lists[].stats.member_countinteger
lists[].stats.unsubscribe_countinteger
total_itemsinteger

Also retrieved by: "what mailing lists do we have set up", "show every subscriber group in the account", "browse all our newsletter lists", "see what audiences exist".

mailchimp.get_audience

Get one Mailchimp audience's full details by list id: name, permission reminder text, default from-name and reply-to, and subscriber stats. Use when the user names a specific audience or mailing list rather than browsing all of them.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists/{{params.list_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
campaign_defaultsobject
campaign_defaults.from_emailstring
campaign_defaults.from_namestring
campaign_defaults.languagestring
campaign_defaults.subjectstring
idstring
namestring
permission_reminderstring
statsobject
stats.click_ratenumber
stats.member_countinteger
stats.open_ratenumber
stats.unsubscribe_countinteger

Also retrieved by: "pull up details on the newsletter list", "show me this subscriber group's info", "check the settings on one mailing list".

mailchimp.create_audience

Create a new mailing list audience in Mailchimp. Use when the user wants to start a new subscriber list or audience, not add a person to an existing one. Requires a name, permission reminder, and default from-name, from-email, subject, and language for campaigns sent to it.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
email_type_optionbooleannoWhether subscribers may choose plain-text over HTML email.
from_emailstringyesDefault "from" email address for campaigns sent to this audience.
from_namestringyesDefault "from" name for campaigns sent to this audience.
languagestringyesDefault subscriber language, e.g. "en".
namestringyesAudience name, e.g. "Newsletter Subscribers".
permission_reminderstringyesText reminding subscribers why they are receiving mail from this audience, shown in every campaign footer.
subject_defaultstringyesDefault campaign subject line for this audience.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring
permission_reminderstring

Also retrieved by: "start a brand new subscriber list", "set up a new newsletter audience", "build a fresh mailing list from scratch", "spin up a new group of subscribers".

mailchimp.update_audience

Update an existing Mailchimp audience's name, permission reminder, or default campaign settings. Use when the user wants to edit an audience rather than create a new one or change a single member.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /lists/{{params.list_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
from_emailstringnoNew default "from" email address for this audience.
from_namestringnoNew default "from" name for campaigns sent to this audience.
list_idstringyesMailchimp audience (list) id.
namestringnoNew audience name.
permission_reminderstringnoNew permission reminder text.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring
permission_reminderstring

Also retrieved by: "fix the reminder text on this mailing list", "change the default sender for this newsletter", "edit the settings on a subscriber group".

mailchimp.delete_audience

Permanently delete a Mailchimp audience and every member, tag, and segment inside it. Use when the user wants to remove, purge, or erase an entire mailing list, not unsubscribe one person. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /lists/{{params.list_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "wipe out this entire mailing list", "get rid of a subscriber group for good", "erase this newsletter list completely", "scrap this whole audience".

mailchimp.add_list_member

Add a new subscriber to a Mailchimp audience, or update one that already exists there. Use when the user wants to subscribe, sign up, or add someone's email to a mailing list. Requires the audience and an email address; status defaults to "subscribed".

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/members.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
email_addressstringyesSubscriber's email address.
first_namestringnoSubscriber's first name, stored as the FNAME merge field.
last_namestringnoSubscriber's last name, stored as the LNAME merge field.
list_idstringyesMailchimp audience (list) id.
statusstringnoSubscription status: "subscribed", "unsubscribed", "cleaned", or "pending" (double opt-in). Defaults to "subscribed".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
email_addressstring
idstring
merge_fieldsobject
merge_fields.FNAMEstring
merge_fields.LNAMEstring
statusstring

Also retrieved by: "sign someone up for the newsletter", "add this email to the mailing list", "get a new person subscribed", "put someone on our email list".

mailchimp.get_list_member

Get one Mailchimp subscriber's full record by audience and subscriber hash: email, subscription status, merge fields, and tags. Use when the user names a specific person already on the list. For finding a subscriber by name or partial email use search_members instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists/{{params.list_id}}/members/{{params.subscriber_hash}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
email_addressstring
idstring
merge_fieldsobject
merge_fields.FNAMEstring
merge_fields.LNAMEstring
statusstring
tagsarray of object
tags[].idinteger
tags[].namestring

Also retrieved by: "pull up a subscriber's profile", "check what we have on file for this person", "look up someone's subscription status".

mailchimp.update_list_member

Update fields on an existing Mailchimp subscriber: subscription status, first name, or last name. Use when the user wants to edit or correct a subscriber's record, or resubscribe or unsubscribe them, not add a new person.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /lists/{{params.list_id}}/members/{{params.subscriber_hash}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
first_namestringnoNew first name, stored as the FNAME merge field.
last_namestringnoNew last name, stored as the LNAME merge field.
list_idstringyesMailchimp audience (list) id.
statusstringnoNew subscription status: "subscribed", "unsubscribed", "cleaned", or "pending".
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
email_addressstring
idstring
statusstring

Also retrieved by: "fix this subscriber's name on file", "resubscribe someone who opted out", "correct a person's info on the mailing list", "unsubscribe this person from the newsletter".

mailchimp.list_members

List the subscribers in a Mailchimp audience, paginated, optionally filtered by subscription status. Use for browsing or exporting an audience's membership rather than looking for one specific subscriber.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists/{{params.list_id}}/members.

Arguments:

ArgumentTypeRequiredNotes
countintegernoPage size, default 10.
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
offsetintegernoNumber of members to skip, for pagination.
statusstringnoFilter to one status: "subscribed", "unsubscribed", "cleaned", or "pending". Omit to list every status.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
membersarray of object
members[].email_addressstring
members[].idstring
members[].statusstring
total_itemsinteger

Also retrieved by: "show me everyone on this mailing list", "browse the subscribers in this audience", "export the whole newsletter list", "see who's on this list right now".

mailchimp.search_members

Search for a Mailchimp subscriber across some or all audiences by name or partial email address. Use when the user describes a person rather than naming a known audience and subscriber hash.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search-members.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringnoRestrict the search to one audience. Omit to search every audience.
querystringyesFree-text search over email address and name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
exact_matchesobject
exact_matches.membersarray of object
exact_matches.members[].email_addressstring
exact_matches.members[].idstring
exact_matches.members[].list_idstring
exact_matches.members[].statusstring
exact_matches.total_itemsinteger

Also retrieved by: "find a subscriber by their email", "look up someone across all our lists", "hunt down a person's subscription record".

mailchimp.archive_list_member

Archive a Mailchimp subscriber, removing them from the active audience without erasing their history. Use when the user wants to unsubscribe, remove, or take someone off a mailing list. Recoverable by re-adding the same email address; for a full, irreversible erasure use permanently_delete_list_member instead.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /lists/{{params.list_id}}/members/{{params.subscriber_hash}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
archivedboolean

Also retrieved by: "take this person off the mailing list", "remove someone from the newsletter", "unsubscribe this contact from the list".

mailchimp.permanently_delete_list_member

Permanently erase a Mailchimp subscriber's data from an audience: the email address, merge fields, and history stop existing everywhere, including exports. Use when the user wants a person's data wiped entirely, for example a GDPR deletion request, not a normal unsubscribe. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/members/{{params.subscriber_hash}}/actions/delete-permanent.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "wipe this person's data for good, gdpr request", "erase someone's email entirely from every list", "scrub a subscriber's info completely".

mailchimp.tag_member

Add one or more tags to a Mailchimp subscriber, for example to mark them "VIP" or "webinar-attendee". Use when the user wants to label or categorize a subscriber for later segmentation, not remove a tag.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/members/{{params.subscriber_hash}}/tags.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.
tagsarray of stringyesTag names to add, e.g. ["VIP", "webinar-attendee"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
taggedboolean

Also retrieved by: "label this subscriber as a vip", "mark someone as a webinar attendee", "add a category tag to a contact".

mailchimp.untag_member

Remove one or more tags from a Mailchimp subscriber. Use when the user wants to un-label a subscriber or take them out of a tag-based segment, not add a new tag.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/members/{{params.subscriber_hash}}/tags.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
subscriber_hashstringyesMD5 hash of the subscriber's lowercased email address.
tagsarray of stringyesTag names to remove.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
untaggedboolean

Also retrieved by: "take a label off this subscriber", "remove someone's vip tag", "drop a tag from a contact's profile".

mailchimp.list_segments

List the segments defined on a Mailchimp audience, paginated. Use when the user asks what segments or saved groups exist within an audience, rather than looking for one specific segment.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists/{{params.list_id}}/segments.

Arguments:

ArgumentTypeRequiredNotes
countintegernoPage size, default 10.
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
segmentsarray of object
segments[].idinteger
segments[].member_countinteger
segments[].namestring
segments[].typestring
total_itemsinteger

Also retrieved by: "what groups have we carved out of this list", "show the saved segments on this audience", "browse the subsets of this mailing list".

mailchimp.create_segment

Create a new segment on a Mailchimp audience: either a static segment you add specific members to, or a saved match rule that Mailchimp evaluates automatically. Use when the user wants to build a named subset of an audience for targeted sending.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/segments.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
namestringyesSegment name, e.g. "Opened last campaign".
static_member_emailsarray of stringnoEmail addresses to seed a static segment with. Omit to create an empty static segment.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
member_countinteger
namestring

Also retrieved by: "build a new group within this audience", "carve out a targeted subset of subscribers", "set up a saved segment for this list".

mailchimp.get_segment

Get one Mailchimp segment's details by audience and segment id: its name, type, and member count. Use when the user names a specific segment rather than browsing all of them.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /lists/{{params.list_id}}/segments/{{params.segment_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
segment_idstringyesMailchimp segment id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
member_countinteger
namestring
typestring

Also retrieved by: "check how many people are in this segment", "pull up details on this saved group", "look at what this subset of the audience contains".

mailchimp.add_members_to_segment

Add existing audience members to a static Mailchimp segment by email address. Use when the user wants to grow a hand-picked segment, not a rule-based one that updates itself.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /lists/{{params.list_id}}/segments/{{params.segment_id}}/members.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
email_addressesarray of stringyesEmail addresses of existing members to add to the segment.
list_idstringyesMailchimp audience (list) id.
segment_idstringyesMailchimp segment id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
members_addedinteger

Also retrieved by: "drop these subscribers into the vip segment", "add specific people to a saved group", "grow a hand-picked subset with more emails".

mailchimp.delete_segment

Permanently delete a Mailchimp segment definition. Use when the user wants to remove a saved segment or group entirely. Deletes only the segment definition, not the members within it, but the segment itself cannot be recovered.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /lists/{{params.list_id}}/segments/{{params.segment_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
list_idstringyesMailchimp audience (list) id.
segment_idstringyesMailchimp segment id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this saved group definition", "get rid of a segment we no longer need", "scrap this subset entirely".

mailchimp.list_campaigns

List Mailchimp email campaigns across the account, paginated, optionally filtered by status. Use when the user asks what campaigns or email blasts exist, rather than looking for one specific campaign.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /campaigns.

Arguments:

ArgumentTypeRequiredNotes
countintegernoPage size, default 10.
dcstringyesMailchimp account datacenter, e.g. "us21".
offsetintegernoNumber of campaigns to skip, for pagination.
statusstringnoFilter by status: "save" (draft), "paused", "schedule", "sending", or "sent". Omit to list every status.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
campaignsarray of object
campaigns[].idstring
campaigns[].settingsobject
campaigns[].settings.subject_linestring
campaigns[].settings.titlestring
campaigns[].statusstring
total_itemsinteger

Also retrieved by: "what email blasts have we sent or drafted", "show every newsletter campaign", "browse our past and upcoming sends".

mailchimp.get_campaign

Get one Mailchimp campaign's full details by id: status, subject line, audience, send time, and settings. Use when the user names a specific campaign or email blast rather than browsing all of them.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /campaigns/{{params.campaign_id}}.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
recipientsobject
recipients.list_idstring
send_timestring (date-time)
settingsobject
settings.from_namestring
settings.reply_tostring
settings.subject_linestring
settings.titlestring
statusstring

Also retrieved by: "pull up details on this email blast", "check the status of a newsletter send", "show me what this campaign's set up to do".

mailchimp.create_campaign

Create a new Mailchimp email campaign as a draft, targeting one audience. Use when the user wants to start, draft, or set up a new email blast or newsletter, not send one immediately. Requires the audience and a subject line; set the body afterward with set_campaign_content.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /campaigns.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
from_namestringyesFrom" name shown to recipients.
list_idstringyesMailchimp audience (list) id to send this campaign to.
reply_tostringyesReply-to email address.
subject_linestringyesEmail subject line.
titlestringnoInternal campaign title, not shown to recipients.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
settingsobject
settings.subject_linestring
settings.titlestring
statusstring

Also retrieved by: "start drafting a new email blast", "set up a new newsletter to send later", "kick off a fresh campaign draft".

mailchimp.update_campaign_settings

Update an existing Mailchimp campaign's subject line, from-name, reply-to, or title before it sends. Use when the user wants to edit a draft or scheduled campaign's settings, not its body content.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /campaigns/{{params.campaign_id}}.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".
from_namestringnoNew "from" name shown to recipients.
reply_tostringnoNew reply-to email address.
subject_linestringnoNew email subject line.
titlestringnoNew internal campaign title.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
settingsobject
settings.subject_linestring
settings.titlestring

Also retrieved by: "change the subject line on this draft", "fix the sender name on this email blast", "edit a campaign's settings before it goes out".

mailchimp.set_campaign_content

Set a Mailchimp campaign's email body as HTML. Use when the user wants to write or replace what a campaign actually says, distinct from its subject line or audience settings.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /campaigns/{{params.campaign_id}}/content.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".
htmlstringyesThe campaign's full email body as HTML.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
htmlstring

Also retrieved by: "write the body of this newsletter", "fill in the html for this email blast", "replace what this campaign actually says".

mailchimp.get_campaign_content

Get a Mailchimp campaign's current email body, as HTML and plain text. Use when the user wants to review, read back, or check what a campaign's content currently says.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /campaigns/{{params.campaign_id}}/content.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
htmlstring
plain_textstring

Also retrieved by: "show me what this email currently says", "read back the body of this campaign", "check the content before it sends".

mailchimp.send_test_email

Send a Mailchimp campaign as a test to specific email addresses only, without sending it to the real audience. Use when the user wants to preview, proof, or check a campaign before the real send.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /campaigns/{{params.campaign_id}}/actions/test.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".
test_emailsarray of stringyesEmail addresses to receive the test send.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
sentboolean

Also retrieved by: "proof this campaign to my own inbox first", "preview the email blast before sending", "fire a test copy to a few addresses".

mailchimp.schedule_campaign

Schedule a Mailchimp campaign to send at a future time. Use when the user wants to queue, time, or schedule an email blast rather than send it right away. Reversible before the scheduled time with unschedule_campaign.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /campaigns/{{params.campaign_id}}/actions/schedule.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".
schedule_timestringyesWhen to send the campaign, RFC 3339, in UTC.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
scheduledboolean

Also retrieved by: "queue this newsletter for tomorrow morning", "set this email blast to go out later", "time this campaign for a future date".

mailchimp.unschedule_campaign

Cancel a Mailchimp campaign's scheduled send and return it to draft. Use when the user wants to stop, pull back, or unschedule a campaign that has not sent yet, not one already sent.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /campaigns/{{params.campaign_id}}/actions/unschedule.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
unscheduledboolean

Also retrieved by: "pull back a scheduled send before it fires", "stop this campaign from going out as planned", "cancel the scheduled time on this email".

mailchimp.send_campaign

Send a Mailchimp campaign to its audience right now. Use when the user explicitly wants an email blast or newsletter to go out immediately, not scheduled or tested. Irreversible once sent; every recipient in the target audience receives it.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls POST /campaigns/{{params.campaign_id}}/actions/send.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
sentboolean

Also retrieved by: "blast this newsletter out right now", "send this email to the whole audience", "fire off this campaign immediately".

mailchimp.delete_campaign

Permanently delete a Mailchimp campaign. Use when the user wants to remove a draft or already-sent campaign from the account entirely. Irreversible; deleting a sent campaign does not recall the emails.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /campaigns/{{params.campaign_id}}.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this draft entirely", "get rid of an old email blast for good", "scrap this campaign completely".

mailchimp.replicate_campaign

Duplicate a Mailchimp campaign into a new draft with the same content and settings. Use when the user wants to reuse, copy, or resend a past campaign as a starting point, rather than build a new one from scratch.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /campaigns/{{params.campaign_id}}/actions/replicate.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id to duplicate.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
settingsobject
settings.titlestring
statusstring

Also retrieved by: "copy last month's newsletter as a starting point", "duplicate an old email blast", "reuse a past campaign's content".

mailchimp.list_templates

List the reusable email templates saved in a Mailchimp account, paginated. Use when the user asks what templates or email designs exist, rather than looking for one specific template.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /templates.

Arguments:

ArgumentTypeRequiredNotes
countintegernoPage size, default 10.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
templatesarray of object
templates[].idinteger
templates[].namestring
templates[].typestring
total_itemsinteger

Also retrieved by: "what email designs do we have saved", "show every reusable template", "browse our saved newsletter layouts".

mailchimp.create_template

Save a new reusable email template in Mailchimp from HTML. Use when the user wants to save a design for reuse across future campaigns, not set the content of one specific campaign.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /templates.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
htmlstringyesThe template's HTML source.
namestringyesTemplate name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
namestring

Also retrieved by: "save this html design for reuse", "store a new reusable email layout", "add a fresh template to the library".

mailchimp.delete_template

Permanently delete a saved Mailchimp email template. Use when the user wants to remove a reusable design from the account entirely; existing campaigns already built from it are unaffected.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /templates/{{params.template_id}}.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
template_idstringyesMailchimp template id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove a saved design for good", "get rid of an old email layout", "scrap a template we don't use anymore".

mailchimp.list_automations

List the automated email workflows configured in a Mailchimp account, paginated. Use when the user asks what automations, drip campaigns, or autoresponders exist, rather than looking for one specific workflow.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /automations.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
automationsarray of object
automations[].idstring
automations[].settingsobject
automations[].settings.titlestring
automations[].statusstring
total_itemsinteger

Also retrieved by: "what drip campaigns are running", "show every autoresponder we've set up", "browse our automated workflows".

mailchimp.pause_automation

Pause every email in a Mailchimp automated workflow, so no further sends go out until it is restarted. Use when the user wants to stop or hold an automation or drip campaign temporarily, not delete it.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /automations/{{params.workflow_id}}/actions/pause-all-emails.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
workflow_idstringyesMailchimp automation workflow id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
pausedboolean

Also retrieved by: "stop this drip campaign temporarily", "hold off on this autoresponder for now", "freeze an automated workflow".

mailchimp.start_automation

Resume every email in a paused Mailchimp automated workflow. Use when the user wants to restart, resume, or turn back on an automation or drip campaign that was previously paused.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /automations/{{params.workflow_id}}/actions/start-all-emails.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".
workflow_idstringyesMailchimp automation workflow id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
startedboolean

Also retrieved by: "turn this drip campaign back on", "resume a paused autoresponder", "restart an automated workflow".

mailchimp.get_campaign_report

Get a sent Mailchimp campaign's performance report: emails sent, opens, clicks, unsubscribes, and bounces. Use when the user asks how a campaign performed, its open rate, or its click rate, not its content or settings.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /reports/{{params.campaign_id}}.

Arguments:

ArgumentTypeRequiredNotes
campaign_idstringyesMailchimp campaign id.
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
bouncesobject
bounces.hard_bouncesinteger
bounces.soft_bouncesinteger
campaign_titlestring
clicksobject
clicks.click_ratenumber
clicks.clicks_totalinteger
clicks.unique_clicksinteger
emails_sentinteger
idstring
opensobject
opens.open_ratenumber
opens.opens_totalinteger
opens.unique_opensinteger
unsubscribedinteger

Also retrieved by: "how did this newsletter perform", "check the open rate on this email blast", "what's the click rate on our last campaign", "pull up performance numbers for this send".

mailchimp.get_account_info

Get the connected Mailchimp account's own details: account name, contact email, plan type, and total subscriber count. Use to confirm which Mailchimp account is connected, or when the user asks about their own account rather than a specific audience or campaign.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /.

Arguments:

ArgumentTypeRequiredNotes
dcstringyesMailchimp account datacenter, e.g. "us21".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
account_idstring
account_namestring
emailstring
pricing_plan_typestring
total_subscribersinteger

Also retrieved by: "which mailchimp account is this connected to", "check our plan and subscriber count", "what account are we hooked up to".