CRM migration

Migrate from CDK Global to Odoo CRM

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

CDK Global logo

CDK Global

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between CDK Global and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CDK Global is a dealer management system purpose-built for automotive retail: it tracks vehicles by VIN, manages F&I products (GAP, paint protection, extended service contracts), and ties customer records to specific units across sales, service, and parts departments. Odoo CRM is a modular ERP that models the world as contacts (res.partner), leads and opportunities (crm.lead), and pipeline stages (crm.stage) — it has no native automotive vehicle concept. Migrating from CDK Global to Odoo CRM requires flattening an industry-specific relational model into a general-purpose CRM schema. We extract CDK data via the Fortellis API or CDK Data Export Tool, pulling customers, vehicle associations, F&I deal line items, and service records. In Odoo, customers become res.partner records (company and contact roles), vehicle associations become custom char fields on the partner or a linked stock.vehicle record, F&I deals map to crm.lead with custom fields for product type and reserve amounts, and service history becomes an activity log or a linked crm.lead record per RO number. Odoo's XML-RPC API or CSV import handles the load, with post-migration Odoo Studio configuration to surface the CDK fields in the correct Kanban and form views. Workflows, F&I product rules, and CDK automations cannot migrate — they are destination-side configuration that your Odoo admin rebuilds using Odoo's automation rules and the sale.order product-line model. We flag every untranslatable construct before the migration runs so nothing is lost silently.

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

CDK Global logo

CDK Global

What's pushing teams away

  • The 2024 ransomware breach caused a multi-week outage across CDK's entire dealer base, with significant revenue loss and manual-recovery labor that has dealerships actively evaluating alternatives.
  • CDK charges premium implementation fees (~$10,000) and opaque monthly licensing that many mid-market dealers describe as expensive for the value delivered.
  • Users consistently report CDK runs slowly and suffers random save errors that interrupt customer contracting and deal-closing workflows.
  • Switching DMS providers is architecturally disruptive because CDK stores deeply integrated relationships between vehicles, customers, repair orders, and F&I products that don't export cleanly.
  • Limited pricing transparency and a complex partner-billing model make it difficult for dealers to predict total cost of ownership before committing.

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

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

CDK Global

CDK Customer

maps to

Odoo CRM

res.partner

1:1
Fully supported

CDK customer records (name, email, phone, address) map directly to Odoo res.partner. CDK supports both individual buyers and business entities; the is_company flag on res.partner distinguishes them. CDK customer IDs are stored in a custom field (cdk_customer_id) on the partner for delta-run tracking.

CDK Global

CDK Vehicle / Unit

maps to

Odoo CRM

res.partner (custom field) + stock.vehicle (optional)

1:1
Fully supported

CDK vehicle records (VIN, year, make, model, trim, stock number) have no direct Odoo CRM equivalent. We map VIN to a custom char field (x_vin) on res.partner and optionally create stock.vehicle records for dealerships that want full inventory tracking in Odoo Inventory app. The primary vehicle association is stored as x_primary_vehicle_vin on the contact.

CDK Global

CDK Customer-Vehicle Association

maps to

Odoo CRM

res.partner (multiple records)

many:1
Fully supported

CDK allows one customer to be linked to multiple vehicles (buyer of Vehicle A, co-signer on Vehicle B, previous owner of Vehicle C). Odoo res.partner is one record per person. We preserve the full vehicle-association history as a JSON field (x_vehicle_links) on the primary res.partner, with type, role, and dates per vehicle link. Dealerships can optionally split these into Account Contact Relationships if Odoo Enterprise.

CDK Global

CDK F&I Deal / Finance Application

maps to

Odoo CRM

crm.lead

1:1
Fully supported

CDK F&I deals track finance applications, approved products (GAP, wheel & tire, maintenance contracts), reserve amounts, and lender info. We map these to crm.lead with custom fields: x_fi_product_type (Selection), x_fi_reserve_amount (Monetary), x_fi_lender (Char), and x_fi_deal_number (Char). The lead name reflects the customer + vehicle. Product line items become sale.order.line after opportunity conversion.

