CRM migration

Migrate from Intrix CRM to Odoo CRM

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 logo

Intrix CRM

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

62%

8 of 13

objects map 1:1 between Intrix CRM and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Intrix CRM logo

Intrix CRM

What's pushing teams away

  • Limited third-party app marketplace creates integration gaps, especially with legacy ERP and accounting systems that mid-market teams rely on.
  • Lack of a public API documented for external migration tools makes automated export and import difficult and manual CSV-heavy.
  • Stale data accumulates when teams lack integration with email platforms and marketing tools they have already standardized on.
  • Smaller market presence and review volume compared to HubSpot or Pipedrive makes it harder to find peer feedback and specialist support.
  • Scale constraints emerge as teams grow custom fields and automation complexity beyond what the platform comfortably handles.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Intrix CRM objects map to Odoo CRM

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

maps to

Odoo CRM

res.partner

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

res.partner

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

crm.stage + crm.team

lossy
Mapping required

Intrix'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

maps to

Odoo CRM

mail.message + project.task (for tasks)

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

project.project

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

project.task

1:1
Fully supported

Intrix 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)

maps to

Odoo CRM

project.timesheet (custom fields on hr.employee)

lossy
Mapping required

WHR 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

maps to

Odoo CRM

helpdesk.ticket

lossy
Mapping required

Intrix 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

maps to

Odoo CRM

ir.model.fields (custom)

lossy
Mapping required

Intrix 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

maps to

Odoo CRM

ir.attachment

1:1
Mapping required

Intrix 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

maps to

Odoo CRM

res.users

1:1
Fully supported

Intrix 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

maps to

Odoo CRM

Configuration inventory (no data migration)

lossy
Not supported

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

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.

Intrix CRM logo

Intrix CRM gotchas

High

No public API for automated export or import

Medium

Tier-gated modules affect what data exists

Medium

Project task dependencies require ordered import

High

Trial data deletion after 30 days

Low

Limited integrations create data silos

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • No public API forces manual CSV export and re-import

    Intrix does not publish a REST API endpoint for external data access. Every object — Clients, Contacts, Opportunities, Projects, Tasks, Activities — must be downloaded manually as separate CSV files from the UI. This means we cannot run automated delta syncs during migration and any post-migration data refresh requires repeating the manual export process. For migrations exceeding 5,000 records, the manual CSV step is the primary timeline driver. We advise customers to start the export process during scoping so that data is ready before the migration window begins.

  • Project task dependencies require ordered import sequencing

    Intrix enforces task-completion logic based on predecessor dependencies — a child task cannot be marked complete if its predecessor is open. When migrating Projects, we extract the full dependency graph, assign a topological sort order, and import parent tasks before their children. If a child task is imported before its parent exists in Odoo, the dependency relationship cannot be established and the task closure logic will behave incorrectly in the destination. We validate the dependency chain after import by checking that all predecessor tasks have a status consistent with the Odoo project.task dependency model.

  • Custom fields do not auto-transfer on Odoo lead-to-opportunity conversion

    When a crm.lead is converted to an opportunity and a res.partner is created in Odoo, custom fields on the lead do not automatically populate on the new partner record. This is a known Odoo behavior documented on Stack Overflow and the Odoo community forums. For Intrix Opportunities that have custom fields, we pre-create those fields on both crm.lead and res.partner before migration, then write a post-conversion data patch that copies the custom field values from the lead to the newly created partner record after the conversion action completes. Without this patch, custom field data is silently lost at conversion time.

  • Trial data deletion after 30 days blocks migration

    Intrix locks the application and deletes all data for non-converted trial accounts after 30 days. If the source account is on a trial plan, the migration must be scoped and the data export completed before the 30-day window closes. We confirm account status (trial vs paid) during the first discovery call. For trial accounts close to expiry, we prioritize the CSV export step and run migration scoping in parallel. Data deleted by Intrix after trial expiry cannot be recovered; we cannot initiate a migration from a locked account.

  • Odoo XML-RPC rate limits and batch sizing

    Odoo's XML-RPC interface has per-request overhead and no explicit bulk API equivalent for all object types. For large migrations (over 10,000 records), we implement batch chunking with configurable batch sizes (typically 50-200 records per request), exponential backoff on timeout responses, and idempotency keys on insert operations. The actual rate limit depends on the Odoo hosting configuration — self-hosted Odoo instances typically allow higher throughput than Odoo Online. We adjust batch sizing during the sandbox migration phase based on observed response times.

Migration approach

Six steps for a successful Intrix CRM to Odoo CRM data migration

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

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

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

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

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

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

Context on both ends of the pair

Intrix CRM logo

Intrix CRM

Source

Strengths

  • Tiered pricing from €27/user/month with no per-contact billing adds predictability for growing sales teams.
  • Combines CRM, project management, and HRM in one platform reducing tool sprawl for SMEs.
  • Mobile app with business card scanner and electronic signing keeps field teams productive offline and online.
  • Free minor customization adjustments during use lowers the cost of iterative configuration changes.
  • Working Hours Records module provides compliant time tracking for EU-based teams with attendance requirements.

Weaknesses

  • No publicly documented API endpoint means all migration work depends on manual CSV export and re-import.
  • Limited third-party integrations compared to HubSpot or Pipedrive restricts connectivity with existing tool stacks.
  • Support module and WHR are add-on costs on top of base tier pricing, inflating the real per-user cost.
  • Small review sample on G2 and GetApp makes it difficult to assess long-term user satisfaction and common pain points.
  • Project dependencies are powerful but complex to migrate — incorrect sequencing breaks task completion logic in the new system.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 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 Intrix CRM and Odoo CRM.

  • Object compatibility

    B

    1 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

    Intrix CRM: Not publicly documented.

  • Data volume sensitivity

    B

    Intrix CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Intrix CRM to Odoo CRM 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 Intrix CRM to Odoo CRM data migrations

Answers to the questions buyers ask most during Intrix CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between three and five weeks for accounts under 10,000 Clients, 5,000 Opportunities, and a simple or absent project structure. Migrations with Projects containing complex task dependency chains, active Working Hours Records data, or over 50,000 total records move to eight to twelve weeks because of dependency sequencing, bulk attachment re-upload, and multi-module schema configuration. The manual CSV export from Intrix is a customer action that runs concurrently with scoping and can shorten the effective timeline if started early.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Intrix CRM.
Land in Odoo CRM, 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