step
mailchimp
Execute Mailchimp email marketing operations.
Overview
Supports operations:
- add_subscriber: Add a new subscriber to a list
- update_subscriber: Update existing subscriber information
- get_subscriber: Retrieve subscriber information
- delete_subscriber: Remove subscriber from list
Setup:
1. Create a Mailchimp account at https://mailchimp.com/
2. Generate an API key in Account > Extras > API Keys
3. Create an audience/list and note the List ID from Audience > Settings
4. Store your API key securely (e.g., as an environment variable: MAILCHIMP_API_KEY)
API Key: Required. Format: key-dc (e.g., abc123def456-us19). Get from Account > Extras > API Keys
- add_subscriber: Add a new subscriber to a list
- update_subscriber: Update existing subscriber information
- get_subscriber: Retrieve subscriber information
- delete_subscriber: Remove subscriber from list
Setup:
1. Create a Mailchimp account at https://mailchimp.com/
2. Generate an API key in Account > Extras > API Keys
3. Create an audience/list and note the List ID from Audience > Settings
4. Store your API key securely (e.g., as an environment variable: MAILCHIMP_API_KEY)
API Key: Required. Format: key-dc (e.g., abc123def456-us19). Get from Account > Extras > API Keys
Examples
Add new subscriber
Subscribe a new email address to a Mailchimp audience/list
type: mailchimp
api_key: ${env:MAILCHIMP_API_KEY}
operation: add_subscriber
list_id: a1b2c3d4e5
email: user@example.com
status: subscribed
merge_fields:
FNAME: John
LNAME: Doe
output_to: subscriber_result
Add subscriber with tags
Subscribe with tags for segmentation
type: mailchimp
api_key: ${env:MAILCHIMP_API_KEY}
operation: add_subscriber
list_id: a1b2c3d4e5
email: customer@example.com
status: subscribed
merge_fields:
FNAME: Alice
LNAME: Smith
COMPANY: Acme Inc
tags:
- VIP
- Newsletter
- Customer
output_to: mailchimp_response
Update subscriber information
Update merge fields for an existing subscriber
type: mailchimp
api_key: ${env:MAILCHIMP_API_KEY}
operation: update_subscriber
list_id: a1b2c3d4e5
email: existing@example.com
merge_fields:
FNAME: UpdatedName
PHONE: 555-1234
output_to: update_result
Get subscriber details
Retrieve subscriber information from the list
type: mailchimp
api_key: ${env:MAILCHIMP_API_KEY}
operation: get_subscriber
list_id: a1b2c3d4e5
email: check@example.com
output_to: subscriber_info
Remove subscriber
Delete a subscriber from the audience
type: mailchimp
api_key: ${env:MAILCHIMP_API_KEY}
operation: delete_subscriber
list_id: a1b2c3d4e5
email: remove@example.com
output_to: delete_result
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | No | Step type identifier
Default: "mailchimp" |
api_key | string | Yes | Mailchimp API key in format 'key-dc' where dc is the datacenter (e.g., us1, us19) |
operation | string | Yes | Operation to perform: add_subscriber (create new), update_subscriber (modify existing), get_subscriber (retrieve info), or delete_subscriber (remove from list)
Options: add_subscriber, update_subscriber, get_subscriber, delete_subscriber |
list_id | string | Yes | Mailchimp list/audience ID (found in Audience > Settings > Audience name and defaults) |
email | string | Yes | Subscriber's email address |
merge_fields | string | No | Subscriber merge fields/tags for personalization (FNAME, LNAME, BIRTHDAY, etc.) |
status | string | No | Subscriber status: subscribed (active), unsubscribed (opted out), cleaned (bounced/invalid), or pending (awaiting confirmation) |
tags | string | No | List of tags to apply to the subscriber for segmentation |
interests | string | No | Dictionary mapping interest/group IDs to boolean values (true = subscribed to that interest) |
timeout | integer | No | HTTP request timeout in seconds
Default: 30 |
output_to | string | No | Key name where the API response will be stored in the event
Default: "mailchimp" |
Base Configuration
These configuration options are available on all steps:
| Parameter | Type | Default | Description |
|---|---|---|---|
name | | null | Optional name for this step (for documentation and debugging) |
description | | null | Optional description of what this step does |
retries | integer | 0 | Number of retry attempts (0-10) |
backoff_seconds | number | 0 | Backoff (seconds) applied between retry attempts |
retry_propagate | boolean | false | If True, raise last exception after exhausting retries; otherwise swallow. |