CDK Global

CDK F&I Product (GAP, Etch, etc.)

maps to

Odoo CRM

product.product + sale.order.line

1:1
Fully supported

CDK F&I product catalog entries map to Odoo product.product records. Each product type (GAP, tire protection, paint sealant) becomes a product with type=service. CDK product pricing maps to Odoo list_price. Products are linked to the crm.lead via x_fi_product_ids (Many2many) and materialize as sale.order.line after the opportunity converts to a quotation.

CDK Global

CDK Service Repair Order

maps to

Odoo CRM

crm.lead (activity log) or crm.lead (separate record)

1:1
Fully supported

CDK service ROs are first-class records with RO number, vehicle, line items, technician, and close date. Odoo CRM has no native service RO object. We map RO data as activities on the linked crm.lead (log note with x_ro_number, x_ro_technician, x_ro_total), or as a separate crm.lead per RO with stage='Won' if the dealership wants full RO history visible as records. The mapping choice is confirmed during the pre-migration discovery call.

CDK Global

CDK Lead / Prospect

maps to

Odoo CRM

crm.lead

1:1
Fully supported

CDK leads and internet leads (from CDK CRM or third-party sites via CDK integration) map directly to Odoo crm.lead. Source of lead (website form, phone inquiry, walk-in) is preserved in x_lead_source. CDK lead status maps to crm.stage: New → New, Working → Qualified, Sold → Won, Lost → Lost. Probability is set per stage in Odoo's pipeline configuration.

CDK Global

CDK Pipeline / Sales Stage

maps to

Odoo CRM

crm.stage

1:1
Fully supported

CDK pipeline stages (Lead, App Started, Submitted, Funded, Booked) map to Odoo crm.stage records. Each stage gets a probability value matching the CDK close probability for accurate forecasting. New stages can be created in Odoo Settings → CRM → Stages before migration to match CDK's exact stage names.

CDK Global

CDK User / Employee / Owner

maps to

Odoo CRM

res.users

1:1
Fully supported

CDK users (salespeople, F&I managers, service advisors) are matched to Odoo res.users by email address. CDK role (salesperson, finance director, service manager) maps to Odoo res.users groups: salesperson → Sales / User, manager → Sales / Manager. Unmatched CDK users are flagged as a pre-migration action item — the dealership must create Odoo user accounts before migration so owner fields resolve correctly.

CDK Global

CDK Deal / Sold Unit

maps to

Odoo CRM

crm.lead (stage=Won) + sale.order

1:1
Fully supported

CDK sold deals represent a finalized vehicle sale with customer, vehicle, F&I products, and payment details. We map the sold unit to a crm.lead in Won stage (preserving create date and close date) and optionally generate a sale.order for the F&I product bundle. The sale.order links the customer (res.partner), the product/services sold, and the salesperson (user_id).

CDK Global

CDK Attachment / Document

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

CDK file attachments (credit applications, service invoices, vehicle photos) stored in CDK's document management export as files. We re-upload these to Odoo's ir.attachment table linked to the corresponding res.partner or crm.lead record. Odoo Cloud has a 115MB attachment limit per file; files larger than this are flagged for manual delivery.

CDK Global

CDK Inventory / Parts

maps to

Odoo CRM

product.product

1:1
Fully supported

CDK parts inventory records (part number, description, cost, list price, bin location) map to Odoo product.product with type=product for parts and type=service for labor. CDK bin location maps to x_bin_location (Char) as a custom field. Parts not intended for Odoo Inventory app (i.e., reference-only) are stored as x_cdk_part_number on the contact record.

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.

CDK Global logo

CDK Global gotchas

High

CDK's 2024 ransomware outage sets migration precedent

High

Accounting records are migration-excluded by design

Medium

Deal/F&I bundle requires custom field mapping

Medium

