CRM migration

Migrate from Oncord to Odoo CRM

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

Oncord logo

Oncord

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

83%

10 of 12

objects map 1:1 between Oncord and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Oncord to Odoo CRM is a platform-class migration. Oncord is a website-builder-first all-in-one with no documented public API and no formal migration tooling, which shapes every step of the export phase. Odoo CRM is the CRM module of an open-source ERP suite used by over 5 million organizations; it exposes a full XML-RPC API but uses a Lead-then-Contact model that requires reconciliation against Oncord's single Contact object. We map Oncord Contacts to Odoo Leads or Contacts based on deal stage, map Groups to Odoo Tags or Channel records, map Products (where the Commerce add-on was active) to Odoo Product templates, and map Custom Fields through Odoo's ir.model.fields API. Automation workflows, marketing drip sequences, and website-builder content do not migrate; we deliver a written inventory of every Oncord Automation with a recommended Odoo Automated Action or Studio workflow equivalent for the customer's admin to rebuild.

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

Oncord logo

Oncord

What's pushing teams away

  • Feature depth creates a steep learning curve — customers report feeling overwhelmed by the number of tools available and not knowing where to start.
  • Built-in analytics are described as shallow compared to Google Analytics or dedicated BI tools, frustrating customers who need detailed campaign reporting.
  • No formal data export process means customers leaving Oncord must manually download backups or build custom exports, adding friction to migration timelines.
  • Analytics limitations and the learning curve combine to create churn among customers who expected a simpler, more intuitive experience out of the box.
  • The platform is website-builder-first rather than CRM-first, which causes friction for teams that prioritised contact management over web presence.

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

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

Oncord

Contact

maps to

Odoo CRM

Lead or Contact (split required)

1:many
Fully supported

Oncord's single Contact object maps to Odoo Lead for records without an active sale and to Odoo Contact attached to an Account for records with a deal history or commerce association. We apply a split rule based on Oncord's contact tags, group membership, and any deal association. The original Oncord contact ID is preserved in a custom field x_oncord_id on both Lead and Contact for audit reconciliation.

Oncord

Group

maps to

Odoo CRM

Tag or Channel

1:1
Fully supported

Oncord Groups function as static segmentation lists. We map each Group to an Odoo Tag record on the res.partner model, or to a Channel if the group represents a sales team or routing list. Tags are linked via the res.partner.tag.rel many-to-many table. On Lite plans, filters restricted to Groups only are noted as a constraint in the mapping inventory.

Oncord

Custom Fields

maps to

Odoo CRM

Custom Fields (ir.model.fields)

1:1
Fully supported

Oncord CustomFields are extracted via its internal API component and mapped to Odoo custom fields created via ir.model.fields before migration. We handle type mapping: Oncord text and number fields map to Odoo char and float fields; date fields map to Odoo date; dropdown fields map to Odoo selection fields with the same options list. All custom fields must be deployed to Odoo before any partner records are imported.

Oncord

Product (Commerce add-on)

maps to

Odoo CRM

Product Template

1:1
Fully supported

Oncord Products (available only when the Commerce add-on was active) map to Odoo Product Template records. We extract product name, description, price, SKU, inventory count, images, and any custom product fields. Products with variants (size, color) map to Odoo Product Template with Product Variant lines. If the customer had the Commerce add-on, product data migration is included; if Commerce was never active, no product records exist to migrate.

Oncord

Discount and Coupon (Commerce add-on)

maps to

Odoo CRM

Coupon Program or Loyalty Program

lossy
Fully supported

Oncord discount rules and coupon codes map to Odoo's Loyalty Program or Coupon Program depending on whether the discount applies to a specific order or a general promotion. Eligibility conditions and usage limits are documented as a written mapping for the customer's Odoo admin to configure in the CRM or eCommerce module post-migration.

Oncord

Event (Marketing add-on)

maps to

Odoo CRM

Calendar Event

1:1
Fully supported

Oncord Events with RSVP and attendee lists map to Odoo Calendar Event records. Event name, date, location, capacity, and attendee list (linked back to Contact records) migrate. If the customer uses the Odoo Events module instead of the calendar, Events map to event.event records. Attendee status (attending, not attending, maybe) maps to calendar.event.type or a custom selection field.

Oncord

Owner / User

maps to

Odoo CRM

User

1:1
Fully supported

Oncord admin users map to Odoo User records. We resolve by email match. Any Oncord Owner without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision. Role semantics differ: Oncord's admin and editor roles have no direct Odoo equivalent, so we assign the Odoo Standard User or Portal User access level based on the customer's indicated function.

Oncord

Web Form (Marketing add-on)

maps to

Odoo CRM

Form Builder

1:1
Fully supported

