CRM migration

Migrate from Odoo Marketing Automation to Nutshell

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 logo

Odoo Marketing Automation

Source

Nutshell

Destination

Nutshell logo

Compatibility

78%

7 of 9

objects map 1:1 between Odoo Marketing Automation and Nutshell.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Odoo Marketing Automation logo

Odoo Marketing Automation

What's pushing teams away

  • Custom Python code required for non-standard automation logic forces teams to hire Odoo developers or learn server actions to do anything outside the built-in activity types.
  • API access restricted to the Custom plan tier ($61/user/month) locks out smaller teams from programmatic data exports, bulk imports, and third-party integrations.
  • Two separate apps (Email Marketing and Marketing Automation) must be installed together for full functionality, creating confusion about feature ownership and workflow scope.
  • Reporting limitations — no native conversion tracking, weak analytics dashboards, and no built-in revenue attribution — push data-driven teams toward dedicated marketing automation platforms.

Choosing

Nutshell logo

Nutshell

What's pulling them in

  • Lowest cost entry point among mid-market CRMs—Foundation plan starts at $13/user/month, making it accessible for teams validating CRM fit before committing.
  • Integrated sales automation and email sequencing on Pro plans without requiring a separate email marketing platform, per verified Capterra reviews.
  • Consistently praised for intuitive interface and fast onboarding, with case studies reporting 100% team adoption rates within initial deployment periods.
  • Strong customer support responsiveness cited across G2 reviews, with dedicated support tiers available on Enterprise plans.
  • Native integrations with WhatsApp, Facebook Messenger, Instagram, and Slack reduce reliance on third-party middleware for common communication channels.

Object mapping

How Odoo Marketing Automation objects map to Nutshell

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

maps to

Nutshell

Person

1:1
Fully supported

Odoo 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

maps to

Nutshell

Person (Lead status)

1:1
Fully supported

Odoo 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

maps to

Nutshell

Task (Campaign reference)

1:1
Fully supported

Odoo 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

maps to

Nutshell

Sequence or Task (documented only)

lossy
Fully supported

Odoo 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

maps to

Nutshell

Email Template (documented)

lossy
Fully supported

Odoo 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

maps to

Nutshell

Email Template

1:1
Fully supported

Odoo 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

maps to

Nutshell

Account / Pipeline

1:1
Fully supported

Odoo 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

maps to

Nutshell

Custom Field

1:1
Fully supported

Odoo 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

maps to

Nutshell

User

1:1
Fully supported

Odoo 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.

Gotchas + challenges

What specifically takes care here

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 logo

Odoo Marketing Automation gotchas

High

External API access is gated behind the Custom plan

High

Automation rules with Python server actions cannot replay on non-Odoo destinations

Medium

No native conversion tracking within Marketing Automation

Medium

Two dependent apps must both be installed for full feature access

Nutshell logo

Nutshell gotchas

High

Contact tier limits enforced on import

Medium

No bulk API endpoint requires paginated extraction

Medium

Email sequences not exportable via API

Medium

Foundation plan disables key sales features

Pair-specific challenges

  • External API access requires Odoo Custom plan

    Odoo's XML-RPC External API is only available on the Custom plan ($61/user/month yearly). Standard plan users cannot programmatically export Contacts, Leads, Campaigns, or automation rules via API. We confirm API availability during discovery and adjust the migration method accordingly: Custom-plan databases use the XML-RPC API with rate-limit handling and batch chunking; Standard-plan databases use Odoo's native CSV/XLS export from list views, which is slower and requires more manual scoping to ensure all related records are captured together.

  • Python Code activities in Automation Rules cannot migrate

    Odoo Marketing Automation supports a Python Code activity type that executes arbitrary server-side logic referencing Odoo models and methods. These blocks have no equivalent on Nutshell. We flag every automation rule containing a Python activity and present it to the customer as a manual-rebuild item. We migrate all other rule metadata (triggers, conditions, timing, email activities) in full. The customer rebuilds Python-dependent logic manually in Nutshell's sequence builder or as a separate integration.

  • Odoo's multi-app dependency must be confirmed before scoping

    Odoo Marketing Automation installs Email Marketing as a dependency, and SMS Marketing is required for SMS automation features. During migration scoping, we confirm which of the three apps are active in the source database. If SMS Marketing is active, we document SMS templates and SMS activity flows separately and note any that may lack an equivalent on Nutshell, which supports email sequences and tasks but not native SMS automation without a third-party integration.

  • Audience domain filters do not replay on Nutshell

    Odoo Campaigns use a domain filter widget to define the target audience (e.g., Contacts with tag X and stage Y and created after date Z). Nutshell does not support dynamic audience segments with equivalent domain filter logic. We document the original domain filter as a written item describing the enrollment criteria. The customer's admin manually configures Nutshell People segmentation or sequence enrollment rules based on this documentation. Migrations that skip this step result in no automated audience targeting post-migration.

