CRM migration
Field-level mapping, validation, and rollback between Odoo Marketing Automation and Mailchimp. We move data and schema; workflows are rebuilt natively in Mailchimp.
Odoo Marketing Automation
Source
Mailchimp
Destination
Compatibility
6 of 9
objects map 1:1 between Odoo Marketing Automation and Mailchimp.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Odoo Marketing Automation is a module within a full ERP suite; Mailchimp is a dedicated email marketing and automation platform. The fundamental shift is moving from a general business management tool to a specialized marketing platform with enterprise-grade deliverability, audience segmentation, and visual automation flows. We migrate contacts (with tags as merge-field arrays), email templates (preserving HTML body), and mass mailing records (reconstructed as Mailchimp campaigns with send history). Automation rules with time-based triggers or email-event triggers are inventoried and documented for rebuild in Mailchimp's Automation Builder. Any rule containing a Python Code activity is flagged as a manual-rebuild item because it references Odoo server-side methods. Odoo's Opportunities, Leads, and custom CRM fields have no direct Mailchimp equivalent; we document these records for the customer's admin to handle separately or exclude from scope. Mailchimp's REST API (available on all paid plans) replaces Odoo's XML-RPC which required the Custom plan upgrade at $61 per user per month.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Odoo Marketing Automation object lands in Mailchimp, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Odoo Marketing Automation
Contact
Mailchimp
Subscriber (Audience Member)
1:1Odoo CRM Contacts map to Mailchimp subscribers within a target Audience. We map name (split into FNAME and LNAME merge fields), email, phone, company (mapped to COMPANY merge field), and tags (flattened to Mailchimp tags). The primary email address is the dedupe key during import. Contacts with no email address are excluded and documented in a reconciliation report because Mailchimp requires a valid email for subscriber records.
Odoo Marketing Automation
Lead
Mailchimp
Subscriber (Audience Member)
1:1Odoo CRM Leads map to the same Mailchimp Audience as Contacts. Leads and Contacts share Odoo's unified partner model, so we pull both from res.partner with a filter on lead-specific fields (lead_id, stage_id) to identify which records originated as Leads versus Contacts. We preserve the Odoo Lead stage in a custom merge field odoo_lead_stage__c for reference.
Odoo Marketing Automation
Campaign
Mailchimp
Campaign
1:1Odoo Marketing Automation Campaigns map to Mailchimp Campaigns. We migrate campaign name, target model filter (Contact, Lead), and audience domain filter as a Mailchimp segment definition. Campaign state (active, draft, archived) maps to Mailchimp campaign status. The activity trace logs (which contacts entered the campaign) are documented as a written record rather than migrated as a data entity because Mailchimp does not store enrollment history in the same structure.
Odoo Marketing Automation
Email Template
Mailchimp
Template
1:1Odoo Email Marketing templates migrate to Mailchimp Templates. We preserve template name, subject line, and HTML body. Inline images and variable placeholders are preserved where they use standard Odoo Jinja2 syntax; custom variable tokens may require reformatting in Mailchimp's template editor. The template type (standard versus automation-triggered) is noted in the migration inventory.
Odoo Marketing Automation
Mass Mailing
Mailchimp
Campaign (Regular or Automation)
1:1Odoo Mass Mailings map to Mailchimp Regular Campaigns with send history preserved in a migration log. Subject, body HTML, scheduled date, and recipient count transfer to Mailchimp campaign records. Recipient lists are resolved via the Contact and Lead dedupe mapping before send. Any Odoo mass mailing marked as a test send is flagged and excluded from the campaign migration inventory.
Odoo Marketing Automation
Automation Rule (time-based or email-event trigger)
Mailchimp
Automation (Customer Journey or Classic Automation)
lossyOdoo Automation Rules with time-based triggers or email-event triggers (opened, clicked, replied) are documented in a written inventory for rebuild in Mailchimp Automation Builder. Each rule entry includes trigger type, filter domain, activity chain (send email, update record), and timing configuration. This inventory serves as the handoff document for the customer's marketing team to reconstruct in Mailchimp's visual builder. Rules with Python Code activities are excluded from the inventory and flagged separately as manual-rebuild items requiring developer involvement.
Odoo Marketing Automation
Workflow Activity
Mailchimp
Automation Step (action or delay)
lossyIndividual Odoo workflow activities (Send Email, Update Record, Create Task, SMS) map to Mailchimp Automation steps. We document each step's activity type, timing (delay in days or hours), template reference (resolved via the template mapping), and child activity link (for multi-step sequences). The customer uses this step inventory to rebuild the sequence in Mailchimp's Automation Builder because workflow metadata does not transfer as executable code across platforms.
Odoo Marketing Automation
Tag
Mailchimp
Tag
1:1Odoo tags on Contacts and Leads migrate as Mailchimp tags. Tags are stored as string arrays on the subscriber record. We preserve all tag names exactly and map them to Mailchimp tags using the Tags API endpoint after subscriber import completes. Tags used for segmentation in Odoo campaigns map directly to Mailchimp segment filters.
Odoo Marketing Automation
Custom Field
Mailchimp
Merge Field
lossyOdoo custom fields (added via Odoo Studio or ir.model.fields) migrate as Mailchimp merge fields. We map the field label to the merge field name, the Odoo field type to the nearest Mailchimp merge field type (TEXT, NUMBER, DATE, ADDRESS, PHONE), and the field value to the subscriber's merge field value. Any many2one or relational field in Odoo is flattened to the target record's display name. Merge fields must be created in Mailchimp before subscriber import so that values can be written during the upsert step.
| Odoo Marketing Automation | Mailchimp | Compatibility | |
|---|---|---|---|
| Contact | Subscriber (Audience Member)1:1 | Fully supported | |
| Lead | Subscriber (Audience Member)1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Email Template | Template1:1 | Fully supported | |
| Mass Mailing | Campaign (Regular or Automation)1:1 | Fully supported | |
| Automation Rule (time-based or email-event trigger) | Automation (Customer Journey or Classic Automation)lossy | Fully supported | |
| Workflow Activity | Automation Step (action or delay)lossy | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Custom Field | Merge Fieldlossy | 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.
Odoo Marketing Automation gotchas
External API access is gated behind the Custom plan
Automation rules with Python server actions cannot replay on non-Odoo destinations
No native conversion tracking within Marketing Automation
Two dependent apps must both be installed for full feature access
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
Pair-specific challenges
Migration approach
Discovery and app confirmation
We audit the source Odoo database across plan tier (Standard or Custom), active apps (Email Marketing, Marketing Automation, SMS Marketing), record counts (Contacts, Leads, Campaigns, Mass Mailings, Templates), and automation rule inventory. We confirm API availability (XML-RPC on Custom plan versus CSV export fallback on Standard). We inspect every automation rule for Python Code activities and categorize rules by trigger type (time-based, email-event, server-action). The discovery output is a written migration scope with record counts and a go/no-go on API-based extraction.
Mailchimp audience and merge field pre-configuration
We create the destination Mailchimp Audience (or confirm the target existing Audience) and pre-create all required merge fields via the Mailchimp Marketing API before any subscriber import begins. Merge field names are derived from Odoo custom field labels, with types mapped to the nearest Mailchimp supported type. We verify API credentials, confirm account and list ID, and document the audience structure in the mapping sheet.
Contact and Lead extraction with deduplication
We extract Contacts and Leads from Odoo (via XML-RPC on Custom plan or CSV export on Standard plan). We deduplicate by email address, resolving conflicts where the same email exists as both a Contact and a Lead in the Odoo database. We exclude records with missing or malformed email addresses and document them in a reconciliation report. Tags are extracted as string arrays and prepared for Mailchimp Tags API upsert after subscriber creation.
Template and campaign inventory
We extract all Email Templates from Odoo (HTML body, subject, inline images) and all Campaigns (name, audience domain filter, state). We match each Campaign to its associated Mass Mailing records and preserve send history as a written migration log. Template HTML is cleaned of Odoo-specific Jinja2 variable syntax and prepared for import as Mailchimp template content. We create Mailchimp Templates via the API and map each Odoo template to its Mailchimp counterpart.
Automation rule inventory and rebuild documentation
We document every Odoo Automation Rule in a written inventory that the customer's marketing team uses to rebuild in Mailchimp Automation Builder. Each entry includes rule name, trigger type, filter domain, activity chain with timing, and template reference. Rules containing Python Code activities are flagged separately with a note that they require a custom integration or external workflow tool to replicate. We do not migrate automation rules as executable code; the inventory is the deliverable.
Production migration and template send
We run production migration in this order: merge field creation, subscriber import (with tag upsert), template import, campaign reconstruction (with send history log), and automation inventory delivery. Each phase emits a reconciliation report with row counts. We perform a delta check before finalizing to capture any records modified during the migration window. The automation inventory document is handed off to the customer's marketing team for rebuild in Mailchimp Automation Builder. We do not rebuild Odoo automations in Mailchimp as part of standard migration scope.
Platform deep dives
Odoo Marketing Automation
Source
Strengths
Weaknesses
Mailchimp
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 Odoo Marketing Automation and Mailchimp.
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
Odoo Marketing Automation: Not publicly documented by Odoo.
Data volume sensitivity
Odoo Marketing Automation doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Odoo Marketing Automation to Mailchimp migration scoping. Not seeing yours? Book a call.
Walk through your Odoo Marketing Automation to Mailchimp migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Odoo Marketing Automation
Other ways to arrive at Mailchimp
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.