
Mailchimp
Two-way sync Mailchimp contacts, tags, merge fields, and groups with Airtable, Notion, Google Sheets, and more, plus read-only campaigns and surveys.
Mailchimp Connector Guide
Section titled “Mailchimp Connector Guide”This guide covers how to connect Whalesync to Mailchimp, how your audiences appear in Whalesync, and which fields sync.
In Whalesync terms, a Mailchimp audience is the base you pick. It has four tables, plus one for each survey:
- Contacts, the people in the audience. This is the main table and syncs both ways.
- Tags, the audience's tags. You can create, rename, and delete tags from Whalesync.
- Segments, the audience's saved segments. This table is read only.
- Campaigns, the audience's campaigns, with their report numbers. This table is read only.
- Survey: name, one table for each survey on the audience, with one record per response. These tables are read only.
The Mailchimp connector is available on Whalesync's Starter plan and up.
Connecting to Mailchimp
Section titled “Connecting to Mailchimp”- In Whalesync, choose Mailchimp and click Authorize, then sign in to Mailchimp.
- Pick the audience to sync. The base is named after the audience.
- Pick the tables to sync.
Using an API key
Section titled “Using an API key”To find an API key in Mailchimp:
- Click your profile icon and choose Profile.
- Open the Extras menu and choose API keys.
- Under Your API Keys, click Create A Key, name it, for example "Whalesync", and click Generate Key.
- Click Copy Key to Clipboard. Mailchimp shows the key only once.
Then in Whalesync, choose Mailchimp, click Use a api key instead, paste the key, and click Authorize.
Mailchimp API keys created after June 22, 2026 expire a year after they are created. When a key expires, create a new one and reconnect Mailchimp with it.
Syncing Data
Section titled “Syncing Data”Every contact in the audience is a record in the Contacts table. Its columns are the fields Mailchimp gives every contact, plus one column for each of the audience's merge fields, groups, and marketing permissions. See Supported Fields.
A contact's tags are a link column to the Tags table. Adding a link in your other app adds the tag to the contact in Mailchimp, and removing it takes the tag off.
Segment membership is on the Segments table: each segment has a Contacts column that links to the contacts in it. See Segments.
Subscription status
Section titled “Subscription status”A contact added from Whalesync without a Status column is added as transactional. Mailchimp stores the contact but does not subscribe it to marketing email. To subscribe people, map the Status column and set it to subscribed for the people who agreed to receive email.
Status can be set to subscribed, unsubscribed, or transactional. Whalesync never sets a contact to pending, because Mailchimp sends a confirmation email to pending contacts. Nothing Whalesync writes to Mailchimp sends anyone an email.
Mailchimp does not let anyone resubscribe a contact who unsubscribed themselves. That person has to sign up again through a Mailchimp signup form.
Deleting contacts
Section titled “Deleting contacts”Deleting a record archives the contact in Mailchimp. Whalesync never deletes a contact permanently, and an archived contact keeps its history in Mailchimp.
Real-time updates
Section titled “Real-time updates”Whalesync registers a webhook on each audience whose Contacts table you map, so a change to a contact in Mailchimp reaches your other apps quickly instead of waiting for the next poll.
Mailchimp sends no webhook for tags, segments, surveys, campaigns, or archived contacts. Changes to those arrive on the regular sync.
Supported Fields
Section titled “Supported Fields”Contacts
Section titled “Contacts”| Mailchimp field | Status | Notes |
|---|---|---|
| ✅ Supported | Required when creating a contact from another app. Mailchimp keeps one contact per email. | |
| Status | ✅ Supported | Can be set to subscribed, unsubscribed, or transactional. See Subscription status. |
| Tags | ✅ Supported | Links to the Tags table. |
| Merge fields | ✅ Supported | One column per merge field. See Merge fields. |
| Groups | ✅ Supported | One column per group category. See Groups. |
| Marketing permissions | ✅ Supported | A checkbox for each permission. See Marketing permissions. |
| Language | ✅ Supported | Mailchimp cannot clear a contact's language. |
| VIP | ✅ Supported | A checkbox. |
| Contact rating, Average open rate, Average click rate | ➡️ Supported (1-Way) | Read only. |
| Signed up, Opted in, Last changed | ➡️ Supported (1-Way) | Read only. |
| Source, Unsubscribe reason, Email client | ➡️ Supported (1-Way) | Read only. |
| Country code, Time zone, Latitude, Longitude | ➡️ Supported (1-Way) | Read only. The contact's location as Mailchimp records it. |
Merge fields
Section titled “Merge fields”Each merge field on the audience is a column on Contacts, named after the field.
| Merge field type | Status | Notes |
|---|---|---|
| Text | ✅ Supported | Emoji are stored by Mailchimp as ?. |
| Number | ✅ Supported | |
| Date | ✅ Supported | |
| Birthday | ✅ Supported | A month and day, like 07/04. |
| Address | ✅ Supported | Six columns: street, line 2, city, state, postal code, and country. Mailchimp needs a street, a city, and a postal code. |
| Phone | ✅ Supported | |
| Website, Image URL | ✅ Supported | A URL. |
| Radio buttons, Drop-down | ✅ Supported | A single select whose options are the field's choices. |
| Zip code | ✅ Supported | Five-digit US zip codes. |
A new column created from Whalesync on the Contacts table becomes a new merge field in Mailchimp. Mailchimp limits how many merge fields an audience can have, and the limit depends on your Mailchimp plan.
Groups
Section titled “Groups”Each group category on the audience is a column on Contacts, named after the category.
| Group category type | Status | Notes |
|---|---|---|
| Checkboxes, Hidden | ✅ Supported | A multi-select of the category's groups. |
| Radio buttons, Drop-down | ✅ Supported | A single select of the category's groups. |
Marketing permissions
Section titled “Marketing permissions”On audiences with GDPR fields turned on, each marketing permission is a checkbox column on Contacts, named Marketing permission: followed by the permission's text. Mailchimp only lists permissions on contacts, so these columns appear once the audience has at least one contact.
- Creating a record only records consent given. When a new record matches a contact already in the audience, an unchecked box does not withdraw consent that contact gave.
- A contact brought back from archived takes its consent from the record, for the permission columns that are mapped. An unchecked box there withdraws consent.
- Updating a record gives or withdraws consent to match the box.
| Mailchimp field | Status | Notes |
|---|---|---|
| Name | ✅ Supported | Required when creating a tag from another app. |
| Contacts, Created, Updated | ➡️ Supported (1-Way) | Read only. Contacts is the number of contacts with the tag. |
Deleting a tag record deletes the tag in Mailchimp.
Segments
Section titled “Segments”| Mailchimp field | Status | Notes |
|---|---|---|
| Contacts | ➡️ Supported (1-Way) | Read only. Links to the contacts in the segment. Only listed for audiences of up to 25,000 contacts. |
| Name, Contact count, Type, Created, Updated | ➡️ Supported (1-Way) | Read only. Segments are created and edited in Mailchimp. |
For an audience with more than 25,000 contacts, unmap the Contacts column to sync the segments without their members.
Campaigns
Section titled “Campaigns”| Mailchimp field | Status | Notes |
|---|---|---|
| Name, Subject, Preview text, From name, Reply-to email, Status, Type, Created, Sent, Sent to, Emails sent, Recipients, Archive URL | ➡️ Supported (1-Way) | Read only. |
| Opens, Unique opens, Open rate, Clicks, Unique clicks, Click rate | ➡️ Supported (1-Way) | Read only. The campaign's report numbers. Empty until the campaign is sent. |
Surveys
Section titled “Surveys”Each survey on the audience is a table named Survey: followed by the survey's name. Each response is a record.
| Mailchimp field | Status | Notes |
|---|---|---|
| Submitted | ➡️ Supported (1-Way) | Read only. |
| Contact | ➡️ Supported (1-Way) | Read only. Links to the contact who answered. Empty for anonymous responses. |
| Contact email, Contact name, New contact | ➡️ Supported (1-Way) | Read only. |
| One column per question | ➡️ Supported (1-Way) | Read only. Named after the question. Choice questions are selects, and rating questions are numbers. |
A survey created after the sync is set up appears as a new table once you refresh the schema in Whalesync. When a survey is deleted in Mailchimp, remove its table from the sync.
Things to Keep in Mind
Section titled “Things to Keep in Mind”- The Mailchimp connector is in beta. If something does not work as described here, let us know.
- A contact added without a Status column is not subscribed. It is stored as
transactional. Map Status to subscribe people. - Whalesync never sends anyone an email. It never sets a contact to
pending, and campaigns are read only. - Deleting a record archives the contact. Whalesync never deletes a Mailchimp contact permanently.
- Two records with the same email are refused. Mailchimp keeps one contact per email, so the second record is reported as a sync issue.
- Mailchimp cannot clear a contact's language. Clearing it in your other app leaves the old value in Mailchimp, and that value syncs back.
- Emoji in text fields are stored as
?. Mailchimp replaces them, and the?syncs back to your other app. - Tags, segments, surveys, campaigns, and archived contacts change on the regular sync only. Mailchimp sends no webhook for them.
- Mailchimp limits merge fields per audience. The limit depends on your Mailchimp plan.
- API keys created after June 22, 2026 expire after a year. See Using an API key.
Troubleshooting
Section titled “Troubleshooting”New contacts are not subscribed
Section titled “New contacts are not subscribed”A contact added without a Status column is added as transactional, which Mailchimp stores without subscribing. Map the Status column and set it to subscribed for the people who agreed to receive email. Contacts already added this way can be updated the same way.
A contact cannot be resubscribed
Section titled “A contact cannot be resubscribed”Mailchimp does not let anyone resubscribe a contact who unsubscribed themselves. The person has to sign up again through a Mailchimp signup form.
A record with a duplicate email is refused
Section titled “A record with a duplicate email is refused”Mailchimp keeps one contact per email, so Whalesync refuses a second record with an email another record in the sync already has. Remove the duplicate record, or change its email. If you deleted a contact's record and added it back as a new record, restore the original record instead.
A deleted contact is still in Mailchimp
Section titled “A deleted contact is still in Mailchimp”Deleting a record archives the contact. Archived contacts are not listed in the audience, but Mailchimp keeps them. Whalesync never deletes a contact permanently.
Language or emoji change back after syncing
Section titled “Language or emoji change back after syncing”Mailchimp cannot clear a contact's language, and it stores emoji in text fields as ?. In both cases the value Mailchimp keeps syncs back to your other app.
Changes in Mailchimp take a while to show up
Section titled “Changes in Mailchimp take a while to show up”Contact changes arrive quickly through webhooks. Tags, segments, surveys, campaigns, and archived contacts change on the regular sync only, because Mailchimp sends no webhook for them.
The Segments table reports the audience is too large
Section titled “The Segments table reports the audience is too large”Segment members are only listed for audiences of up to 25,000 contacts. For a larger audience, unmap the Segments table's Contacts column. The segments still sync without their members.
A survey response has no contact
Section titled “A survey response has no contact”Anonymous survey responses are not linked to a contact, so their Contact column is empty.
A new survey is missing
Section titled “A new survey is missing”Refresh the schema in Whalesync. The new survey then appears as a table you can add to the sync.
A survey's table reports that the survey no longer exists
Section titled “A survey's table reports that the survey no longer exists”The survey was deleted in Mailchimp. Remove its table from the sync.
Marketing permission columns are missing
Section titled “Marketing permission columns are missing”Marketing permission columns only appear on audiences with GDPR fields turned on, and only once the audience has at least one contact. Turn on GDPR fields in Mailchimp, add a contact if the audience is empty, and refresh the schema in Whalesync.
A new record did not withdraw a contact's consent
Section titled “A new record did not withdraw a contact's consent”A new record only records consent given. When it matches a contact already in the audience, an unchecked box does not withdraw consent that contact gave. Update the record to withdraw consent. A contact brought back from archived is the exception: it takes its consent from the record, for the permission columns that are mapped.
New columns cannot be created
Section titled “New columns cannot be created”Mailchimp limits how many merge fields an audience can have, and the limit depends on your Mailchimp plan. Map the column to an existing merge field instead, or remove merge fields you no longer use in Mailchimp.