New: campaigns, automations and product emails in the same account. Meet Postal
Sign in Create account

From Mailchimp to Postal, without reactivating people who left the list

Export your audience, separate who can receive from who can't, and import into Postal. You rebuild templates, campaigns, automations and forms, and this guide shows how.

Data format
CSV
Where each contact stands
4 statuses
Automations and forms
Redo
Per imported file
20 MB

Overview

What comes along and what you redo

The contact base comes as a CSV file. You recreate the rest in Postal, with this guide beside you. Nothing happens on its own: you export, check and import.

Comes as a file

Subscribed contacts, name, custom fields, tags and who unsubscribed. The file also includes the signup date and IP, which help record consent.

You rebuild in Postal

Templates (the HTML comes over, the design not always), campaigns, automations and signup forms. This guide says where each thing lives.

Stays in Mailchimp

Each contact's open and click history, reports and old campaigns. Download whatever you want to keep before closing your account.

Equivalence

The same concepts, other names

What Mailchimp calls one thing, Postal may call something else. Use this table as a dictionary during the move.

In MailchimpOn PostalHow it works on Postal
AudienceAudienceContacts, segments, tags, topics and properties in one place. Each email appears once per team.
SubscribedSubscribed contactA contact who isn't unsubscribed.
UnsubscribedUnsubscribedDoesn't receive campaigns or automation emails, whatever the topic.
CleanedSuppression listAddresses that must not receive anything. They're removed from all sending and never become contacts.
Non-subscribedNo equivalentPeople who gave their email but didn't agree to receive marketing shouldn't enter the audience.
TagsTagsMark contacts without needing a segment. Useful in filters and automations.
GroupsTopicsSubjects the contact chooses to receive or not, on the preferences page that opens from the unsubscribe link.
Audience fieldsPropertiesCustom fields with a type: text, number, yes/no or date. Up to 100 per team.
SegmentsSegmentsStatic (a list built by hand or by import) or dynamic (by filters, updated automatically, depending on the plan).
CampaignsCampaignsSending to a segment, and, if you want, only to those subscribed to a topic.
TemplatesTemplatesVisual editor or HTML.
Automation flows (formerly Customer Journeys)AutomationsA trigger and steps: wait, send email, condition, change the contact.
Signup formsFormsA ready-made page or one on your site, with email confirmation (double opt-in).
ReportsReportsDeliveries, opens, clicks and unsubscribes per campaign, from the first send on Postal.
1

Prepare the move

Before exporting, agree on who does what. Don't close Mailchimp yet: you'll need it until the end.

  • Whoever exports must be an Owner or Admin of the Mailchimp account.
  • Create your Postal account. See your plan's contact limit on Pricing: the Free plan has 1,000 contacts, Pro 5,000 and Scale 50,000.
  • Make a list of what exists in Mailchimp: audiences, groups, tags, saved segments, templates, campaigns, automations and forms.
  • If you have more than one audience, remember that in Postal each email is a single contact per team. Merge what makes sense and use segments to separate them.
  • Whoever manages your site or domain will need to publish a few DNS records (next step).
2

Verify the sending domain

For Postal to send on behalf of your brand, the domain must be verified. In Domains, Postal shows a few records for whoever manages DNS to copy, and checks them on its own for up to 72 hours, flagging what's wrong.

  • Prefer a subdomain just for marketing, like news.exemplo.com.br. That way, whatever happens with your campaigns does not affect your system's emails.
  • Check whether any existing record has the same name before you publish the new ones.
  • Names are relative to the domain. If your DNS panel complains about a repeated domain, remove it from the name. The details are in Domains and DNS.
3

Export your audience from Mailchimp

In Mailchimp, open Audience, click Export audience, then Export CSV. The file may arrive as a ZIP with one CSV for each type of contact.

AudienceExport audienceExport CSVDownload the ZIP from your account
  • The file includes the audience fields, tags (TAGS), the date and IP of the signup (OPTIN_TIME and OPTIN_IP) and those of the confirmation (CONFIRM_TIME and CONFIRM_IP).
  • According to Mailchimp, the file does not include: opens and clicks, purchases, language and signup source.
  • You can also export just one segment, tag or group with Export segment.
  • The file stays available in your account for 30 days.
  • If accents look wrong in Excel, do not save over the file: Postal reads files in UTF-8 and Windows-1252.
4

Sort by status: consent comes first

