CRM migration

Migrate from Centrium CRM to Odoo CRM

Field-level mapping, validation, and rollback between Centrium CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Centrium CRM logo

Centrium CRM

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

75%

9 of 12

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Centrium CRM to Odoo CRM is a structural migration that expands a lightweight cloud CRM into a modular ERP-backed CRM platform. Centrium stores organizations as contacts marked with an organization flag; Odoo separates these into Contact and Partner (Company) records, which means the migration must split flagged contacts, create the corresponding Partner records in Odoo, and re-link the Contact records before import. Centrium exposes no public API, so all data extraction relies on manual CSV and XLSX exports from the Centrium UI, which we normalize into a common schema before Odoo import. Deal status in Centrium is flat (won/open/lost) with no stage history, which we map to the nearest Odoo pipeline stage and flag as a data completeness disclosure. We do not migrate Centrium permissions (team-level only, no RBAC equivalent), workflows, or reports; these require manual rebuild in Odoo after cutover. Custom fields and custom objects migrate via Odoo Studio field definitions created before the data load phase.

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

Centrium CRM logo

Centrium CRM

What's pushing teams away

  • Very small review pool on G2 and TrustRadius (3 reviews combined) makes it difficult to gauge long-term satisfaction and support quality reliably.
  • No publicly documented API means integrations with accounting, email marketing or telephony must be built manually or through unsupported workarounds.
  • Absence of automation or workflow engine means repetitive sales sequences and follow-up triggers require manual effort or external tools.
  • Storage is the only scaling constraint at 1Gb per user, which creates a hard ceiling for file-heavy use cases such as document-heavy sales or media attachments.

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 Centrium CRM objects map to Odoo CRM

Each row shows how a Centrium 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.

Centrium CRM

Contact (individual)

maps to

Odoo CRM

Contact

1:1
Fully supported

Centrium Contact records with no organization flag migrate directly to Odoo Contact. We map name fields (first_name, last_name), email address, phone number, address fields, and any custom fields stored on the contact record. Owner assignment maps to an Odoo User record resolved by email match. If the source contact has no email, we generate a placeholder and flag it for the customer's admin to complete post-migration.

Centrium CRM

Contact (organization-flagged)

maps to

Odoo CRM

Partner (Company) + Contact

1:many
Fully supported

Centrium Contact records marked with an organization flag are identified during preprocessing and split into two operations: first we create the Odoo Partner (res.partner) record with the company name, address, and organization-level custom fields; then we create the Odoo Contact record linked to that Partner with a child-contact relationship. The original Centrium contact email becomes the Partner's email if no other contact at that domain has been migrated yet. This split is the primary preprocessing step that can extend timelines for accounts with large organization lists.

Centrium CRM

Deal

maps to

Odoo CRM

Opportunity (crm.lead)

1:1
Fully supported

Centrium Deals map to Odoo CRM Opportunities (crm.lead records with type = opportunity). The Centrium deal status (won/open/lost) maps to the nearest Odoo stage: won maps to Won, lost maps to Lost, and open maps to the first stage in the customer's Odoo pipeline. We preserve the deal name, amount, expected closing date, and associated contact/partner links. Note that Centrium's flat status does not carry intermediate stage history to Odoo; we flag this as a data completeness disclosure in the validation report.

Centrium CRM

Deal Stage

maps to

Odoo CRM

Pipeline Stage

lossy
Fully supported

Centrium uses a fixed three-status deal model. We configure an Odoo pipeline with at minimum a qualification stage, a proposal stage, and a negotiation stage, plus Won and Lost terminals. If the customer already has a multi-stage Odoo pipeline configured, we map the Centrium open status to the stage closest to mid-pipeline rather than the first stage. Stage probability percentages default to Odoo's standard values unless the customer provides historical win rates to calibrate.

Centrium CRM

Task

maps to

Odoo CRM

Task (project.task)

1:1
Fully supported

Centrium Tasks map to Odoo Project Tasks. We transfer the task name, description, due date, assigned user (resolved by email match to Odoo User), and completion status. Open tasks migrate with their current state preserved. Closed tasks migrate with a Completed stage marker. Tasks linked to a specific Contact or Deal in Centrium carry the same Odoo record link in the destination.

Centrium CRM

Project

maps to

Odoo CRM

Project

1:1
Fully supported

Centrium Projects are lightweight containers for tasks and contacts. They map to Odoo Project records. We transfer the project name, associated tasks (via the task migration above), and the linked Contact/Partner records. Any project-level metadata beyond name and membership (such as project status or budget fields) requires Odoo Studio field creation before migration or is noted as a gap for manual post-migration entry.

Centrium CRM

Note

maps to

Odoo CRM

Note (mail.message)

1:1
Fully supported

Centrium Notes attached to contacts, deals, or projects migrate to Odoo internal notes on the equivalent record. We transfer the full note body and preserve the parent-object association (Contact, Partner, or Opportunity). Notes are not threaded in Centrium, and Odoo internal notes are flat, so no threading reconstruction is needed. Attachments within notes migrate as Odoo attachments linked to the same parent record.

