CRM migration
Field-level mapping, validation, and rollback between Mailchimp and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Mailchimp
Source
Twenty CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Mailchimp and Twenty CRM.
Complexity
BStandard
Timeline
2-3 weeks
Try the reverse
Overview
Moving from Mailchimp to Twenty CRM is a shift from an email-marketing platform with contact-list features to a full CRM with Contacts, Companies, Opportunities, Tasks, and a native Activity timeline. The structural difference is that Mailchimp organizes data around Audiences (top-level containers) while Twenty CRM uses a workspace with Contacts, Companies, and custom objects. We resolve the Audience-to-workspace mapping during scoping, map standard contact fields and merge fields to Twenty's typed schema, and preserve Tags as labels on each Contact record. Suppressed and cleaned Mailchimp addresses are explicitly flagged at import time so they do not default to active status in Twenty. Mailchimp Automations, Sequences, and workflow logic do not migrate; we deliver a written inventory of each automation with its trigger, step count, and recommended CRM equivalent in Twenty. Campaign content migrates as a structured Note on each Contact with the campaign name, subject, send date, and engagement summary.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Source platform
Mailchimp platform overview
Scorecard, SWOT, gotchas, and pricing for Mailchimp.
Destination platform
Twenty CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Twenty CRM.
Data migration guide
The complete Twenty CRM migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Mailchimp migration guide
Understand the data you're exporting from Mailchimp before mapping it.
Destination checklist
Twenty CRM migration checklist
Pre- and post-cutover tasks for moving onto Twenty CRM.
Source checklist
Mailchimp migration checklist
Exit checklist for unwinding your Mailchimp setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Mailchimp object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Mailchimp
Audience
Twenty CRM
Workspace (single or multiple)
lossyMailchimp Audiences are top-level containers that hold contacts, tags, groups, segments, and merge fields with their own opt-in settings and GDPR compliance flags. Twenty CRM organizes data within a single workspace per deployment. For migrations with one Audience, we create a single workspace. For multi-Audience migrations, we assess whether contacts belong in one workspace (with a source_Audience label) or whether separate workspaces are warranted, and we preserve the original Audience name as a custom field mc_original_audience__c on each Contact record for audit and segmentation purposes.
Mailchimp
Contact
Twenty CRM
Contact
1:1Mailchimp Contact records map directly to Twenty CRM Contact. We map standard fields: email (EMAIL), first name (FNAME), last name (LNAME), phone (PHONE), address fields (CITY, STATE, COUNTRY, ZIP, ADDRESS fields). Subscription status (subscribed, unsubscribed, non-subscribed, cleaned) maps to a custom picklist field mc_subscription_status__c on Twenty Contact. GDPR consent flags (GDPR_consent, GDPR_consent_sent) map to a boolean field mc_gdpr_consent__c. Merge field values migrate to their corresponding custom fields in Twenty's Contact schema.
Mailchimp
Tag
Twenty CRM
Tag (on Contact)
1:1Mailchimp Tags are freeform labels applied to individual contacts. We export all tag names and their contact associations. Tags migrate 1:1 to Twenty CRM as labels on each Contact record. Twenty stores tags as a tag_ids array on the Contact object. We resolve each tag by name, creating the tag in Twenty if it does not already exist. Tags preserve the full contact-to-tag relationship so that segmentation logic in Twenty can reference the same tag set that was used in Mailchimp.
Mailchimp
Segment
Twenty CRM
Static Group or Filter
lossyMailchimp Segments are dynamic filter definitions applied to an Audience based on field conditions (tag, merge field value, engagement status, signup source). These depend on Mailchimp's query syntax which is not portable. We export the segment rules as structured JSON metadata and apply them as static filters in Twenty CRM at migration time where feasible, or document them as named Filters in Twenty's filter builder for the admin to recreate. For segments based on engagement history (opened, clicked, purchased), we convert the segment into a static Contact list in Twenty by querying the migrated engagement data.
Mailchimp
Group
Twenty CRM
Tag or Custom Field
lossyMailchimp Groups are category-based groupings within an Audience (e.g., a 'Product Interest' category with groups 'Widget A', 'Widget B'). Groups require their parent Category to exist first. We export both Category and Group names and preserve the relationship. If the group count is small (under 20 total), we map Groups to Tags in Twenty. If the group structure is complex or used for preference management, we map to a custom multi-select picklist field on Contact (e.g., product_interest__c with options 'Widget A', 'Widget B'). The customer's admin chooses the strategy during scoping.
Mailchimp
Merge Field
Twenty CRM
Custom Field (on Contact)
1:1Mailchimp Merge Fields are custom contact properties beyond the standard fields. We preserve all merge field names, types (text, number, date, address, phone, email, dropdown, radio, checkbox, birthday), and values per contact. We create equivalent custom fields in Twenty CRM's Contact schema before import, using the appropriate Twenty field type (text, number, date, select, multi-select, checkbox). Field display labels migrate as Twenty field labels; the original Mailchimp merge tag (e.g., *|FNAME|*) is noted in the field description for reference.
Mailchimp
Campaign
Twenty CRM
Note (on Contact)
1:1Mailchimp Campaign records represent sent emails, automations, or ads. We export campaign metadata (name, subject line, send date, recipient count, open rate, click rate, bounce count, unsubscribe count) as structured fields and attach a Campaign summary Note to each Contact in Twenty CRM who was a recipient. The Note includes the campaign name, send date, and a summary of the Contact's engagement (opened, clicked, bounced, unsubscribed). Full campaign content (HTML body) is exported separately as an HTML file and referenced in the Note for the admin to review.
Mailchimp
Automation
Twenty CRM
N/A (document only)
1:1Mailchimp's automation engine (Welcome emails, abandoned cart, birthday, post-purchase, date-based, API-triggered) stores workflow logic in a proprietary format with no export mechanism. We do not migrate automations as code. We inventory every active automation with its trigger type (e.g., 'Contact joins segment', 'Date arrives', 'API call'), step count, enrollment count, and action summary. We deliver this as a structured checklist with recommended equivalents in Twenty CRM's task and activity model. The customer's admin rebuilds automations manually or connects an external workflow tool (n8n, Zapier) using Twenty's REST API.
Mailchimp
Template
Twenty CRM
HTML export (no active mapping)
1:1Mailchimp email templates use Mailchimp-specific content block syntax (variables, images, dividers) that does not render natively in other platforms. We export templates as raw HTML files. In Twenty CRM, there is no native email templating feature in the core open-source release; teams that need email outreach templates typically connect a dedicated email sending tool (Gmail SMTP, Mailgun, Postmark) via Twenty's API or a Zapier/n8n integration. We flag which templates require visual rebuilding and note the original block structure for reference.
Mailchimp
Email Activity
Twenty CRM
Activity (on Contact)
1:1Mailchimp Email Activity tracks individual open, click, bounce, and unsubscribe events per contact. We export the last 90 days of activity by default. Each event becomes an Activity record in Twenty CRM attached to the Contact: opens and clicks as Activity with type 'Email interaction' and metadata (campaign name, timestamp, action), bounces as a status update to mc_subscription_status__c, unsubscribes as a status update plus an Activity record. Full history pagination across multiple API pages is handled during export to ensure no events are skipped.
Mailchimp
Suppressed Address
Twenty CRM
Exclusion list
lossyMailchimp suppressed and cleaned addresses (bounced, unsubscribed, compliance-cleaned) are flagged in our export with their suppression reason and date. We do not import suppressed records as active Contacts in Twenty CRM unless explicitly requested. We deliver a suppression list as a CSV of email addresses and suppression reasons. If the customer wants a complete historical record, we import suppressed records as Contacts with mc_subscription_status__c set to 'cleaned' or 'unsubscribed' so the status is visible in Twenty without counting toward active outreach.
Mailchimp
E-Commerce Data (Orders, Products, Customers)
Twenty CRM
N/A (requires separate integration)
1:1Orders, products, and customers synced via Mailchimp's e-commerce integration (Shopify, WooCommerce, BigCommerce) are only accessible while the connected store remains linked. If the customer migrates to Twenty CRM and intends to disconnect the Mailchimp store connection, we export e-commerce data to a structured CSV before the connection is severed. Twenty CRM has no native e-commerce connector in its core release; the customer will need to establish a new integration between their store and Twenty via API, Zapier, or a partner connector. We document the e-commerce data exported from Mailchimp and note the fields for mapping into any new e-commerce CRM integration.
| Mailchimp | Twenty CRM | Compatibility | |
|---|---|---|---|
| Audience | Workspace (single or multiple)lossy | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Tag | Tag (on Contact)1:1 | Fully supported | |
| Segment | Static Group or Filterlossy | Fully supported | |
| Group | Tag or Custom Fieldlossy | Fully supported | |
| Merge Field | Custom Field (on Contact)1:1 | Fully supported | |
| Campaign | Note (on Contact)1:1 | Fully supported | |
| Automation | N/A (document only)1:1 | Fully supported | |
| Template | HTML export (no active mapping)1:1 | Fully supported | |
| Email Activity | Activity (on Contact)1:1 | Mapping required | |
| Suppressed Address | Exclusion listlossy | Fully supported | |
| E-Commerce Data (Orders, Products, Customers) | N/A (requires separate integration)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Mailchimp gotchas
Contact count includes unsubscribed and non-subscribed records
Automation workflows cannot be exported
Account suspensions trigger silently during migration
Template HTML is Mailchimp-specific and may not render in other platforms
E-commerce data requires active store connection
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
Discovery and Audience audit
We audit every Mailchimp Audience in the account: total contact count, subscription status breakdown (subscribed, unsubscribed, non-subscribed, cleaned), merge field count and types, active segment definitions, active automation inventory, tag and group taxonomy, campaign history volume, and any connected e-commerce store. We also identify API key status (account-level or user-specific) and confirm that the API key remains active and has no IP restrictions that would block our export process. The discovery output is a written scope document with Audience-to-workspace mapping recommendations, a suppression list preview, and an automation inventory checklist.
Workspace and schema design in Twenty CRM
We design the destination schema in Twenty CRM based on the Mailchimp audit. For single-Audience migrations, we create one Twenty workspace. For multi-Audience migrations, we confirm the customer's choice between one workspace with source labels or multiple workspaces with data isolation. We pre-create custom fields on the Contact object for every Mailchimp merge field, the mc_subscription_status__c picklist, the mc_gdpr_consent__c boolean, and the mc_original_audience__c text field. Tags are created in Twenty before contact import so that tag IDs are available for assignment during the bulk insert phase.
Suppression list extraction and contact filtering
We export the full suppressed address list from Mailchimp before the active contact export. Suppressed records (bounced, unsubscribed, compliance-cleaned) are held in a separate CSV with their reason and date. Active contact export runs against the subscribed and non-subscribed Mailchimp segments. We apply the subscription status mapping so that unsubscribed and non-subscribed contacts land in Twenty with the correct mc_subscription_status__c value rather than defaulting to active. The suppression CSV is delivered alongside the migration as an exclusion list for the customer's email sending tool.
Contact, tag, and merge field migration
We export all contacts from each Mailchimp Audience using the Marketing API, paginating across all records and resolving any API rate-limit responses with exponential backoff. Merge field values export per contact and map to the pre-created custom fields in Twenty. Tags resolve by name — creating new Tags in Twenty if they do not exist — and attach to each Contact record at insert time. Groups migrate to Tags or a custom multi-select field based on the customer's scoping choice. The insert uses Twenty's REST API with batch chunking to handle large contact volumes without timeouts.
Campaign engagement history and activity timeline migration
We export email activity (opens, clicks, bounces, unsubscribes) per contact for the trailing 90-day window using Mailchimp's activity endpoint with full pagination. Each engagement event becomes an Activity record in Twenty CRM attached to the relevant Contact: opens and clicks as Email interaction activities with campaign metadata, bounces and unsubscribes as status-change activities. Campaign metadata (subject, send date, recipient count, aggregate open/click/bounce rates) attaches as a summary Note on each recipient Contact. Full campaign HTML content is exported as separate HTML files referenced in the Notes.
Automation inventory and template handoff
We deliver the automation inventory checklist: every active Mailchimp automation with its trigger type, step count, enrollment criteria, and action summary. We do not rebuild automations in Twenty CRM because the platform's core open-source release does not include a visual workflow builder. We recommend connecting an external automation tool (n8n, Make, Zapier) to Twenty's REST API for workflow reconstruction. We also deliver exported HTML files for each Mailchimp template with a note flagging any Mailchimp-specific block syntax that requires manual rebuilding in the customer's chosen email sending tool.
Cutover, validation, and e-commerce coordination
We pause new Mailchimp writes during cutover and run a final delta export of any contacts modified during the migration window. We validate Twenty CRM by spot-checking contact counts against Mailchimp totals, verifying field mapping on 25-50 randomly sampled records, confirming tag distributions, and validating subscription status flags against the original suppression list. If the customer has an e-commerce store connected to Mailchimp, we coordinate the final e-commerce data extraction before the store connection is updated. We deliver a reconciliation report and a post-migration guide documenting any manual steps the customer's admin must complete (e.g., connecting an email sending tool, rebuilding automations in an external workflow tool).
Platform deep dives
Mailchimp
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Mailchimp and Twenty CRM.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Mailchimp: Not publicly documented; varies by plan tier and request type.
Data volume sensitivity
Mailchimp exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Mailchimp to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Mailchimp to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Mailchimp
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.