Mailchimp splits contacts into four statuses, and each one goes to a different place in Postal. This is where you protect the people who asked to leave.

SubscribedImport

They agreed to receive.

Import as contacts.

UnsubscribedImport with “sim” (yes)

They received your campaigns and asked to leave.

Import them marked as unsubscribed so Postal remembers. Never as subscribed.

CleanedSuppress

Addresses with a permanent or repeated error (bounce).

Put them on the suppression list. Do not import them as contacts.

Non-subscribedDon't import

They gave their email but did not agree to marketing.

Leave them out of campaigns.

  • Unsubscribed: in their file, leave an Unsubscribed column filled with sim in every row and map that column to the Unsubscribed (yes/no) field in the import.
  • Subscribed: do not map the Unsubscribed column. For people already in Postal, the value in the file wins: a “no” would reactivate someone who already left.
  • Cleaned: during import, Postal ignores addresses that are on the suppression list. To suppress a large list, use the API (POST /suppressions/batch/add, 100 at a time) with help from whoever looks after your system; in the dashboard, Suppressions accepts one address at a time. Without the API, import the cleaned contacts along with the unsubscribed ones: they will never receive campaigns, but they take up a spot in your plan's contact limit.
  • Non-subscribed: the safe default is to leave them out. If you have another legal basis for contacting them, the decision is yours and it must be documented.
5

Import into Postal

In Audience, on the Contacts tab, click Import CSV. Choose the file, say which field each column matches and check the preview before importing. The import runs in the background and you can follow the result.

  • First create the Properties for the custom fields you want to keep, such as city or date of last purchase. The types are text, number, yes/no and date.
  • The tags column accepts names separated by commas or semicolons. Any that do not exist are created.
  • Mailchimp groups can become Topics. The simplest way is to export each group as a segment and import each file, selecting the topic in Subscribe to topics. That field subscribes every contact in the file.
  • Leave the Trigger automations option off. When it is on, each new contact can start automations, and a large list may receive the welcome sequence all at once.
  • Contacts that already exist are updated by email. Empty cells do not erase values, and repeated emails in the file count only the first time. Rows with errors appear in the result.
  • Each file can be up to 20 MB: split larger ones. The import stops when your plan's contact limit is reached.
  • Keep the consent record: create properties such as origem and data_inscricao and import the signup date and IP into them. The date type stores only the day.
  • Before sending, run the list through Email validation, which flags invalid and risky addresses.
6

Rebuild templates and campaigns

Templates and campaigns do not carry over on their own. What you can take with you is the HTML, and the rest has to be rebuilt.

Personalization tags (merge tags)
In MailchimpOn PostalNote
*|FNAME|*{{{FIRST_NAME}}}Accepts a default value: {{{FIRST_NAME|cliente}}}.
*|LNAME|*{{{LAST_NAME}}}
*|EMAIL|*{{{EMAIL}}}
A field of your own, like *|CIDADE|*{{{contact.cidade}}}The property must exist. Its key is what counts.
*|UNSUB|*{{{POSTAL_UNSUBSCRIBE_URL}}}Without the variable, Postal adds an unsubscribe footer at the end of the email.
*|UPDATE_PROFILE|*{{{POSTAL_UNSUBSCRIBE_URL}}}The preferences page covers unsubscribing from everything, resubscribing and choosing topics.
*|ARCHIVE|*, *|FORWARD|*No equivalentRemove these links from the email.
*|MC:SUBJECT|*, *|CURRENT_YEAR|*, *|LIST:NAME|*, *|LIST:COMPANY|*No equivalentWrite the text directly.
  • Templates coded in Mailchimp: in Campaigns > Email templates, open More options and choose Export as template to download the HTML. According to Mailchimp, drag-and-drop editor templates cannot be exported this way.
  • The full account export brings a folder with the HTML of templates and campaign emails. Only one is allowed per 24 hours and it can take up to 24 hours. Check what came through, because Mailchimp does not detail the case of drag-and-drop templates.
  • In Postal, under Templates, build the email in the visual editor or paste the HTML. Campaigns also accept HTML. If the HTML points to Mailchimp images, upload the images again before closing your account.
  • To rebuild a campaign, open Campaigns and choose the segment (and, if you want, the topic), the sender from a verified domain, the subject and the preview text. Send a test and schedule it.
  • Who receives it: only contacts in the segment who are not unsubscribed, not on the suppression list and, if there is a topic, subscribed to it.
  • Campaigns already sent are not imported. Keep the HTML and the reports: in Mailchimp, View analytics > Download All Reports generates an export of campaign reports (automations are left out, and the file does not show who opened or clicked). Postal keeps emails, events and logs for 30 days.
