Migrate from Mailchimp
Move your contacts, lists, and email marketing from Mailchimp to GoodPostal. This guide walks through the entire process step by step.
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
Export contacts from Mailchimp
Download your audience data as CSV files from Mailchimp. - 2
Set up GoodPostal
Create your account, connect an email sending service, and verify your sender. See Getting Started for details. - 3
Import contacts
Upload the exported CSV files. GoodPostal recognizes Mailchimp column headers as they are. - 4
Rebuild your templates
Rebuild your Mailchimp designs in the GoodPostal editor, or have an AI assistant build them for you. - 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
Go to your Mailchimp audience
Navigate to Audience > All Contacts in Mailchimp. - 2
Export audience
Click Export Audience. Mailchimp will generate a ZIP file containing CSV files for subscribed, unsubscribed, and cleaned contacts. - 3
Download and extract
Download the ZIP file and extract it. You will primarily use the subscribed contacts file.
What GoodPostal Reads
Mailchimp exports columns named Email Address, First Name, Last Name, and any custom fields. GoodPostal recognizes the first three, so upload the file the way Mailchimp wrote it. Capitalization and stray spaces in the header row do not matter. The upload is refused only when no column maps to an email address.
Email Address,First Name,Last Name,Tags
jane@example.com,Jane,Doe,"newsletter, premium"
john@example.com,John,Smith,"newsletter"GoodPostal stores these fields: email (required), first_name, last_name, phone, address_line_1, address_line_2, city, state, zip_code, and country. It also accepts the common export spellings for them: Email Address, E-mail, E-mail Address, First Name, Last Name, Phone Number, Street Address, Address Line 1, Address Line 2, Zip, Zip Code, Postal Code, State/Province, and Country/Region. Every other column, including Tags, is ignored, so you can leave it in the file. You only need to edit a header when it falls outside that list. Custom fields do not come across in a CSV import; those are set through the GoodPostal API. The import dialog has a Download our CSV template link if you would rather start from the exact header row.
Step 2: Import into GoodPostal
- 1
Create contact groups
Before importing, create groups in GoodPostal that match your Mailchimp lists/tags (e.g., "Newsletter", "Premium"). - 2
Import subscribed contacts
On the Contacts page click Import and upload the subscribed contacts CSV exactly as Mailchimp exported it. - 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
Verify the import
Check that the contact count and group assignments match your expectations.
Step 3: Rebuild Your Templates
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
*|FNAME|* - First name
*|LNAME|* - Last name
*|EMAIL|* - Email address
*|UNSUB|* - Unsubscribe link
*|LIST:COMPANY|* - Company nameStep 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