Migration approach

Six steps for a successful Odoo Marketing Automation to Nutshell data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Odoo Marketing Automation logo

Odoo Marketing Automation

Source

Strengths

  • Native integration with the broader Odoo suite (CRM, Sales, eCommerce, Inventory, Accounting) means automation can act on transactional data without ETL.
  • Transparent per-app pricing is far cheaper than per-contact platforms (HubSpot, Marketo) for large contact databases — a structural advantage for high-volume senders.
  • Drag-and-drop email editor and visual workflow builder usable without coding knowledge once the Odoo learning curve is cleared.
  • Multi-channel support: email, SMS, and social media campaigns orchestrated from one platform.
  • Open-source codebase (Community Edition) provides a no-licence path for teams with internal Odoo developers.

Weaknesses

  • Steep learning curve for the Odoo UI — reviewers consistently note beginners struggle to orient versus purpose-built marketing tools like Mailchimp or ActiveCampaign.
  • Segmentation depth is limited compared to dedicated marketing automation platforms; complex predicate logic requires technical or developer help.
  • Automation workflow flexibility is rigid for non-standard scenarios; multi-branch logic and dynamic content insertion are weaker than HubSpot or Klaviyo.
  • Reporting and analytics are basic — most teams add Odoo Studio reporting or external BI tools (Power BI, Metabase) for executive-grade dashboards.
  • Third-party integration out of the box is limited to the Odoo connector ecosystem; bespoke integrations require Odoo development.
Nutshell logo

Nutshell

Destination

Strengths

  • Simple, intuitive interface with minimal learning curve for sales teams new to CRM
  • Per-seat pricing is transparent and predictable, with annual billing reducing monthly cost
  • Full data export tool available for all account data including backups
  • Open JSON-RPC API allows programmatic access to all core objects
  • Native multichannel engagement (email, SMS, WhatsApp) without third-party add-ons for communication

Weaknesses

  • Reporting and analytics are considered weak, requiring manual Excel exports for detailed analysis
  • No bulk API endpoint—migration requires paginated API reads that must be rate-limited carefully
  • JSON-RPC API is less common than REST, requiring custom integration code compared to standard REST CRMs
  • Add-on costs (Forms, Nutshell IQ, Email Marketing) are per-company charges that stack on top of per-seat pricing
  • Feature restrictions on entry-level plans mean teams often need mid-tier to get basic automation

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Odoo Marketing Automation and Nutshell.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Odoo Marketing Automation: Not publicly documented by Odoo.

  • Data volume sensitivity

    B

    Odoo Marketing Automation doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Odoo Marketing Automation to Nutshell migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Odoo Marketing Automation to Nutshell data migrations

Answers to the questions buyers ask most during Odoo Marketing Automation to Nutshell migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between two and four weeks for databases under 15,000 Contacts, 3,000 Leads, and no complex Python server-action blocks. Migrations with Standard-plan Odoo databases requiring CSV scoping, multiple dependent apps (Email Marketing plus SMS Marketing), large campaign histories, or complex audience-domain filter chains move to five to eight weeks because of extraction complexity and filter-translation documentation work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Odoo Marketing Automation.
Land in Nutshell, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day