Typeform → Mailchimp Integration Guide

I see this integration broken in about 30% of the Typeform accounts I audit. Usually it’s because someone set up the native integration months ago, then changed their Mailchimp audience structure without updating the form mapping. Suddenly half their leads are landing in the wrong list or getting tagged incorrectly.

The other common failure mode? Zapier connections that worked fine for 6 months, then quietly started failing because someone hit their task limit or the authentication expired. Meanwhile, nobody noticed because the form still “worked” — it just stopped sending leads anywhere.

What You’ll Have Working By The End

Prerequisites

Step 1: Set Up The Native Typeform → Mailchimp Integration

Typeform has a native Mailchimp integration that works for most basic setups. Start here unless you need complex field mapping or conditional logic.

In your Typeform:

  1. Go to Connect tab → Email marketingMailchimp

  2. Click Connect account and authenticate with Mailchimp

  3. Select your target audience from the dropdown

  4. Map your form fields to Mailchimp fields:

    • Email question → Email Address (required)
    • Name questions → First Name/Last Name merge fields
    • Phone → Phone Number merge field
    • Custom questions → Custom merge fields (create these in Mailchimp first)
  5. Set up tags if needed — these help segment your leads

  6. Choose Double opt-in setting (I recommend enabling this for compliance)

The native integration handles about 80% of standard lead capture needs. It breaks when you need conditional field mapping, multiple audience routing, or complex data transformation.

When to skip the native integration: If you need leads to go to different Mailchimp audiences based on form responses, or if you’re collecting data that needs processing before hitting Mailchimp (like splitting full names into first/last).

Step 2: Alternative — Zapier Integration Setup

If the native integration doesn’t meet your needs, Zapier gives you more control over field mapping and routing logic.

Create a new Zap:

  1. Trigger: Typeform → “New Entry”
  2. Connect your Typeform account and select the specific form
  3. Action: Mailchimp → “Add/Update Subscriber”
  4. Connect Mailchimp and select your audience

Field Mapping in Zapier:

Advanced Zapier Setup:

I see Zapier integrations fail most often due to authentication expiring or task limits being hit. Set up email notifications for Zap failures.

Step 3: Webhook + API Approach (For Developers)

If you need real-time processing or custom logic, use Typeform webhooks with Mailchimp’s API.

Typeform Webhook Setup:

  1. In Typeform, go to ConnectWebhooks
  2. Add your endpoint URL (e.g., https://yourserver.com/typeform-webhook)
  3. Select which events to send (usually just “form_response”)

Webhook Payload Example:

{
  "event_id": "01234567890",
  "event_type": "form_response",
  "form_response": {
    "form_id": "abc123",
    "submitted_at": "2026-03-24T10:30:00Z",
    "definition": {
      "fields": [
        {
          "id": "field_1",
          "title": "Email address",
          "type": "email"
        }
      ]
    },
    "answers": [
      {
        "field": {
          "id": "field_1",
          "type": "email"
        },
        "email": "test@example.com"
      }
    ]
  }
}

Server-Side Processing (Node.js example):

app.post('/typeform-webhook', async (req, res) => {
  const response = req.body.form_response;
  
  // Extract email and other fields
  const email = response.answers.find(a => a.field.type === 'email')?.email;
  const firstName = response.answers.find(a => a.field.id === 'field_2')?.text;
  
  // Send to Mailchimp
  const mailchimpData = {
    email_address: email,
    status: 'subscribed',
    merge_fields: {
      FNAME: firstName
    }
  };
  
  try {
    await mailchimp.lists.addListMember(audienceId, mailchimpData);
    res.status(200).send('OK');
  } catch (error) {
    console.error('Mailchimp error:', error);
    res.status(500).send('Error');
  }
});

This approach gives you complete control but requires maintaining server infrastructure and error handling.

Step 4: Field Mapping Best Practices

Standard Field Mapping:

For Complex Forms: Create custom merge fields in Mailchimp first, then map them. Go to AudienceSettingsAudience fields and merge tags to add custom fields.

Common custom fields I set up:

Tagging Strategy: Use tags to segment leads based on form responses. For example:

Testing & Verification

Test the integration every time you make changes:

  1. Submit a test form entry with fake but realistic data
  2. Check Mailchimp within 5 minutes — native integration is usually instant, Zapier can take 1-15 minutes
  3. Verify the contact landed in the right audience with correct field data
  4. Check that tags were applied correctly

Cross-check the numbers weekly: Compare Typeform submission count vs. new Mailchimp subscribers. They should match within 5-10% (some variance is normal due to duplicates and bounced emails).

Red flags that indicate problems:

Troubleshooting

Problem: Forms are submitting but no contacts appear in Mailchimp Check if the integration is still connected. Native integrations can disconnect if someone changes passwords or permissions. In Typeform, go to Connect tab and look for any authentication warnings.

Problem: Contacts are created but missing field data
Field mapping broke, usually because someone renamed fields in either Typeform or Mailchimp. Re-map the fields in your integration settings. For Zapier, check if any custom merge fields were deleted in Mailchimp.

Problem: Getting duplicate contacts for the same email Mailchimp should automatically handle duplicates, but if you’re seeing multiple entries, check if you have multiple integrations running simultaneously (e.g., both native integration AND Zapier). Turn off the duplicate connection.

Problem: Webhook integration stopped working Check your webhook endpoint logs for errors. Common issues: server downtime, API rate limiting, or webhook URL changed. Typeform will show webhook delivery failures in the Connect tab.

Problem: Only some form fields are syncing Usually a field mapping issue. Check that all Typeform fields are mapped to existing Mailchimp merge fields. If you’re using conditional logic, verify that all paths have proper field mapping configured.

Problem: Double opt-in emails not sending Check Mailchimp’s compliance settings and your audience double opt-in configuration. If you enabled double opt-in in the integration but disabled it at the audience level, contacts will be added as “pending” and never confirmed.

What To Do Next

Now that your Typeform leads are flowing into Mailchimp, consider these related integrations:

Want me to audit your current tracking setup for free? Get a tracking audit — I’ll check for integration gaps and missed conversion opportunities.

Also check out Typeform Google Ads Conversion Tracking to make sure you’re tracking these form submissions as conversions for your ad campaigns.

This guide is part of the Mailchimp Integrations Hub — comprehensive guides for connecting your lead sources to Mailchimp’s email marketing platform.