CRM migration
Field-level mapping, validation, and rollback between Aurea CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Aurea CRM
Source
Odoo CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Aurea CRM and Odoo CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Aurea CRM to Odoo CRM is a structural migration from an enterprise platform with no public REST API to an open-source ERP with a full XML-RPC interface. Aurea CRM organizes data in Info Areas with administrator-controlled export formats; Odoo uses a Partner object for both individuals and organizations with a separate Contact child model. We resolve that relationship structure during scoping, map Aurea custom fields to Odoo custom fields via field-level discovery, and use Odoo's XML-RPC API to write records in dependency order. Aurea Workflows (configured via the Automator) and CRM.cockpit KPI dashboards do not migrate as data; we deliver a written inventory of active workflows mapped to Odoo Studio automations and provide dashboard screenshots for manual reconstruction. The migration runs through Odoo's standard API endpoints with batch chunking and error logging throughout.
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 Aurea CRM object lands in Odoo CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Aurea CRM
Contact
Odoo CRM
Partner (res.partner)
1:1Aurea Contact records map 1:1 to Odoo Partner records of company_type = person. The Aurea contact's first name and last name map to Odoo's firstname and lastname fields (installed via the base_firstname_modules convention). Email, phone, mobile, and address fields map directly. We use Partner.email as the dedupe key during import. The Aurea contact's primary Account relationship maps to a separate Partner record of company_type = company with the contact attached as a child Contact record.
Aurea CRM
Account/Company
Odoo CRM
Partner (res.partner)
1:1Aurea Account (Company) records map to Odoo Partner records of company_type = company. The Account name maps to Partner.name, Account address fields map to Odoo's street, city, state, zip, country fields, and the Account website maps to Partner.website. Parent-child hierarchy between accounts (if configured) maps to Partner.parent_id for subsidiary relationships. All Aurea Contacts linked to the Account receive the corresponding Partner.parent_id during migration.
Aurea CRM
Opportunity
Odoo CRM
CRM Lead (crm.lead)
1:1Aurea Opportunity records map to Odoo CRM Lead records. The Opportunity name maps to crm.lead.name, deal value maps to crm.lead.planned_revenue, close date maps to date_deadline, and probability maps to probability. Aurea's configurable pipeline stage labels map to Odoo's crm.stage values; we create one Stage per Aurea stage and preserve the stage sequence order. Owner assignment migrates by resolving the Aurea user ID to an Odoo res.users record via the User mapping.
Aurea CRM
Pipeline Stage
Odoo CRM
CRM Stage (crm.stage)
lossyEach Aurea pipeline stage becomes an Odoo crm.stage record within the applicable team. Stage names, sequence order, and probability percentages migrate. We configure the stage as is_won or is_won = false per the Aurea closed-won designation. If Aurea's pipeline has multiple deal pipelines, these map to separate Odoo CRM Teams (crm.team) with their own stage sequences.
Aurea CRM
Activity / Task
Odoo CRM
Mail Activity (mail.activity)
1:1Aurea Activity records map to Odoo mail.activity. The activity type (call, appointment, task) maps to activity_type_id, subject maps to summary, due date maps to date_deadline, and the Aurea activity note maps to mail.message body linked to the activity. Activity assignment (owner) resolves via the User mapping. If the Aurea activity is linked to an Opportunity, we set the Odoo activity's res_id to the corresponding crm.lead id and res_model to crm.lead.
Aurea CRM
Campaign Manager
Odoo CRM
CRM Campaign (utm.campaign)
1:1Aurea Campaign Manager records (Enterprise tier) map to Odoo utm.campaign. Campaign name, type, status, start date, and end date migrate. Response metrics (leads generated, conversions) map to Odoo's custom fields on utm.campaign because Odoo's standard campaign model tracks source attribution rather than campaign performance metrics. We flag any Aurea-specific campaign workflow logic for the workflow inventory document.
Aurea CRM
Partner (PRM)
Odoo CRM
Partner with is_company = true and partner_share = true
1:1Aurea partner relationship management records map to Odoo Partner records with the partner_share flag set to true (indicating a portal-accessible partner). Partner quota and territory assignments from Aurea PRM migrate to custom fields on the Odoo Partner record. If the customer uses Aurea's partner portal, we document the portal access requirements so the Odoo partner portal module can be configured as the replacement.
Aurea CRM
Document / Attachment
Odoo CRM
Ir Attachment (ir.attachment)
1:1Aurea document management files linked to records migrate as Odoo ir.attachment records. The file name maps to ir.attachment.name, the file itself migrates as a base64-encoded binary in datas, and the res_model and res_id point to the migrated parent object (Partner for Contact/Account documents, crm.lead for Opportunity documents). We flag high-volume attachment datasets (>10,000 files) for multi-batch import with Odoo's ir.attachment batch write mode.
Aurea CRM
Custom Fields
Odoo CRM
Custom Fields (ir.model.fields)
lossyAurea administrator-defined custom fields across Contact, Account, Opportunity, and Activity objects map to Odoo custom fields created via Settings > Technical > Database Structure > Custom Fields before migration begins. We preserve field type mapping (text to char, numeric to float, date to date, picklist to selection). Complex Aurea picklists with multi-value support map to Odoo many2many or selection depending on the data. Custom field labels migrate as Odoo field description strings.
Aurea CRM
User / Owner
Odoo CRM
User (res.users)
1:1Aurea user and owner records migrate as Odoo res.users. We resolve by matching Aurea user email to Odoo res.users.login. Any Aurea Owner without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision. We also create a res.partner record for each user (Odoo's standard practice) so that user-managed CRM records have correct partner associations.
Aurea CRM
Territory and Quota
Odoo CRM
Custom Fields or crm.team
lossyAurea territory assignments and quota values map to Odoo crm.team records for territory scoping and custom fields on the relevant Partner or User record for individual quota. Because Aurea's territory data model varies by installation, we catalog the exact field structure during discovery and design a target schema that preserves the business relationship without requiring Odoo custom module development unless the complexity demands it.
Aurea CRM
Opportunity-to-Contact relationship
Odoo CRM
CRM Lead Partner Link (crm.lead.partner.struct)
lossyAurea Opportunity records carry a linked Contact as the primary buyer contact. We map this relationship by first resolving the Contact to an Odoo Partner, then linking it to the crm.lead via Odoo's standard partner_id field. Secondary Opportunity contacts (influencers, champions) migrate as crm.lead.partner_assigned_ids records. This preserves the Aurea 360-degree view linking a deal to its key contact.
| Aurea CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | Partner (res.partner)1:1 | Fully supported | |
| Account/Company | Partner (res.partner)1:1 | Fully supported | |
| Opportunity | CRM Lead (crm.lead)1:1 | Fully supported | |
| Pipeline Stage | CRM Stage (crm.stage)lossy | Fully supported | |
| Activity / Task | Mail Activity (mail.activity)1:1 | Fully supported | |
| Campaign Manager | CRM Campaign (utm.campaign)1:1 | Fully supported | |
| Partner (PRM) | Partner with is_company = true and partner_share = true1:1 | Fully supported | |
| Document / Attachment | Ir Attachment (ir.attachment)1:1 | Fully supported | |
| Custom Fields | Custom Fields (ir.model.fields)lossy | Mapping required | |
| User / Owner | User (res.users)1:1 | Fully supported | |
| Territory and Quota | Custom Fields or crm.teamlossy | Fully supported | |
| Opportunity-to-Contact relationship | CRM Lead Partner Link (crm.lead.partner.struct)lossy | 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.
Aurea CRM gotchas
No public REST API forces manual or support-coordinated exports
Administrator-controlled export formats create scoping ambiguity
Workflows and automations do not export as data records
Performance degrades on large datasets during export
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Discovery and export verification
We audit the Aurea CRM installation with the customer's administrator to confirm available export formats per Info Area and per object. We document all active Aurea workflows (via CRM.designer review), custom fields (via CRM.designer field catalog), partner relationship management configurations, and Aurea Campaign Manager settings. We pair this with a review of the target Odoo instance (Odoo.sh cloud or self-hosted), Odoo version (v15-v18), and installed apps to determine which CRM modules and custom field infrastructure are available before migration begins.
Schema design and Odoo custom field provisioning
We design the destination schema in Odoo before any data writes. This includes creating custom fields on res.partner (for partner-specific attributes), crm.lead (for Aurea Opportunity properties and stage mappings), and mail.activity (for activity type and disposition fields). We configure Odoo crm.stage records to match the Aurea pipeline stage sequence and probability values, and configure crm.team records if multiple Aurea sales teams or territories are in scope. Custom field creation happens via Odoo Settings > Technical > Database Structure > Custom Fields or via direct SQL insertion for self-hosted Odoo instances.
Data extraction from Aurea CRM
We extract data from Aurea CRM using the confirmed export format (Excel or CSV) via the Import/Export module, coordinating with the administrator for bulk exports across large datasets. We chunk exports into 5,000-10,000 record batches per object to avoid Aurea server performance degradation on large datasets. For each batch, we capture the Aurea record ID as a custom migration reference field and confirm export completeness against the record count reported by Aurea CRM before proceeding.
Data transformation and Aurea-to-Odoo mapping
We transform the extracted Aurea data in a staging environment. The primary transform is the Contact-Account split: Aurea Contact records linked to an Account are split into an Odoo Partner (company_type = company) for the Account and child Odoo Partners (company_type = person) for each Contact with parent_id pointing to the Account Partner. Aurea Opportunity maps to crm.lead with the owner and stage resolved via the User and Stage mappings. We apply phone number normalization, date format standardization (ISO 8601 for Odoo compatibility), and null-value handling for optional fields that Odoo requires to be non-null.
Odoo XML-RPC import with batch processing
We write records to Odoo via XML-RPC using Python's odoorpc library or direct xmlrpc.client calls. We import in dependency order: res.partner (Account/Company first as parent), res.partner (Contact child records with parent_id resolved), crm.lead (Opportunities with partner_id and user_id resolved), mail.activity (Activities linked to the migrated crm.lead), utm.campaign (Campaigns), ir.attachment (Documents linked to migrated records). Each phase runs in batches of 500-1,000 records with a reconciliation row count check after each batch. Failed records are logged with error messages for manual review and retry.
Cutover, validation, and workflow handoff
We freeze Aurea CRM writes during the cutover window and run a final delta migration of any records modified during the migration period. We validate record counts, spot-check 25-50 records across Contact, Account, Opportunity, and Activity objects against the Aurea source data, and confirm that parent-child relationships (Account-Contact, Opportunity-Contact) are intact in Odoo. We deliver the workflow and automation reconstruction guide to the customer's Odoo admin and support a one-week post-go-live window for reconciliation issues. We do not rebuild Aurea workflows as Odoo Studio automations within standard migration scope.
Platform deep dives
Aurea CRM
Source
Strengths
Weaknesses
Odoo 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 Aurea CRM and Odoo 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
Aurea CRM: Not publicly documented.
Data volume sensitivity
Aurea CRM 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 Aurea CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Aurea CRM to Odoo 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 Aurea CRM
Other ways to arrive at Odoo 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.