Centrium CRM

Custom Field

maps to

Odoo CRM

Custom Field (via Odoo Studio)

lossy
Fully supported

Centrium custom fields store as property maps in the export. We extract the field definition and values per record during the extract phase. Before the import phase, we create the corresponding fields in Odoo using Odoo Studio (field name, type, and placement on the form view). Once the schema is deployed, we apply the values during the standard record import. Fields that have no Odoo equivalent (e.g., select options that exceed Odoo's picklist limits) are flagged for the customer's admin to resolve.

Centrium CRM

User / Team Member

maps to

Odoo CRM

User

1:1
Fully supported

Centrium user records (name, email) map to Odoo User accounts resolved by email address. We extract every distinct user referenced on Contact, Deal, Task, and Project records. Users without a matching Odoo account are placed in a reconciliation queue for the customer's admin to provision before record import. Inactive source users migrate as inactive Odoo users so that historical assignment is preserved even if the user account is not reactivated.

Centrium CRM

Attachment

maps to

Odoo CRM

Attachment (ir.attachment)

1:1
Fully supported

Centrium stores file attachments against contacts, deals, and projects. Because Centrium exposes attachments through the UI but not through an API, we scope attachment retrieval during discovery. If the total attachment volume is accessible via the UI export, we include it in the migration. If the attachment volume exceeds the destination storage allocation, we flag this before cutover and recommend either purchasing Odoo storage or archiving attachments externally. Odoo Enterprise includes dedicated document management; Odoo Community relies on file system storage which may have hosting-provider limits.

Centrium CRM

Permissions

maps to

Odoo CRM

None

1:1
Not supported

Centrium's team-level permission model has no granular RBAC equivalent and does not map to Odoo's access rights and record rules. We set all migrated records to be owned by the importing admin account. The customer's Odoo admin rebuilds access groups and record rules post-migration using Odoo's native access control interface. This is documented as a manual post-migration step in the handoff report.

Centrium CRM

Report

maps to

Odoo CRM

None

1:1
Fully supported

Centrium reports are pre-built summary views generated on-demand and are not stored as exportable data objects. We do not migrate historical report outputs. Reporting must be rebuilt in Odoo using its native reporting and dashboard tools (available from the Starter app). We deliver a written list of the Centrium report names and their approximate data sources so the customer's admin can reconstruct them in Odoo.

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.

Centrium CRM logo

Centrium CRM gotchas

High

No public API forces manual export-based migration

High

Storage cap creates hard migration boundary for file-heavy accounts

Medium

Permission system does not translate to standard RBAC

Medium

Contact-company relationship uses a flag, not a distinct object

Low

Deal stage history is flat — no intermediate milestone records

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 Centrium API forces manual CSV/XLSX export

    Centrium CRM publishes no public API endpoint documentation and has no documented REST or GraphQL interface. All data export relies on manual CSV and XLSX downloads from the Centrium UI. The customer must initiate these exports before migration begins, and the export must include all active objects (Contacts, Deals, Tasks, Projects, Notes). Large accounts with hundreds or thousands of records require multiple sequential exports grouped by object type. We normalize the multi-format export into a common schema before loading into Odoo. This manual step is a prerequisite that must be planned; it cannot be automated from the Centrium side.

  • Organization-flag split extends preprocessing time

    Centrium has no separate Companies/Accounts object. Organizations are stored as Contact records with an organization flag. When migrating to Odoo, which has a distinct res.partner (Company) model, we must identify flagged records, create the corresponding Partner records first, then re-link the individual Contact records as children of that Partner. For accounts with large organization lists (thousands of flagged contacts), this preprocessing step adds time to the migration timeline and must be completed before any Contact or Opportunity import begins.

  • Flat deal status cannot reconstruct pipeline stage history

    Centrium stores deal status as a single won/open/lost field with no intermediate stage transitions or timestamps. Odoo's CRM pipeline uses multi-stage Kanban boards with per-stage probabilities. The historical stage progression is not available in the Centrium export, so we map the flat status to the nearest Odoo stage and note in the validation report that stage history cannot be reconstructed. For deals with a complex multi-step sales process, the Odoo pipeline must be configured to reflect the current pipeline state, not the historical journey.

  • Storage scoping is required before attachment migration

    Centrium allocates 1Gb of storage per user. Accounts with multiple users may accumulate multi-gigabyte attachment volumes. Odoo's storage allocation depends on the hosting tier (Odoo Online has per-database limits; Odoo.sh and on-premises have hosting-provider limits). We scope total attachment size during discovery. If the destination storage allocation is lower than the source volume, file attachments may be dropped during import. We flag the total attachment size before cutover and recommend purchasing destination storage or archiving large files externally before migration.

  • Odoo field type constraints may truncate Centrium custom fields

    Centrium uses a simplified custom field model where fields are stored as key-value property maps. Odoo enforces typed fields with specific constraints (character limits on Char fields, valid option sets on Selection fields, relational constraints on Many2one fields). Some Centrium custom fields may exceed Odoo's field type limits and require transformation (e.g., a multi-select text field may need to become a Odoo tags field or a Many2many relation). We identify these during the extract phase and propose a transformation strategy before import.

Migration approach

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

  1. Discovery and export scoping

    We audit the source Centrium account to scope record volumes (Contacts by type, Deals, Tasks, Projects, Notes), total attachment size, custom field definitions, and the distinct user list. We scope the export work the customer must perform manually from the Centrium UI (CSV and XLSX grouped by object), set export file naming conventions, and define the delivery deadline before the migration window begins. We simultaneously review the Odoo destination: edition (Community free vs Online/Enterprise paid), existing pipeline configuration, and storage allocation.

  2. Organization-flag preprocessing and Partner split

    We preprocess the exported Contact file to identify records with the organization flag. These flagged records are split into two datasets: one for Odoo Partner (res.partner) creation and one for Odoo Contact creation as child records. The split uses the organization name as the Partner name and the original contact email as the Partner email where applicable. This step is the primary preprocessing effort and must be validated before any import phase begins. We run a deduplication pass on both Partner and Contact datasets using email address as the primary key.

  3. Odoo field schema preparation

    We review the Centrium custom field definitions and create the corresponding Odoo fields using Odoo Studio before any data import. For each custom field, we map the Centrium field name to an Odoo field name (conforming to Odoo's naming constraints), select the appropriate field type, and place the field on the correct form view (Contact, Partner, Opportunity, or Task). We also configure the Odoo pipeline stages to map from Centrium's flat status (won/open/lost) to the appropriate Kanban stages, setting stage probability percentages and pipeline sequence order.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo test environment (Sandbox or staging database) using production-like data volume. The customer's admin reconciles record counts (Contacts in, Partners in, Opportunities in, Tasks in), spot-checks 25-50 random records against the Centrium source data, and validates that the Partner-Contact relationship is correctly established for organization-flagged records. Mapping corrections and field type adjustments happen here. We do not proceed to production migration until the customer signs off on the sandbox reconciliation report.

  5. Owner reconciliation and user provisioning

    We extract every distinct user referenced in the Centrium export (as Deal owner, Task assignee, or Project member) and match by email against the destination Odoo instance's User table. Any Odoo User record that does not exist is placed in a reconciliation queue. The customer's Odoo admin provisions the missing users (active or inactive depending on whether the original Centrium user is still active) before the production migration begins. This is a manual step requiring admin action; we cannot proceed past Partner and Contact import without OwnerId references resolved.

  6. Production migration in dependency order

    We run production migration in dependency order: Partners (from organization-flagged contacts) first, then Contacts, then Opportunities (with PartnerId resolved), then Tasks (with UserId resolved), then Projects (with linked tasks), then Notes, and finally Attachments. Each phase emits a row-count reconciliation report. The migration uses Odoo's native data import interface (CSV/Excel) for standard records. Attachments that are downloadable via the Centrium UI are uploaded as Odoo ir.attachment records linked to the correct parent record.

  7. Cutover, validation, and automation rebuild handoff

    We freeze Centrium writes during the cutover window, run a final delta import of any records modified during the migration window, then enable Odoo as the system of record. We deliver a written inventory of Centrium automations (none exist in Centrium natively, but any external tools the customer used for follow-up will need to be reconfigured to point to Odoo's API) and the Centrium report list with data source mapping for Odoo reconstruction. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Odoo Automated Actions or Studio Workflows inside the migration scope; these are documented separately for the customer's admin to configure.

Platform deep dives

Context on both ends of the pair

Centrium CRM logo

Centrium CRM

Source

Strengths

  • Unlimited contacts, deals and tasks with no per-record pricing penalty.
  • Free plan for single-user teams with 1Gb storage retained indefinitely.
  • 30-day free trial with no credit card required and no feature restrictions.
  • Simple UI with no mandatory setup or configuration to get started.
  • Custom fields and permission categories available for teams that need modest extensibility.

Weaknesses

  • No documented public API for programmatic access or integrations.
  • No automation or workflow engine for follow-up sequences or stage triggers.
  • Permission model is team-level only with no granular role definitions.
  • Reports are pre-built summary views, not stored exportable datasets.
  • Single pricing tier with storage as the only scaling lever — no advanced features gated behind higher plans.
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. 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 Centrium CRM and Odoo CRM.

  • 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

    Centrium CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Centrium 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 two and four weeks for accounts under 10,000 Contacts and 2,000 Deals with a clean CSV export and no large attachment volumes. Migrations with large organization lists (more than 5,000 flagged contacts to split into Partner records), attachment volumes approaching storage limits, or multiple custom field definitions requiring Odoo Studio configuration move to six to ten weeks. The manual Centrium export step is the primary timeline variable outside our control; we scope it during discovery and build it into the project schedule.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Centrium 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