Data Export Tool output requires transformation for non-CDK targets

Low

Fortellis API rate limits are unpublished

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

  • CDK vehicle-to-customer N:N associations require custom field strategy

    CDK allows a single customer record to be linked to multiple vehicles with different roles — buyer on one unit, co-signer on another, previous owner on a third. Odoo res.partner is a flat contact record with no native multi-vehicle link. FlitStack maps these as a JSON-serialized array in a custom field (x_vehicle_links) on the res.partner, with vehicle VIN, role, and dates per link. This preserves the full association history but requires Odoo Studio configuration to expose a readable sub-view. Dealerships that need split-out vehicle records for reporting must decide pre-migration whether to create stock.vehicle records and link them via a Many2many field — this is a scope item in the migration plan.

  • CDK F&I product rules and rate叠 tables do not exist in Odoo CRM

    CDK stores F&I product rules — which products are allowed per lender, reserve percentage tables, and backend rate叠 calculations — as system configuration in the F&I module. Odoo CRM has no F&I product rule engine; product eligibility is managed manually or through sale.order.line product configuration. We migrate the F&I product catalog as Odoo product.product records with list prices, but the reserve percentage tables and lender-specific rules must be rebuilt in Odoo as custom fields on product.product or as a separate x_fi_product_rule table. This is a significant post-migration configuration item that requires the dealership's F&I director to define the new rules before go-live.

  • CDK Data Export Tool uses SFTP scheduling that conflicts with Odoo import windows

    The CDK Data Export Tool schedules extracts to an SFTP folder on a daily or weekly cadence — this is a push-based export model. Odoo imports via CSV or XML-RPC are pull-based and require the export files to be available in a reachable location before the import run begins. If the CDK export schedule runs at 2 AM and the migration team needs data at 10 AM, there is a lag. FlitStack coordinates the cutover window to align with the CDK export schedule or uses an on-demand Fortellis API pull to capture the final state before locking the CDK account. The delta-pickup window (24–48 hours) bridges any schedule mismatch during the live cutover.

  • CDK service RO history maps to activities but loses CDK-native service workflow state

    CDK service repair orders have a lifecycle (Open → In Progress → Monitor → Complete → Invoiced) with state-specific business rules — a RO in 'Monitor' status means the vehicle is awaiting a parts backorder. Odoo CRM crm.lead activity log model has no equivalent status state; activities are timestamped events without a stage machine. We map RO status to a custom selection field (x_ro_status) on the activity note, but the CDK-native workflow logic is not transferable. The dealership's service manager must configure Odoo to match the desired RO follow-up workflow using Odoo's CRM Activities (planned actions with deadline and user assignment).

  • Odoo Community edition lacks external API access on free and standard plans

    Odoo pricing tiers gate the external API: the free Community edition and the standard plan have no XML-RPC external API access. CDK data must be imported via CSV upload in Odoo Settings → Import, which has a 1MB file size limit per import. Large dealerships with 50,000+ customer records may need to chunk exports into multiple CSV files. The Enterprise Custom plan ($37.40/user/month) unlocks the full XML-RPC API for automated, chunked imports with no file size limit. FlitStack confirms the Odoo plan tier before migration so the import strategy is set correctly — Community users can still migrate, but the process uses CSV upload instead of API push.

Migration approach

