Migrate from Mailchimp

Move your contacts, lists, and email marketing from Mailchimp to GoodPostal. This guide walks through the entire process step by step.

Tip
Migrating to GoodPostal means predictable, transparent pricing: $19 a month plus 5 cents per 1,000 emails sent, with unlimited contacts. Your list can grow without your bill jumping. See pricing for the full breakdown of what is included.

Migration Overview

The migration process involves exporting your data from Mailchimp and importing it into GoodPostal. Plan for about 30 minutes for a typical migration.

  1. 1

    Export contacts from Mailchimp

    Download your audience data as CSV files from Mailchimp.
  2. 2

    Set up GoodPostal

    Create your account, connect an email sending service, and verify your sender. See Getting Started for details.
  3. 3

    Import contacts

    Rename the exported CSV headers to match GoodPostal, then upload the files.
  4. 4

    Rebuild your templates

    Rebuild your Mailchimp designs in the GoodPostal editor, or have an AI assistant build them for you.
  5. 5

    Finish your setup

    Verify your sender, and add a tracking domain if you want click and open links on your own subdomain.

Step 1: Export from Mailchimp

Exporting Contacts

  1. 1

    Go to your Mailchimp audience

    Navigate to Audience > All Contacts in Mailchimp.
  2. 2

    Export audience

    Click Export Audience. Mailchimp will generate a ZIP file containing CSV files for subscribed, unsubscribed, and cleaned contacts.
  3. 3

    Download and extract

    Download the ZIP file and extract it. You will primarily use the subscribed contacts file.

Rename the Columns First

Mailchimp exports columns named Email Address, First Name, Last Name, and any custom fields. GoodPostal reads columns by exact name, so rename the headers in a spreadsheet before you upload. A file without a column literally named email is rejected, and a First Name column imports as blank.

Rename the header row before uploading
csv
Email Address,First Name,Last Name,Tags
jane@example.com,Jane,Doe,"newsletter, premium"
john@example.com,John,Smith,"newsletter"

GoodPostal reads these columns: email (required), first_name, last_name, phone, address_line_1, address_line_2, city, state, zip_code, and country. Anything else is ignored. The import dialog has a Download our CSV template link if you would rather start from the right header row.

Note
Mailchimp tags are a good basis for GoodPostal contact groups. Split the export into one file per tag, import them one at a time, then put each batch in its group after the import.

Step 2: Import into GoodPostal

  1. 1

    Create contact groups

    Before importing, create groups in GoodPostal that match your Mailchimp lists/tags (e.g., "Newsletter", "Premium").
  2. 2

    Import subscribed contacts

    On the Contacts page click Import and upload the subscribed contacts CSV, with its headers already renamed.
  3. 3

    Put the new contacts in their group

    The import itself has no group selector. After it finishes, select the imported contacts in the Contacts list and use Add to Group.
  4. 4

    Verify the import

    Check that the contact count and group assignments match your expectations.
Warning
Do not import unsubscribed or cleaned contacts. These contacts have opted out or bounced and should not be re-added to your active list. This violates anti-spam regulations.

Step 3: Rebuild Your Templates

Warning
Pasting a Mailchimp HTML export into GoodPostal does not work. Mailchimp exports are table-based layouts, and GoodPostal's Code Mode only understands its own block markup, so the layout is dropped rather than converted. Code Mode is for hand-editing templates GoodPostal built, not for importing a design from elsewhere.

Option A: Have an AI assistant build it

Connect GoodPostal to Claude, ChatGPT, or another AI tool and describe the design, or point it at a screenshot of the Mailchimp original. See AI Integration. This is usually the fastest way to reproduce an existing layout.

Option B: Rebuild in the drag-and-drop editor

Use GoodPostal's editor and its component library to assemble the design yourself. This is a good option if your Mailchimp templates were due for a refresh anyway.

Merge Tag Mapping

Wherever your Mailchimp design used a merge tag, use the GoodPostal equivalent:

  • Replace Mailchimp merge tags (*|FNAME|*) with GoodPostal merge tags ({{ first_name }})
  • Replace *|UNSUB|* with {{ unsubscribe_url }}
  • Remove any Mailchimp-specific tracking code
Merge tag mapping
*|FNAME|*    - First name
*|LNAME|*    - Last name
*|EMAIL|*    - Email address
*|UNSUB|*    - Unsubscribe link
*|LIST:COMPANY|* - Company name

Step 4: Finish Your Setup

  • Sender identity - Set up your sender name and email in GoodPostal to match what your subscribers expect, then verify it
  • Tracking domain - Optional for most sending services. Add one if you want click and open links on your own subdomain, or if GoodPostal tells you a campaign is blocked without it. See Tracking Domain
  • Your own webhooks - If external services were subscribed to Mailchimp's webhooks, point them at GoodPostal instead. GoodPostal sets up its own webhook with your sending service automatically; that part needs nothing from you and involves no DNS changes

Post-Migration Checklist

  • Contact count matches between Mailchimp and GoodPostal
  • Groups are organized correctly
  • Email sending service is connected and verified
  • Templates are imported and tested
  • Test email sent successfully
  • Mailchimp subscription paused or cancelled
Tip
Keep your Mailchimp account active for a few weeks after migration until you have confirmed everything is working in GoodPostal. Then you can safely downgrade or close your Mailchimp account.

Join our newsletter

Keep up with the latest from GoodPostal. No spam, just the good stuff.

We care about your data. Read our privacy policy.