CRM migration
Field-level mapping, validation, and rollback between Odoo Marketing Automation and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Odoo Marketing Automation
Source
Nutshell
Destination
Compatibility
7 of 9
objects map 1:1 between Odoo Marketing Automation and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Odoo Marketing Automation to Nutshell is a consolidation into a simpler, dedicated sales CRM. Odoo Marketing Automation is not a standalone product; it requires the Email Marketing app and optionally the SMS Marketing app, and its automation rules read directly from CRM Contacts and Leads. Nutshell combines contact management, sales pipeline, and email sequences in a single flat interface without the ERP-layer complexity that Odoo introduces. We extract Campaigns and Automation Rule metadata via Odoo's XML-RPC External API (Custom plan, $61/user/month) or via native CSV/XLS export from list views for Standard-plan databases, resolve the target model and audience domain filters, and load them as Nutshell People, Companies, and pipeline stages. Any automation rule containing a Python Code activity is flagged as a manual-rebuild item because those server-action blocks reference Odoo models with no Nutshell equivalent. We do not migrate Odoo Workflows, Email Sequences, or Forms; we deliver a written inventory of these for the customer's admin to rebuild in Nutshell's sequence and task-automation tools.
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 Nutshell, 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
Nutshell
Person
1:1Odoo CRM Contacts map directly to Nutshell People. We extract name, email, phone, company (partner_id), tags, and custom fields from the res.partner model. Odoo stores tags in a separate ir.attachment model; we flatten them to a string array and reassign by name on the Nutshell People record. The migration dedupes on email address and preserves the original Odoo contact ID in a custom field for audit.
Odoo Marketing Automation
Lead
Nutshell
Person (Lead status)
1:1Odoo CRM Leads map to Nutshell People with the lead flag set. We extract name, email, phone, stage, priority, expected closing date, and source from crm.lead. Odoo unifies Leads and Contacts under the res.partner model, so we treat any record where type is 'lead' as a Nutshell Person in lead status. Stage names migrate as custom fields and are reconciled against the customer's Nutshell pipeline stages during scoping.
Odoo Marketing Automation
Campaign
Nutshell
Task (Campaign reference)
1:1Odoo Marketing Automation Campaigns map to Nutshell Task records with a campaign reference tag. We extract campaign name, target model (Contact, Lead, Sales Order), audience domain filter, and campaign state. The audience domain filter does not replay on Nutshell; we document the original filter logic as a written item for the customer to manually configure Nutshell's People segmentation or sequence enrollment rules. Campaign traces and activity logs are migrated as Task records attached to the relevant People.
Odoo Marketing Automation
Automation Rule
Nutshell
Sequence or Task (documented only)
lossyOdoo Automation Rules map to Nutshell Sequences or are documented as manual-rebuild items depending on their complexity. We extract rule name, trigger type (time-based, email event, server action), filter domain, and action chain. Rules containing Python Code activities are flagged as manual-rebuild items because those server-action blocks reference Odoo models with no Nutshell equivalent. Simple time-triggered and email-event-triggered rules with Send Email or Update Record actions are documented with their trigger logic and recommended Nutshell Sequence equivalent.
Odoo Marketing Automation
Mass Mailing
Nutshell
Email Template (documented)
lossyOdoo Mass Mailings from the Email Marketing app migrate as Nutshell Email Template records. We extract subject, body HTML, scheduled date, and recipient count. Recipient lists are resolved via Contact or Lead domain queries at migration time; we do not preserve the live mailing list as a dynamic segment because Nutshell's template model is static. HTML body and inline images are preserved as template content for the customer to use in future Nutshell sequences.
Odoo Marketing Automation
Email Template
Nutshell
Email Template
1:1Odoo Email Templates used by both Email Marketing and Marketing Automation migrate to Nutshell Email Templates. We extract template name, subject, body HTML, and attachment references. Inline images and variable placeholders are preserved. The customer manually maps Odoo's {{object.field}} variable syntax to Nutshell's merge field syntax during the template review step.
Odoo Marketing Automation
Opportunity
Nutshell
Account / Pipeline
1:1Odoo Opportunities (crm.lead with type 'opportunity') map to Nutshell Accounts and pipeline entries. We extract opportunity name, stage, expected revenue, partner, and lost reason. Stage names vary by Odoo database and require a mapping table during scoping. Nutshell's pipeline stages are customer-configured, so we create the mapping before migration and validate that all source stage values have a destination equivalent.
Odoo Marketing Automation
Custom Field
Nutshell
Custom Field
1:1Odoo custom fields added via Odoo Studio or ir.model.fields migrate as custom fields on the relevant Nutshell Person or Account record. Field type (char, integer, many2one, etc.) is preserved from the ir.model.fields metadata. Many2one fields referencing other Odoo models (e.g., a custom field pointing to a product) are migrated as string values with a note that the relationship does not replay on Nutshell.
Odoo Marketing Automation
User / Owner
Nutshell
User
1:1Odoo user accounts referenced as create_uid, write_uid, and assignees on CRM records and automation rules map to Nutshell Users. We resolve by email match. Any Odoo User without a matching Nutshell User is held in a reconciliation queue for the customer's admin to provision before record import resumes.
| Odoo Marketing Automation | Nutshell | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Lead | Person (Lead status)1:1 | Fully supported | |
| Campaign | Task (Campaign reference)1:1 | Fully supported | |
| Automation Rule | Sequence or Task (documented only)lossy | Fully supported | |
| Mass Mailing | Email Template (documented)lossy | Fully supported | |
| Email Template | Email Template1:1 | Fully supported | |
| Opportunity | Account / Pipeline1:1 | Fully supported | |
| Custom Field | Custom Field1:1 | Fully supported | |
| User / Owner | User1: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.
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
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discovery and app-dependency audit
We audit the source Odoo database across plan tier (Standard or Custom), installed apps (Marketing Automation, Email Marketing, SMS Marketing, CRM), custom fields, pipeline stages, active automation rules, campaign count, and record volume per object. We confirm API availability (XML-RPC for Custom plan; CSV/XLS export for Standard plan) and document which apps are active so we can scope the correct extraction and mapping layers. The discovery output is a written migration scope and extraction method recommendation.
Extraction method selection
For Custom-plan Odoo databases, we extract via the XML-RPC External API with batch chunking and exponential backoff. For Standard-plan databases, we use Odoo's native CSV/XLS export from list views, which requires scoping all related views to ensure parent-child relationships (Contact to Company, Activity to Contact) are captured together. We validate record counts from the source before beginning any transformation work.
Automation rule and campaign cataloguing
We extract every Automation Rule and Campaign record, document the trigger type, filter domain, action chain, and activity type for each. Rules containing Python Code activities are flagged immediately and separated into the manual-rebuild inventory. Simple rules (email send, record update, task creation) are documented with their logic and mapped to a recommended Nutshell Sequence or task-automation equivalent. Campaign audience domain filters are documented as written segmentation criteria.
Email template extraction and syntax translation
We extract all Email Templates from the Email Marketing app with subject, body HTML, inline images, and variable placeholders. During the template review step, we provide a mapping table translating Odoo's {{object.field}} syntax to Nutshell's merge field syntax so the customer can validate and update each template before it is loaded into Nutshell. HTML rendering is preserved; image attachments are migrated as base64-encoded inline content.
Nutshell staging load and reconciliation
We run a staging migration into a test Nutshell account using representative record volume. The customer's admin reviews the Person records, Account records, pipeline stages, email templates, and automation documentation. We reconcile record counts, spot-check field mapping accuracy, and validate that stage names and tag values transferred correctly. Any mapping corrections are applied before the production migration begins.
Production migration and automation handoff
We run the production migration in record-dependency order: People (Contacts and Leads), Accounts (from Odoo Companies and Opportunities), custom fields, email templates, and automation documentation last. We freeze Odoo writes during cutover, run a final delta migration of any records modified during the migration window, then enable Nutshell as the system of record. We deliver the automation rule and campaign documentation to the customer's admin for manual rebuild in Nutshell Sequences. We support a one-week hypercare window for reconciliation issues. We do not rebuild Odoo Automation Rules as Nutshell Sequences inside the migration scope; that work is handled by the customer's admin using the documentation we deliver.
Platform deep dives
Odoo Marketing Automation
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Nutshell.
Object compatibility
2 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 Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Odoo Marketing Automation to Nutshell 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 Nutshell
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.