Six steps for a successful CDK Global to Odoo CRM data migration

  1. Inventory CDK data objects and export mechanism

    FlitStack runs a discovery session with the dealership's CDK admin to map all data objects in use — customers, vehicles, F&I deals, service ROs, parts inventory, leads, and users. We identify whether the CDK account uses the CDK Data Export Tool (SFTP push) or the Fortellis API (REST pull) and test connectivity. This step produces a data inventory spreadsheet listing record counts per object, estimated export file sizes, and the export schedule. We flag any custom CDK objects or fields that require field-mapping work before the test migration.

  2. Design Odoo schema and create custom fields

    Before data moves, FlitStack creates all required custom fields in Odoo: x_vin, x_vehicle_year, x_vehicle_make, x_vehicle_model, x_vehicle_trim, x_fi_deal_number, x_fi_product_type, x_fi_reserve_amount, x_fi_lender, x_ro_number, x_ro_status, x_ro_total, x_cdk_customer_id, x_vehicle_links, and x_bin_location. We configure the CRM pipeline stages to match CDK lead and deal statuses. For Enterprise plan users, we set up XML-RPC API credentials; for Community users, we configure the CSV import template. Odoo Studio is used to add custom fields to the contact form and lead Kanban view.

  3. Resolve CDK users to Odoo user accounts

    FlitStack exports the CDK user list (names, emails, roles) and matches each against the dealership's planned Odoo res.users accounts. Salespeople, F&I managers, and service advisors in CDK must have corresponding Odoo user accounts before owner fields can resolve during import. Unmatched CDK users are listed as a pre-migration action item — the dealership creates the Odoo accounts or assigns a fallback user. No record lands in Odoo without a resolved owner_id.

  4. Run sample migration with field-level diff

    A representative slice (typically 100–500 records spanning customers, vehicles, F&I deals, and service ROs) migrates to Odoo first. FlitStack generates a field-level diff comparing source CDK values against the destination Odoo fields for each record. The dealership's admin reviews the diff to confirm vehicle-association mapping, F&I product type assignment, and service RO activity log format. This is the validation gate — if custom field names are missing or value mappings are incorrect, they are corrected before the full run.

  5. Execute full migration with delta-pickup window

    The full CDK dataset is extracted and loaded into Odoo using the validated mapping. A delta-pickup window (24–48 hours) captures any CDK records created or modified during the cutover window — the dealership team continues working in CDK until the final delta is confirmed. FlitStack provides an audit log of every import operation (record count, field count, errors, skipped records) and a one-click rollback script that reverts all imported records if reconciliation fails. After rollback confirmation, the CDK account is placed in read-only mode and the dealership confirms Odoo as the system of record.

Platform deep dives

Context on both ends of the pair

CDK Global logo

CDK Global

Source

Strengths

  • $540B in annual dealer commerce managed through CDK systems, making it the most data-rich DMS in North America.
  • End-to-end stack covering front-office CRM, F&I, fixed operations, parts, and accounting in a single proprietary platform.
  • Fortellis API ecosystem with OAuth authentication and documented Get/Post/History/Async endpoints for vehicle, sales, service, parts, and customer data.
  • Tier IV data centers with PGP encryption and MFA on data exports, meeting FTC Safeguards Rule requirements.
  • CDK Data Export/Import Tool schedules predefined data sets to SFTP with PGP encryption at no additional license cost.

Weaknesses

  • Opaque pricing with no published tiers and implementation fees of $10,000+ create high switching costs that lock in mid-market dealers.
  • 2024 ransomware breach exposed CDK's systemic risk; a weeks-long outage forced dealerships into manual processes and revenue loss.
  • Performance complaints across G2 and SoftwareAdvice consistently cite slow response times and random save errors in production use.
  • Accounting module is deeply integrated and cannot be cleanly decoupled for export, complicating migrations to standalone CRMs.
  • High switching costs and complexity mean CDK migrations typically require weeks of discovery, custom mapping, and parallel-run validation.
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 CDK Global 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

    CDK Global: Not publicly documented by CDK.

  • Data volume sensitivity

    A

    CDK Global exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CDK Global to Odoo CRM migrations complete within 48–72 hours of clock time for smaller dealerships with under 50,000 customer records and standard vehicle-association data. Larger setups with 50,000+ records, multiple F&I product types, and service RO histories extend to 7–14 days. The longest single step is Odoo Studio configuration for custom fields and pipeline stages — that runs in parallel with CDK data export and typically takes 1–3 days before the migration run.

Adjacent paths

Related migrations to explore

Ready when you are

Move from CDK Global.
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