CRM migration
Field-level mapping, validation, and rollback between Intrix CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Intrix CRM
Source
Odoo CRM
Destination
Compatibility
8 of 13
objects map 1:1 between Intrix CRM and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Intrix CRM to Odoo CRM is a structural migration that begins with a CSV export dependency unique to Intrix — the platform does not publish a REST API endpoint, so every record type must be downloaded manually from the UI and parsed before import. We map Intrix Clients to Odoo Partner records in company and individual modes, preserve the parent-child Contact relationship via Partner ID lookups, and resolve Intrix Opportunities against Odoo crm.lead pipeline stages. Project task dependencies require ordered import: child tasks cannot land before their parent tasks exist in Odoo, or the Odoo task-closure constraint blocks completion. Working Hours Records from Intrix Advanced and Unlimited tiers require a custom field strategy in Odoo since time tracking is a separate module. We do not migrate Workflows, HRM configurations, Support tickets (as a module), or integration credentials; we deliver a written inventory of these for the customer's admin to rebuild in Odoo Studio or the relevant app.
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 Intrix 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.
Intrix CRM
Client
Odoo CRM
res.partner
1:1Intrix Clients map to Odoo res.partner records in company mode. We extract the Client name, industry, contact information, and the 360-degree overview fields as custom char and text fields on res.partner. The res.partner record is created first so that its ID is available for Contact lookups during the child record import. Intrix's Client-level custom fields map to res.partner custom fields in the Odoo database.
Intrix CRM
Contact
Odoo CRM
res.partner
1:1Intrix Contacts map to Odoo res.partner records in individual mode, linked to the parent Client via the parent_id field on res.partner. We match Contacts to their parent Client by Client name or ID during import and set parent_id to the Odoo Partner ID. Salutation, first name, last name, phone, email, job title, and department transfer to the corresponding Odoo partner fields. Any Contact-level custom fields from Intrix map to res.partner custom fields.
Intrix CRM
Opportunity
Odoo CRM
crm.lead
1:1Intrix Opportunities map to Odoo crm.lead records. The Opportunity name becomes crm.lead name, deal value maps to expected_revenue, expected close date maps to date_deadline, and owner assignment maps to user_id by email matching. Custom stage names from Intrix require a stage-name mapping to Odoo's crm.stage values, which we configure before import by querying the destination Odoo instance's active stage pipeline.
Intrix CRM
Pipeline Stages
Odoo CRM
crm.stage + crm.team
lossyIntrix's configurable pipeline stages are customer-specific and must be mapped to Odoo crm.stage records within the appropriate pipeline ID. We extract the customer's active stage configuration from Intrix, create matching crm.stage records in Odoo, and map the stage probability percentages. If Intrix used multiple pipelines, we configure Odoo crm.team records and assign leads to teams via the team_id field.
Intrix CRM
Activity
Odoo CRM
mail.message + project.task (for tasks)
1:1Intrix Activities (calls, emails, meetings, tasks) logged against Clients or Opportunities map to Odoo mail.message records linked to the crm.lead via res_id and model fields. Call and meeting metadata (duration, disposition, attendees) transfer to custom fields on mail.message. Task-type activities map to project.task records with stage and user assignment resolved at import time. Activity timestamps are preserved on mail.message date to maintain the timeline order in the CRM record.
Intrix CRM
Project
Odoo CRM
project.project
1:1Intrix Projects map to Odoo project.project records. Project name, description, deadline, and owner assignment transfer to the Odoo equivalent fields. Project-level custom fields from Intrix map to project.project custom fields in Odoo. We create the project.project record before any task import to ensure the project_id lookup is satisfied at task insertion time.
Intrix CRM
Task
Odoo CRM
project.task
1:1Intrix Tasks map to Odoo project.task records linked to their parent project.project via project_id. The task dependency graph is the primary complexity: Intrix enforces predecessor-completion before child-task closure. We extract the dependency graph from Intrix, sort tasks by dependency level, and import parent tasks before child tasks. Odoo's project.task allows setting dependent tasks via the dependency_ids field once the parent task has an Odoo ID.
Intrix CRM
Working Hours Records (WHR)
Odoo CRM
project.timesheet (custom fields on hr.employee)
lossyWHR is available only on Intrix Advanced and Unlimited tiers. Odoo does not have a direct WHR equivalent; time tracking lives in the project.timesheet or hr.attendance app. We map WHR records to project.timesheet entries linked to the relevant project.task or project.project, with hours, date, and employee mapping. If the destination Odoo instance does not have the Timesheet app installed, we document the custom field placement and advise on activation before migration begins.
Intrix CRM
Support Tickets
Odoo CRM
helpdesk.ticket
lossyIntrix Support is an add-on module (€2/user/month) on Advanced and Unlimited tiers. Odoo requires the helpdesk app to be installed for ticket migration. If the destination Odoo instance has helpdesk installed, tickets migrate to helpdesk.ticket with status mapping to ticket stage, assignee mapping to user_id by email, and email thread history flattened into the ticket description or chatter. If helpdesk is not installed, we document the ticket data for manual re-creation and advise on app activation.
Intrix CRM
Custom Fields
Odoo CRM
ir.model.fields (custom)
lossyIntrix allows custom fields on most objects. We extract the full custom field schema per object during scoping, then pre-create matching custom fields on the corresponding Odoo model (res.partner, crm.lead, project.project, project.task) before any data import. Field types are mapped: Intrix text to char or text, date to date, number to float or integer, checkbox to boolean, dropdown to selection. Unsupported field types are flagged with a schema gap note for the customer to resolve in Odoo Studio.
Intrix CRM
Attachments
Odoo CRM
ir.attachment
1:1Intrix stores attachments per Client, Contact, or Project. We download files individually from the UI, then re-upload them to the corresponding Odoo record (res.partner, project.project, project.task) via Odoo's ir.attachment API. The original filename and any inline content type are preserved. File-per-record structure creates bulk import overhead for records with multiple attachments; we batch uploads in groups of 20 with rate-limit handling on the Odoo XML-RPC endpoint.
Intrix CRM
User / Owner
Odoo CRM
res.users
1:1Intrix Users (Owners) referenced on Opportunities, Projects, and Tasks are mapped to Odoo res.users records by email matching. We extract every distinct owner email from the source data, query the destination Odoo instance for matching users, and hold any unmatched owners in a reconciliation queue for the customer's admin to provision before record import resumes. Owner assignments on Opportunities and Tasks resolve to user_id at migration time.
Intrix CRM
Integrations
Odoo CRM
Configuration inventory (no data migration)
lossyIntrix integrations (MailChimp, Google Calendar, accounting connectors) store connection credentials and sync state that cannot be migrated. We document all active integrations during scoping and deliver a written configuration guide for manual re-setup in Odoo: which Odoo apps provide equivalent connectivity (discuss for email, calendar integrations via Odoo apps or connector modules), the credentials to re-enter, and any sync configuration to rebuild.
| Intrix CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| Client | res.partner1:1 | Fully supported | |
| Contact | res.partner1:1 | Fully supported | |
| Opportunity | crm.lead1:1 | Fully supported | |
| Pipeline Stages | crm.stage + crm.teamlossy | Mapping required | |
| Activity | mail.message + project.task (for tasks)1:1 | Fully supported | |
| Project | project.project1:1 | Fully supported | |
| Task | project.task1:1 | Fully supported | |
| Working Hours Records (WHR) | project.timesheet (custom fields on hr.employee)lossy | Mapping required | |
| Support Tickets | helpdesk.ticketlossy | Mapping required | |
| Custom Fields | ir.model.fields (custom)lossy | Mapping required | |
| Attachments | ir.attachment1:1 | Mapping required | |
| User / Owner | res.users1:1 | Fully supported | |
| Integrations | Configuration inventory (no data migration)lossy | Not 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.
Intrix CRM gotchas
No public API for automated export or import
Tier-gated modules affect what data exists
Project task dependencies require ordered import
Trial data deletion after 30 days
Limited integrations create data silos
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 CSV export initiation
We audit the source Intrix account across tier (Basic/Advanced/Unlimited), active modules (WHR, Support, Projects, HRM), custom field schemas per object, pipeline stage configuration, and total record counts. We also confirm whether the account is paid or trial (and trial expiry date). We then guide the customer through the manual CSV export from the Intrix UI — one CSV per object — and validate the download before any transformation work begins. Any data quality issues (missing required fields, inconsistent date formats, duplicate records) are flagged with a cleaning checklist for the customer to resolve before the next phase.
Destination schema design and Odoo module audit
We audit the destination Odoo instance: which apps are installed (CRM, Project, Timesheet, Helpdesk, HR), what custom fields already exist on res.partner, crm.lead, project.project, and project.task, and what stage pipelines are configured. We then design the migration schema: custom fields to create, stage pipeline configuration, project.team setup if multiple pipelines are used, and the task dependency strategy. If the Helpdesk app is not installed and support ticket data exists in Intrix, we advise on app activation. If the Timesheet app is not installed and WHR data exists, we propose a custom field strategy on hr.employee or project.project.
Sandbox migration and reconciliation
We run a full migration into the customer's Odoo sandbox (if available) or a trial Odoo instance using the CSV export data. We reconcile record counts per object, spot-check 25-50 records against the Intrix source for field-level accuracy, and verify that parent-child relationships (Contact to Client, Task to Project, Activity to Opportunity) are correctly established via Odoo lookups. Mapping corrections and schema adjustments happen at this stage. The customer's admin reviews the sandbox and signs off before production migration begins.
Owner reconciliation and user provisioning
We extract every distinct Intrix Owner referenced on Opportunity, Project, and Task records and match by email against the Odoo destination's res.users table. Owners without a matching Odoo user go to a reconciliation queue. The customer's Odoo admin provisions any missing users and sets their access rights. Migration cannot proceed past record import until all Owner references can be resolved, because user_id is a required field on most Odoo CRM and Project objects.
Production migration in dependency order
We run production migration in record-dependency order. First: res.partner records (Clients as companies, Contacts as individuals with parent_id set). Second: crm.lead records with stage mapping, user_id assignment, and partner_id lookups resolved. Third: project.project records. Fourth: project.task records in dependency-sorted order. Fifth: Activity history via mail.message API. Sixth: ir.attachment records for file re-upload. Seventh: WHR data via project.timesheet if the Timesheet app is active, or as custom fields on hr.employee. Eighth: Support tickets via helpdesk.ticket if the Helpdesk app is active. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and handoff documentation
We freeze writes to the Intrix account during cutover, run a final delta migration of any records modified during the migration window, and enable Odoo as the system of record. We deliver a migration completion report with record counts per object, a schema gap document listing any Intrix custom fields with no Odoo equivalent and the recommended resolution, an automation inventory listing every Intrix Workflow, sequence, and integration requiring rebuild in Odoo, and a custom field map showing every field name, source value, and destination placement. We support a one-week hypercare window for reconciliation issues raised by the sales or operations team.
Platform deep dives
Intrix 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 Intrix 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
Intrix CRM: Not publicly documented.
Data volume sensitivity
Intrix 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 Intrix CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Intrix 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 Intrix 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.