Migrate your Odoo Marketing Automation data
Odoo's marketing automation module sits inside a full ERP suite and depends on CRM, Email Marketing, and SMS apps for full functionality. Teams choosing it want all-in-one consolidation at a per-user price that scales fast once you add users.
In its favor
Why people choose Odoo Marketing Automation
The signal that keeps Odoo Marketing Automation on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Cost savings versus HubSpot or Salesforce — users report 80% of comparable features at a significantly lower per-user price on the Standard or Custom plans.
Native integration with Odoo CRM eliminates the need for manual imports or exports when contact status or purchase data changes in the ERP.
Cart abandonment automation is built directly into the eCommerce and CRM modules, automatically generating personalized discount codes without third-party tools.
The drag-and-drop email builder with pre-built themes allows marketing teams to launch campaigns without developer involvement.
The per-user pricing model covers the full Odoo app suite rather than charging per-module, making it predictable for growing SMBs.
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.
Reasons to switch
Why people leave Odoo Marketing Automation
The recurring reasons buyers give for replacing Odoo Marketing Automation. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Odoo Marketing Automation fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
Odoo Marketing Automation pricing overview
Odoo prices per user, not per app. The Standard plan at $31.10/user/month includes the full app suite but excludes external API access. The Custom plan at $61.00/user/month is required for API-based migrations. Micro and small businesses typically land on Standard; teams needing programmatic data access or on-premise deployment require Custom.
One App Free
Tier 1 of 3
$0 (forever)
What's included
Need help selecting your CRM?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on Odoo Marketing Automation's schedule — see our quote-based pricing →
What gets migrated
Odoo Marketing Automation object support
Object-by-object support for Odoo Marketing Automation migrations. Per-pair details surface during scoping.
Contacts
Fully supportedContacts are the core audience unit for Marketing Automation campaigns. We migrate name, email, phone, company, tags, and custom fields. The CRM contact model is stable and well-documented across Odoo versions 14–19.
Leads
Fully supportedLeads are the primary enrollment target for automation workflows. We map Lead name, email, stage, priority, expected closing date, and source. Leads and Contacts share a unified partner model in Odoo but are tracked separately in campaign targeting.
Opportunities
Mapping requiredOpportunities can be used as workflow targets via the domain widget. We migrate opportunity name, stage, expected revenue, partner, and lost reason. Stage names vary by database and require a mapping table during migration.
Campaigns
Fully supportedCampaigns are the top-level container for automation rules. We migrate campaign name, target model (Contact, Lead, Sales Order), audience domain filter, and campaign state. Traces and activity logs are migrated as read-only history records.
Automation Rules
Mapping requiredAutomation Rules are the workflow definitions that trigger actions. We migrate rule name, trigger type (time-based, email event, server action), filter domain, and action chain. Rules containing Python server-action code cannot be replayed on non-Odoo destinations and are flagged for manual rebuild.
Workflow Activities
Mapping requiredWorkflow Activities are the individual steps within an Automation Rule (e.g., Send Email, Update Record, Create Task). We migrate the activity type, timing, template reference, and child activity links. Email templates are migrated separately as HTML blobs.
Mass Mailings
Mapping requiredMass Mailings are the email-sending records tracked in the Email Marketing app. We migrate subject, body (HTML), scheduled date, and recipient count. Recipient lists are resolved via Contact or Lead domain filters at migration time.
Email Templates
Mapping requiredEmail Templates store reusable HTML email bodies used by both Email Marketing and Marketing Automation. We migrate template name, subject, body HTML, and attachment references. Inline images and variable fields require field-level mapping against destination placeholders.
Custom Fields
Mapping requiredCustom fields added via Odoo Studio or ir.model.fields are migrated as key-value pairs on the parent record. The field type (char, integer, many2one, etc.) is preserved from the ir.model.fields metadata and mapped to the destination schema.
Users / Owners
Mapping requiredOdoo user accounts are referenced as create_uid, write_uid, and assignees on CRM records and automation rules. We map user login, name, and active status. On destination platforms without an equivalent user model, owner assignment defaults to the migration admin account.
Tags
Fully supportedTags on Contacts, Leads, and Opportunities are migrated as string arrays and reassigned by name on the destination. Odoo stores tags in a separate ir.attachment model; we flatten them to a simple list during export.
Attachments
Not in this platformAttachments (documents, images, inline email assets) are stored in Odoo's ir.attachment table as binary blobs with complex path dependencies. We do not migrate attachments; we flag their existence in trace logs and provide a separate file listing for manual download.
| Object | Support | Notes |
|---|---|---|
| Contacts | Fully supported | Contacts are the core audience unit for Marketing Automation campaigns. We migrate name, email, phone, company, tags, and custom fields. The CRM contact model is stable and well-documented across Odoo versions 14–19. |
| Leads | Fully supported | Leads are the primary enrollment target for automation workflows. We map Lead name, email, stage, priority, expected closing date, and source. Leads and Contacts share a unified partner model in Odoo but are tracked separately in campaign targeting. |
| Opportunities | Mapping required | Opportunities can be used as workflow targets via the domain widget. We migrate opportunity name, stage, expected revenue, partner, and lost reason. Stage names vary by database and require a mapping table during migration. |
| Campaigns | Fully supported | Campaigns are the top-level container for automation rules. We migrate campaign name, target model (Contact, Lead, Sales Order), audience domain filter, and campaign state. Traces and activity logs are migrated as read-only history records. |
| Automation Rules | Mapping required | Automation Rules are the workflow definitions that trigger actions. We migrate rule name, trigger type (time-based, email event, server action), filter domain, and action chain. Rules containing Python server-action code cannot be replayed on non-Odoo destinations and are flagged for manual rebuild. |
| Workflow Activities | Mapping required | Workflow Activities are the individual steps within an Automation Rule (e.g., Send Email, Update Record, Create Task). We migrate the activity type, timing, template reference, and child activity links. Email templates are migrated separately as HTML blobs. |
| Mass Mailings | Mapping required | Mass Mailings are the email-sending records tracked in the Email Marketing app. We migrate subject, body (HTML), scheduled date, and recipient count. Recipient lists are resolved via Contact or Lead domain filters at migration time. |
| Email Templates | Mapping required | Email Templates store reusable HTML email bodies used by both Email Marketing and Marketing Automation. We migrate template name, subject, body HTML, and attachment references. Inline images and variable fields require field-level mapping against destination placeholders. |
| Custom Fields | Mapping required | Custom fields added via Odoo Studio or ir.model.fields are migrated as key-value pairs on the parent record. The field type (char, integer, many2one, etc.) is preserved from the ir.model.fields metadata and mapped to the destination schema. |
| Users / Owners | Mapping required | Odoo user accounts are referenced as create_uid, write_uid, and assignees on CRM records and automation rules. We map user login, name, and active status. On destination platforms without an equivalent user model, owner assignment defaults to the migration admin account. |
| Tags | Fully supported | Tags on Contacts, Leads, and Opportunities are migrated as string arrays and reassigned by name on the destination. Odoo stores tags in a separate ir.attachment model; we flatten them to a simple list during export. |
| Attachments | Not in this platform | Attachments (documents, images, inline email assets) are stored in Odoo's ir.attachment table as binary blobs with complex path dependencies. We do not migrate attachments; we flag their existence in trace logs and provide a separate file listing for manual download. |
Gotchas
What to watch for in Odoo Marketing Automation migrations
Issues we've hit on past Odoo Marketing Automation migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
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
| Severity | Issue |
|---|---|
| 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 |
Leaving Odoo Marketing Automation?
Where Odoo Marketing Automation customers move next
12 destinations Odoo Marketing Automation can migrate to.
How a Odoo Marketing Automation migration works
Four steps, Odoo Marketing Automation-specific
Connect
API key (Custom plan only) — XML-RPC with database, user ID, and password; or JSON-RPC with session token into Odoo Marketing Automation. Scopes limited to read-only on the data we move.
Map
We translate Odoo Marketing Automation-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Odoo Marketing Automation quirks before production.
Migrate
Full migration with Odoo Marketing Automation rate-limit handling. Rollback available throughout.
FAQ
Odoo Marketing Automation migration FAQ
Answers to the questions buyers ask most during Odoo Marketing Automation migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Odoo Marketing Automation migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationReady when you are
Migrate Odoo Marketing Automation.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Odoo Marketing Automation setup and destination — written quote back within a business day.