Oncord Web Forms and their field-to-contact-property mappings are documented in the written handoff inventory. Odoo's Form Builder or a third-party module (like website_form_builder) replaces Oncord forms. We do not migrate form code or embed scripts; we deliver a field-level map of every Oncord form so the customer's admin can recreate the form structure in Odoo.

Oncord

Automation Workflow (Marketing add-on)

maps to

Odoo CRM

Automated Action or Studio Workflow

1:1
Fully supported

Oncord automation workflows trigger on contact activity, group membership, or time-based schedules. We document the workflow structure (triggers, conditions, actions) in the written inventory. Migration of automation as code is not in scope. The customer receives a detailed list of every Oncord Automation with its trigger logic and a recommended Odoo Automated Action or Studio workflow equivalent, plus the specific Odoo version and module required to implement each one.

Oncord

Activity history (calls, emails, meetings, tasks)

maps to

Odoo CRM

Mail Activity or Project Task

1:1
Fully supported

Oncord engagement records (calls, emails, meetings, tasks, notes) map to Odoo Mail Activity records or Project Task records depending on whether the destination Odoo instance includes the Project module. Email content maps to Odoo mail.message linked to the partner. Call disposition and duration map to custom fields on the activity record. Activity timestamps are preserved to maintain the timeline for sales reps.

Oncord

Account / Billing (if Commerce and Accounting connected)

maps to

Odoo CRM

Partner (with address and fiscal fields)

1:1
Fully supported

Oncord Contacts with associated billing or shipping addresses map to Odoo res.partner records with the address fields populated. If the customer used Oncord's Xero or MYOB sync (available with Commerce add-on), address and company data is already structured for Odoo partner mapping. We preserve the Oncord contact source field as x_oncord_source on the partner for marketing attribution.

Oncord

Company information

maps to

Odoo CRM

Company (res.company) or Contact with company_type = company

1:1
Fully supported

Oncord contacts that represent organizations rather than individuals map to Odoo res.company records or to contacts with company_type set to company and linked as child contacts. Oncord's business type or industry field maps to Odoo's industry_id (res.partner.industry) selection field.

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.

Oncord logo

Oncord gotchas

Medium

Email accounts are not included in the base subscription

Medium

Lite plan restrictions gate most CRM and marketing data

High

No formal export or migration tooling exists

Low

Commerce and Marketing are optional paid add-ons

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

  • Oncord has no documented public API for bulk export

    Oncord publishes no public API reference and provides no structured export tooling. Customers leaving Oncord are directed to download a manual backup file. We work around this by extracting through the CustomFields API component and on-demand account backups, but export completeness depends on what Oncord's internal systems have stored. We cannot guarantee byte-for-byte fidelity without a documented API endpoint. This is a structural limitation of the source platform that adds risk to the migration timeline and requires a data audit before we can confirm full record counts.

  • Odoo separates Leads from Contacts — no single-contact model

    Oncord uses one Contact object. Odoo uses a separate Lead object for unqualified prospects and a Contact object attached to an Account for qualified buyers. There is no automatic answer for which Oncord Contacts should become Leads versus Contacts. We design the split rule during scoping based on whether the contact has an associated deal, a commerce order, or a tag indicating sales qualification. Skipping this design step results in either orphaned Contacts with no Account or unqualified Leads sitting in the CRM with no conversion path.

  • Lite plan restrictions may mean Commerce or Marketing data does not exist

    The $5/month Lite plan introduced in March 2024 restricts Commerce to 15 products and Marketing to 1,000 email sends with group-only filters. Customers on Lite who assumed they had full Commerce or Marketing data may have no product records, no coupon data, and no event records to migrate. We confirm the active plan tier and active add-ons during scoping. Migration effort scoped against non-existent data wastes budget and timeline. If only the base website and contacts plan was active, product, coupon, and event mapping is excluded from the scope.

  • Odoo automated actions are not the same as Oncord Automation workflows

    Oncord's Automation module uses trigger-and-delay builders with contact activity, group membership, and time-based conditions. Odoo's Automated Actions use server actions, on-change triggers, and base.automation modules with different condition syntax and action types. We document every Oncord Automation but do not migrate the logic as code. The customer receives a written inventory with Odoo module and action type recommendations; the rebuild is handled by the customer's Odoo admin or a partner post-migration. This is a known scope boundary for all Oncord-to-Odoo migrations.

  • Odoo support quality is cited inconsistently in community reviews

    Community reviews on Reddit and independent forums describe Odoo's support quality as inconsistent: cloud customers report slower response times compared to Salesforce or HubSpot, and some describe frustration navigating Odoo's partner ecosystem for implementation help. This is not a migration technical gotcha but affects the customer's post-migration experience. We recommend selecting an Odoo certified partner for configuration and support during and after the migration, and flag this during the discovery phase.

