Add or update contact
BetaChanges data
Adds a contact to an audience, or updates the one already there.
Settings
| Setting | What it is |
|---|---|
| ConnectionRequired | The Mailchimp connection the step signs in with. |
| Audience id | The id List audiences gives you, and the id= in the Mailchimp audience URL. |
| E-mail address | text |
| Status for a new contact | Only used when the contact is new. An existing contact keeps the status it has unless you set Status below. |
| Status | Mailchimp will not re-subscribe a contact who unsubscribed themselves; they have to opt in again. |
| E-mail format | "" or "html" or "text" |
| Merge fields | Keyed by the merge TAG — FNAME, not First name. The List merge fields node gives you the tags. |
| Interest groups | Keyed by the interest id, not its name — the List interests node gives you the ids. An interest you leave out is left alone. |
| Language | text |
| VIP | "" or "on" or "off" |
| Latitude | text |
| Longitude | text |
| Marketing permissions | One object per permission, as Mailchimp's GDPR fields are keyed. The audience defines the ids. |
| Sign-up IP address | text |
| Sign-up moment | text |
| Opt-in IP address | text |
| Opt-in moment | text |
| Accept a missing merge field | Accepts the contact even when a required merge field is missing. |
Technical details
| Key | Value |
|---|---|
connection | texta connection id from `requires.connections` (provider `mailchimp`) |
audienceId | texta value from the vendor's own list |
email | text |
statusIfNew | "subscribed" or "unsubscribed" or "pending" or "transactional" or "cleaned", by default "subscribed" |
status | "" or "subscribed" or "unsubscribed" or "pending" or "transactional" or "cleaned" |
emailType | "" or "html" or "text" |
mergeFields | object of text, by default {} |
interests | object of true/false, by default {} |
language | text |
vip | "" or "on" or "off" |
latitude | text |
longitude | text |
marketingPermissions | list of any JSON, by default [] |
ipSignup | text |
timestampSignup | text |
ipOpt | text |
timestampOpt | text |
skipMergeValidation | true/false, by default false |
Output
| Field | Type |
|---|---|
memberContact | object |
memberIdContact id | string |
emailE-mail address | string |
status | string |
tags | array |
mergeFields | object |
Sample output, and the expression for each field
- email"person@example.com"
- member
- email_address"person@example.com"
- id"7de8517bce4457e8390aa4006a1880fb"
- memberId"7de8517bce4457e8390aa4006a1880fb"
- mergeFields{}
- status"subscribed"
- tags[]
Errors
When a step of this node stops a run, the run page shows a code. Look it up:
Example step
The step as a flow file holds it. Replace each value in <…>.
{
"config": {
"audienceId": "",
"connection": "<connection id>",
"email": "",
"emailType": "",
"interests": {},
"ipOpt": "",
"ipSignup": "",
"language": "",
"latitude": "",
"longitude": "",
"marketingPermissions": [],
"mergeFields": {},
"skipMergeValidation": false,
"status": "",
"statusIfNew": "subscribed",
"timestampOpt": "",
"timestampSignup": "",
"vip": ""
},
"label": "Add or update contact",
"type": "mailchimp.upsertMember",
"version": 1
}