Add or Update Member

mailchimp.upsert_member
ActionEmailconnection required

Calls the Mailchimp API with the connection's credentials.

Add a member, or update it if the address is already in the audience, in one idempotent PUT. This is the only member write that can re-subscribe an address Mailchimp already holds as unsubscribed.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Mailchimp
Secret shape
the Mailchimp API key (…-<dc>)
Config it needs
dc
Resolved by
config.connection_id, else node.connection_id

Configuration

10 fields, 2 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
list_id
The audience (list) id, as shown in Mailchimp under Audience settings and returned as 'id' by Mailchimp: List Audiences.
stringYes———
email
The member's email address. Mailchimp addresses a member by the MD5 of the lowercased address, which this node derives for you; a 32-character subscriber hash from an earlier step is accepted as-is.
stringYes———
status_if_new
The status to give the member when the address is new to this audience. Mailchimp requires it on every upsert.
stringNosubscribedone of "subscribed", "pending", "unsubscribed", "cleaned", "transactional"—
status
The status to set when the member already exists. Leave empty to leave an existing member's status untouched.
stringNo—one of "subscribed", "unsubscribed", "cleaned", "pending", "transactional"—
email_type
Which format this member should receive: 'html' or 'text'.
stringNo—one of "html", "text"—
language
The member's language as a two-letter code, such as 'en' or 'fr'.
stringNo———
vip
Mark the member as VIP in Mailchimp.
booleanNo———
merge_fields
Merge-field values keyed by merge tag, as a JSON object — {"FNAME": "Ada"}. Mailchimp: List Merge Fields returns the tags this audience accepts.
objectNo——{"FNAME":"Ada"}
interests
Interest-group membership, as a JSON object of {"<interest_id>": true|false}. Ids come from the audience's interest categories.
objectNo———
extra
Further keys to merge into the member object sent to Mailchimp, such as location or marketing_permissions, as a JSON object.
objectNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "merge_fields": {
    "FNAME": "Ada"
  },
  "status_if_new": "subscribed"
}

Output

One shape.

result

FieldTypeExample
id
The member's subscriber hash — the MD5 of the lowercased email.
string—
email_address
The member's email address as Mailchimp stores it.
string—
unique_email_id
Mailchimp's account-wide id for this email address.
string—
contact_id
The contact id shared across audiences in the account.
string—
full_name
The member's full name, assembled from its merge fields.
string—
web_id
The id this member has in the Mailchimp web UI's URLs.
number—
email_type
The format this member receives: 'html' or 'text'.
string—
status
subscribed, unsubscribed, cleaned, pending, transactional or archived.
string—
merge_fields
The member's merge-field values, keyed by merge tag.
object—
interests
Interest-group membership, keyed by interest id.
object—
stats
Open and click rates for this member on this audience.
object—
tags
The tags on this member, each with an 'id' and a 'name'.
array—
list_id
The audience this member belongs to.
string—
last_changed
When the member was last updated, ISO 8601.
string—
timestamp_opt
When the member opted in, ISO 8601, when known.
string—
member_rating
Mailchimp's 1-5 engagement rating for the member.
number—
language
The member's language code.
string—
vip
Whether the member is marked VIP.
boolean—
{
  "contact_id": "",
  "email_address": "",
  "email_type": "",
  "full_name": "",
  "id": "",
  "interests": {},
  "language": "",
  "last_changed": "",
  "list_id": "",
  "member_rating": 0,
  "merge_fields": {},
  "stats": {},
  "status": "",
  "tags": [],
  "timestamp_opt": "",
  "unique_email_id": "",
  "vip": false,
  "web_id": 0
}

See Add or Update Member run in a workflow.

In a technical demo we add the Mailchimp connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.