Migration approach

Six steps for a successful Oncord to Odoo CRM data migration

  1. Discovery and tier confirmation

    We audit the customer's Oncord account across plan tier, active add-ons (Marketing, Commerce), custom field definitions, Group count, product count, event count, automation count, and engagement volume. We confirm whether Lite plan restrictions apply, because Commerce and Marketing data may not exist for customers on restricted tiers. We pair this with an Odoo edition review: Odoo Community is free but requires manual upgrades; Odoo Online or.sh is the cloud-hosted SaaS tier; Odoo Enterprise adds studio, automation, and approval workflows. The discovery output is a written migration scope with confirmed object list and record counts.

  2. Schema deployment in Odoo staging environment

    We deploy the destination schema in an Odoo staging or sandbox environment using XML-RPC API calls to create ir.model.fields (custom fields) before any data is written. We configure Lead and Contact fields, Account fields, Tags, Product templates, and any custom selection fields. If the customer uses Odoo Project or Helpdesk, those modules are enabled and configured at this stage. Schema must be complete before any partner, product, or activity records are imported because Odoo enforces field existence at write time.

  3. Oncord data extraction

    We extract data from Oncord via the CustomFields API component and on-demand account backups. The export is structured by object: Contacts with all standard and custom fields, Groups with membership lists, Products with variant data and images, Events with attendee RSVPs, and engagement history. Export completeness is verified against Oncord's own backup file. We flag any fields or records that cannot be extracted via the available tooling before the transformation phase begins.

  4. Data transformation and split rule application

    We transform extracted data into Odoo's import format. The primary split rule (Contact to Lead or Contact plus Account) is applied at this stage. Groups become Tags. Custom field values are mapped to the new Odoo field IDs. Owner emails are mapped to Odoo User IDs via the email reconciliation queue. Product SKUs are verified against the Odoo product template list. Any duplicates identified in the source data are flagged in a deduplication report for the customer to resolve before import.

  5. Sandbox migration and reconciliation

    We run a full migration into the Odoo staging environment using XML-RPC API batch inserts with exponential backoff on rate limit responses. The customer's admin reviews record counts (Contacts in, Leads in, Accounts in, Products in, Activities in), spot-checks 25-50 records against the Oncord source, and signs off the mapping before production migration begins. Any field mapping corrections are made in the staging phase, not in production.

  6. Production migration in dependency order

    We run production migration in record-dependency order: User provisioning (validated manually), Companies and Contacts with AccountId resolved, Leads with the split applied, Products and Price List entries (if Commerce add-on was active), Product variants, Events with attendee relations, and Activity history. Each phase emits a row-count reconciliation report before the next phase begins. Odoo's XML-RPC API batch size is managed against Odoo's internal transaction limits to avoid server errors on large inserts.

  7. Cutover, validation, and automation handoff

    We freeze Oncord writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. We deliver the Automation workflow inventory document to the customer's Odoo admin or implementation partner for rebuild. We do not rebuild Oncord Automations as Odoo automated actions inside the migration scope. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

Oncord logo

Oncord

Source

Strengths

  • All-in-one platform removes the need to coordinate separate website, CRM, and marketing vendors.
  • Unlimited contacts on the base plan eliminates per-record billing surprises common in other CRMs.
  • Bundled hosting includes SSL, automated backups, and platform updates at no extra cost.
  • Marketing tools (email, SMS, social, automation) are pre-integrated with the contact database, reducing data silos.
  • Integrated e-commerce with unlimited products and referral tracking on the Commerce add-on.

Weaknesses

  • No publicly documented API reference for developers to programmatically read or write data outside the platform.
  • No formal migration or export tooling — customers leaving Oncord must rely on manual backups or bespoke exports.
  • Lite plan ($5/month) has severe restrictions (1,000 email sends, 15 products, no source code access) that make it unsuitable for active marketing or commerce use.
  • Limited analytics depth compared to Google Analytics or dedicated reporting tools, frustrating data-driven teams.
  • The platform is website-builder-first, which creates friction for teams prioritising CRM functionality over web presence management.
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. All 8 core objects map 1:1 between Oncord and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Oncord and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Oncord and Odoo CRM.

  • 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

    Oncord: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Oncord to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Straightforward migrations under 10,000 Contacts, 2,000 Products, and no Events data land between three and five weeks. Migrations with Commerce products, coupon rules, large Events with attendee lists, or complex Custom Field estates move to eight to twelve weeks because of product variant mapping, attendee resolution, and the schema work needed to configure Odoo's ir.model.fields before data can be written. The Oncord export phase adds one to two weeks because there is no bulk API — extraction relies on CustomFields component calls and manual backup files.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Oncord.
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