7

Rebuild the automations

Mailchimp's documentation only describes copying an automation within the same account. We did not find an export to another platform, so treat each flow as new and use the chance to review what still makes sense.

Trigger: contact createdWait 1 daySend: welcomeWait for open (3 days)Send: reminder
The most common flows
Flow in MailchimpHow it looks in Postal
Welcome for new subscribersContact created or form submitted trigger, a wait and the email.
Sequence from a tagTag received trigger.
Someone joins an interest groupTopic subscription or segment entry trigger.
Opened or clickedOpen or click trigger, or the step that waits for the contact to open, click or reply.
Abandoned cart and store ordersTrigger for an event sent by your system, which requires a developer. The ready-made integrations are Stripe, Supabase, Clerk, Auth0 and Firebase, with no store platforms.
  • The available steps are wait, send email, check a condition, change the contact and call a webhook. A/B testing depends on the plan.
  • Imports don't start automations unless you turn that option on. Review who would enter before you activate it.
  • Each plan has a monthly limit of runs. See Automations.
8

Rebuild your signup forms

Hosted, embedded and pop-up forms keep sending people to Mailchimp for as long as they stay live. Recreate each one in Postal and swap the address or the code on your site.

  • Under Forms, use the ready-made page (forms.postal.so/seu-nome) or submit from your own site.
  • Turn on double opt-in: the person confirms their email before joining the audience.
  • A consent field stores the date and IP of the opt-in. Each answer can be saved to a property, subscribe the person to topics and add them to a segment.
  • Only turn off the Mailchimp form after the new one is live and tested. See Forms.
9

Check what does not migrate and the consent

Before the first campaign, look over this table and the consent checklist. It applies to any list you bring from another platform.

What migrates and what does not
ItemDoes it come to Postal?What to do
Subscribed contactsYes, via CSVImport in Audience > Contacts.
UnsubscribedYes, via CSV, markedImport with Unsubscribed = yes.
CleanedNot as contactsPut on the suppression list.
Non-subscribedNoLeave out of campaigns.
Tags and custom fieldsYesFile columns; create the properties first.
GroupsPartlyExport each group as a segment and import into the topic.
Segment rulesNo, only the contactsRebuild the filters in dynamic segments.
TemplatesPartlyThe HTML of coded templates; drag-and-drop ones may need to be rebuilt.
Sent campaignsNoKeep the HTML and the report.
Automations and formsNoRefazer.
Opens and clicks for each contactNoMailchimp's contacts file does not include them.
Landing pages, ads and websiteNoMailchimp does not export them.

Consent and LGPD

  • I imported as contacts only those who were subscribed in Mailchimp.
  • People who were unsubscribed came in as unsubscribed, and I did not import a spreadsheet with “no” in the Unsubscribed column on top of them.
  • Cleaned addresses are on the suppression list or came in as unsubscribed.
  • I did not import non-subscribed contacts as if they had agreed to marketing.
  • I kept where each contact came from and when they signed up, so I can show the legal basis for sending.
  • The option to trigger automations was off during the import, and the automations were reviewed.
  • Every email carries the unsubscribe link, and I tested mine on a real address.
  • The new form uses double opt-in and the consent text is clear.
  • The first send goes to the most engaged segment, and volume grows gradually.
  • I kept the reports and the HTML of old campaigns before closing the Mailchimp account.

Frequently asked questions

Do I need to keep Mailchimp during the migration?

Yes, until you finish: export, import, check, and have new forms and automations live. According to Mailchimp, a deleted audience can no longer be exported. Also download the reports and the HTML of your campaigns before closing the account.

Can I import people who unsubscribed, just so Postal remembers them?

Yes, and it is recommended. Import the unsubscribed file with the Unsubscribed column set to sim. They take up a spot in your plan's contact limit, but they never receive campaigns.

Do cleaned contacts start receiving emails again?

No. Addresses on the suppression list never become contacts and are removed from every send. If the person corrected their address, add the new address as a contact.

My list is bigger than my plan's limit. Now what?

The import stops when the contact limit is reached and tells you in the result. See the plans on Pricing or talk to us through the contact form before importing.

Want to try Postal?

Create your account and start on the Free plan.