Connect Mailchimp with InstantDM
Push Instagram DM leads into your Mailchimp audience automatically. Native integration — no Zapier or Make.com in the middle.
What you get
- Every Instagram lead with an email becomes a Mailchimp subscriber, tagged
instantdm. - FNAME and PHONE merge fields populate from the questions you ask in the flow.
- One configuration in Account Settings — toggle on/off per individual flow afterwards.
- Idempotent: re-pushing the same email updates the existing subscriber instead of creating duplicates.
Prerequisites
| Requirement | Details |
|---|---|
| InstantDM plan | Any plan that includes integrations (Trendsetter Pro and above, or any Multi plan). |
| Mailchimp account | Free or paid — both work via the v3 Marketing API. |
| At least one audience | Mailchimp requires every contact to belong to an audience. Create one before connecting if you don't already have one. |
| A flow that asks for email | InstantDM can only push to Mailchimp once an email is collected (Mailchimp identifies subscribers by email). |
Step 1 — Get your Mailchimp API key
- Log in to mailchimp.com.
- Click your profile in the bottom-left → Profile.
- Open Extras → API keys.
- Click Create A Key. Name it something like "InstantDM" so you can revoke it later if needed.
- Copy the key. It looks like
abcdef1234567890abcdef1234567890-us21. The suffix (-us21) is your server prefix.
Step 2 — Add the key in InstantDM
- In InstantDM, open Account Settings → Integrations.
- Click the Mailchimp row on the left.
- Paste your API key into the API Key field.
- Server Prefix: leave empty — InstantDM auto-detects it from the key suffix. Set it manually only if your key has no suffix.
- Audience / List ID: optional. Leave empty to use the first audience in your account, or paste a specific list ID from Mailchimp → Audience → Settings → Audience name and defaults → Audience ID.
- Click Save. The integration shows as "Connected".
Step 3 — Enable Mailchimp on a flow
- Open any flow in the flow editor.
- In the toolbar at the top of the canvas, click the Integrations button.
- Toggle Mailchimp on. (If the toggle is greyed out with a "Not connected" tag, go back to Step 2 — your API key isn't saved yet.)
- Click Set Live to publish.
Step 4 — Choose when to push
In the same Integrations modal, there's a When to push to integrations control with two options:
| Mode | When the push fires | Best for |
|---|---|---|
| On flow completion (default) | Once, when the entire flow ends. | Most flows. Single clean Mailchimp call with the full profile (email + name + phone). Fewer API calls. |
| Each answer | After every accepted question answer. | Long flows with branches that may not complete, or when you want real-time data in Mailchimp during the conversation. |
When AI Reply is in the flow
If your flow contains an AI Reply node, the trigger is automatically locked to Each answer — the Segmented control is disabled with a note. This is because AI conversations don't have a deterministic completion moment, so per-field pushes are the only way to guarantee Mailchimp gets the data. The AI extracts lead info turn-by-turn, and each new field (email, name, phone) fires a separate push.
What InstantDM sends to Mailchimp
For each push, InstantDM calls Mailchimp's Add or Update List Member endpoint:
PUT /lists/<your audience ID>/members/<md5(email)>
Where <your audience ID> is either the Audience / List ID you set in Step 2, or — if you left that field blank — the first audience returned by your Mailchimp account. <md5(email)> is an MD5 hash of the contact's lowercased email (Mailchimp's unique subscriber identifier).
Request body:
- email_address — the email collected in the flow
- status_if_new:
subscribed— new contacts are subscribed by default - tags:
["instantdm"]— so you can filter Instagram-sourced leads in Mailchimp - merge_fields.FNAME — from the "name" question (if asked in the flow)
- merge_fields.PHONE — from the "phone" question (if asked in the flow)
Because the URL is keyed by md5(email), Mailchimp treats re-pushes of the same email as updates, not duplicates.
Troubleshooting
"No audiences found" in the logs
Your Mailchimp account has no audiences yet. Create one in Mailchimp → Audience → All contacts → Create Audience. Mailchimp requires every audience to have a mailing address and a from-email (CAN-SPAM compliance) — these can't be auto-generated.
The contact appears in Mailchimp but FNAME is blank
The flow probably collected email before name, and your flow ends without a follow-up. Move the email question after the name question, or set the trigger to "On flow completion" so InstantDM pulls all fields from flow history before the final push.
"Not connected" badge in the flow editor's Integrations modal
Your API key is missing or hasn't saved in Account Settings → Integrations → Mailchimp. The badge checks for the presence of mailchimp_api_key on your account.
The toggle works but nothing arrives in Mailchimp
Check, in this order: (1) is your flow's Mailchimp toggle on in the Integrations modal? (2) is the API key still valid in Mailchimp? (3) does the flow actually ask for email? (4) for "On flow completion" mode: does the flow have a clear ending? Flows that end on a fire-and-forget text node need an explicit final node for the completion event to dispatch.