CRM migration

Migrate from CDK Global to Twenty CRM

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

CDK Global logo

CDK Global

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

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

Complexity

BStandard

Timeline

24–48 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CDK Global is an automotive dealer management platform covering sales, service, parts, F&I, and inventory across multiple franchise locations. It stores customers as separate Person records, vehicles as distinct inventory entities, F&I products as deal-linked line items, and service records tied to VIN and repair order numbers. It also runs dealer-specific workflows, F&I menu structures, and CDK Connect integrations that govern day-to-day operations. Twenty CRM is an open-source CRM built on TypeScript, NestJS, and PostgreSQL. Its standard object model covers People, Companies, Opportunities, Notes, and Tasks. Twenty also supports fully customizable custom objects and custom fields on all objects — but it has no native automotive data model for vehicles, F&I products, or service records. We map CDK Person, Company, and Deal records directly to Twenty's standard objects. Vehicle data, F&I product records, and service history become custom objects in Twenty with fields you define before migration. Owner resolution uses email matching between CDK users and Twenty workspace members. We sequence the migration so parent records (Companies) land before child records (People), and both land before Opportunities — preserving referential integrity across the entire object graph. CDK's platform-specific workflows, F&I menus, and CDK Connect integrations do not migrate; we export definitions as a rebuild reference for Twenty's workflow builder.

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

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How CDK Global objects map to Twenty CRM

Each row shows how a CDK Global object lands in Twenty 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

Person (Customer)

maps to

Twenty CRM

Person

1:1
Fully supported

CDK Person records (customers, leads, service clients) map directly to Twenty Person records. CDK Person records sometimes carry multiple role types per individual — a person can be a sales prospect, a service customer, and an F&I client simultaneously. We map them to a single Person record in Twenty and attach role context via a custom role field if needed. Owner resolved by email match to Twenty workspace members.

CDK Global

Company (Dealership / OEM)

maps to

Twenty CRM

Company

1:1
Fully supported

CDK Company records (franchised dealerships, OEM entities) map to Twenty Company records. CDK Company hierarchies (parent franchise / child dealership) map to the Twenty Company ParentId field. Multi-dealership CDK setups with separate Company records per location collapse to individual Twenty Company records; we add a custom Dealership field for cross-location filtering if needed.

CDK Global

Deal (Vehicle Transaction)

maps to

Twenty CRM

Opportunity

1:1
Fully supported

CDK Deal records — representing vehicle sale or lease transactions — map to Twenty Opportunity records. The deal name, amount, close date, and stage all transfer directly. CDK lifecycle stage values map to Twenty's Opportunity stage field via a value-mapping table, and the original CDK stage name is preserved in a custom field for reporting continuity.

CDK Global

Vehicle (Inventory Unit)

maps to

Twenty CRM

Custom Object: Vehicle

1:1
Fully supported

Vehicle is a core data entity in CDK (stock number, VIN, make, model, year, mileage, acquisition cost, status) but has no standard equivalent in Twenty. We create a Vehicle custom object in Twenty with fields matching CDK's vehicle record schema. Vehicle records link to their owning Person records via a VehicleOwner junction field on the Person object, since Twenty's custom objects do not support native junction tables between two custom objects.

CDK Global

F&I Product (Finance & Insurance Product)

maps to

Twenty CRM

Custom Object: F&I Product

1:1
Fully supported

F&I products are line-item records in CDK linked to deals — product type (GAP, extended warranty, paint protection), provider name, cost, and menu position. Twenty has no standard F&I object. We create an F&I Product custom object with fields for product type, provider, cost, menu position, and a lookup to the related Opportunity. CDK's F&I menu configuration (menu structure, provider settings, markup rules) does not migrate — we export it as a reference document for manual rebuild in Twenty.

CDK Global

Service Record

maps to

Twenty CRM

Custom Object: Service Record

1:1
Fully supported

Service records in CDK are tied to VIN and repair order (RO) number — they include service advisor, RO status, service type, open/close dates, and labor/parts costs. Twenty's standard Notes and Tasks objects cannot represent this automotive-specific structure. We create a Service Record custom object with all service fields and a link to the Vehicle custom object via a custom vehicle ID field.

CDK Global

Parts Order

maps to

Twenty CRM

Custom Object: Parts Order

1:1
Fully supported

CDK tracks parts orders for the service department — order number, part number, description, quantity, cost, and status. This has no standard equivalent in Twenty. We create a Parts Order custom object and link it to the related Service Record via a custom field. Dealers who rely on parts order history for service analytics will have that data available in Twenty after migration.

CDK Global

Note / Attachment

maps to

Twenty CRM

Note

1:1
Fully supported

CDK notes and attachments on Person, Company, Deal, or Vehicle records migrate to Twenty Note records. File attachments are re-uploaded to Twenty's file storage. Original timestamps and creating user IDs are preserved. Inline images in notes are extracted and rehosted in Twenty's media storage.

CDK Global

Task / Activity

maps to

Twenty CRM

Task

1:1
Fully supported

CDK tasks (follow-ups, reminders, service appointments) map to Twenty Task records. Original due dates, assignees, and completion status transfer directly. Open tasks active at cutover are included in the delta pickup window so nothing slips through during the transition period.

CDK Global

CDK User / Owner

maps to

Twenty CRM

Workspace Member (Owner)

1:1
Fully supported

CDK users assigned as record owners are resolved by email matching against Twenty workspace members. Unmatched owners are flagged before migration begins — your team either invites them to Twenty first or assigns their records to a designated fallback owner. No record lands in Twenty without a resolved owner.

CDK Global

CDK Custom Object

maps to

Twenty CRM

Twenty Custom Object

1:1
Fully supported

CDK custom objects created by a dealership (beyond the standard CDK modules) map 1:1 to Twenty custom objects. Custom field data types are matched to Twenty field types (text, number, date, select, multi-select, relation, etc.). N:N relationships in CDK custom objects that use junction records require explicit junction objects in Twenty — we surface this in the migration plan before data lands.

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

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • CDK export tools cap at 20,000 records per export

    CDK's Data Export Tool limits exports to 20,000 records per run. Dealerships with large vehicle inventories, extensive service history, or multiple franchise locations routinely exceed this threshold. We handle this by running multiple sequential exports or pulling data via the CDK API in batches. The critical constraint is maintaining referential integrity across batches — each batch must include the linked IDs (company IDs, person IDs) needed to resolve foreign keys in Twenty. We pre-plan batch boundaries by object type and record volume before the first export runs so no relationships break mid-migration.

  • Vehicle and F&I data require custom object creation in Twenty before migration

    CDK stores vehicles as inventory units (stock number, VIN, make, model, year, mileage, acquisition cost) and F&I products as line-item records on deals. Twenty has no standard equivalent for either. We create Vehicle and F&I Product custom objects in Twenty before data lands, defining all required fields (stock number, VIN, provider, cost, etc.) so the migration can write records directly to the correct target. Without pre-created custom objects, CDK vehicle and F&I data would need a generic 'CDK Import' object or manual field creation after migration — both of which break reports and workflows built on the proper object structure.

  • Vehicle-to-person N:N relationships need explicit junction fields in Twenty

    CDK allows one person to own multiple vehicles and one vehicle to have multiple owners (co-buyers, fleet managers). Twenty's custom objects do not support a native junction table between two custom objects — you cannot create a junction object that links Vehicle custom object to Person standard object with standard relationship UI. We work around this by storing vehicle ownership as a linked field on the Person record, using a custom field that references the related Vehicle record ID. This preserves the relationship for reporting but requires custom view configuration in Twenty to display it correctly, rather than using a native related-records list.

  • Multi-dealership CDK setups require workspace segmentation strategy in Twenty

    CDK's multi-dealership feature lets franchise groups manage separate stores within one CDK instance, with data segmented by dealership. Twenty's workspace model uses a single set of People, Companies, and Opportunities per workspace — there is no native multi-workspace concept in the base product. We handle this by adding a custom Dealership field to all migrated objects, which lets Twenty users filter the view by store location. All records from all CDK dealerships land in one Twenty workspace but can be segmented via saved filters or custom views. If strict data isolation per dealership is required (e.g., for privacy or compliance reasons), each dealership needs its own Twenty workspace, which multiplies licensing and management overhead.

  • F&I menu configuration and CDK Connect integrations do not migrate

    CDK's F&I module stores product menu structures — which products appear at which step, provider settings, markup rules, and compliance disclosures — as platform-native configuration that cannot be exported. CDK Connect integrations with third-party tools (Lender Connect, eContracting providers, inventory feeds) similarly live in CDK's integration layer and have no equivalent in Twenty. We export F&I menu definitions and CDK Connect configuration as a reference document for your team to manually rebuild in Twenty or via a new integration layer. This is always disclosed upfront — there is no automated path for F&I menus or CDK Connect integrations.

Migration approach

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

  1. Export and audit CDK data

    We export CDK data using CDK's Data Export Tool (CSV) and CDK API (for large or relational data). We validate the exported file structure against CDK's documented data schema, audit record counts by object type (People, Companies, Deals, Vehicles, F&I Products, Service Records) and by dealership location for multi-store setups, and document all custom objects and custom fields in your CDK instance that will need a custom object or custom field counterpart in Twenty. We flag any records with missing required fields (no email, no company link) so data cleansing can happen before migration.

  2. Pre-create Twenty custom objects

    Before data moves, we create the Vehicle and F&I Product custom objects in Twenty with fields matching CDK's data schema. We also add a VehicleOwner linked field to the Person object for the N:N person-to-vehicle relationship, and a custom Dealership field on all objects if multi-dealership segmentation is required. We configure custom field types (text, number, date, select, relation) to match the data types in the CDK export so no type coercion errors occur during import. We validate that Twenty workspace members have email addresses matching CDK user emails for owner resolution.

  3. Sequence the migration: Companies → People → Opportunities → Custom Objects

    Twenty requires Companies to exist before People (via the companyId relation) and People before Opportunities (via the personId on Opportunity). We execute the migration in strict sequence: Companies first, then People linked to their Company records, then Opportunities linked to their Person and Company records, then Vehicle records with ownership links to Person, then F&I Products and Service Records linked to their parent Opportunities and Vehicles. Each phase validates referential integrity before the next begins — if a Person record's companyId cannot resolve, that Person is held in a deferred queue and retried after the Company phase completes.

  4. Run a test migration with field-level diff

    A representative slice of records (typically 500–1,000 across People, Companies, Opportunities, Vehicles, and F&I Products) migrates first. We generate a field-level diff between the CDK source values and the Twenty destination values for every field, including custom fields and custom object records. You review the diff to confirm that stage names mapped correctly, ownership resolved by email, vehicle ownership links formed properly, and F&I product records attached to the right Opportunity. Test records are removed from Twenty before the production run. We repeat the test run after any mapping adjustments until the diff passes your sign-off.

  5. Execute full migration with delta-pickup window

    Full migration runs in batches (1,000–5,000 records per batch) with referential integrity checks between each batch. After the initial load completes, we run a delta-pickup export from CDK capturing any records created or modified during the cutover window (typically 24–48 hours). That delta file is imported into Twenty and reconciled against the initial load to ensure no record is duplicated and no in-flight deal update is lost. We produce a full audit log of every record written, every record that failed, and the transformation applied to each field. If reconciliation identifies issues, one-click rollback reverts the Twenty workspace to the pre-migration state.

  6. Post-migration verification and rebuild handoff

    We verify record counts match between CDK and Twenty for each object type, spot-check 20–50 records per object in Twenty against the source, confirm all Opportunity-to-Person and Person-to-Company links are intact, and validate that Vehicle ownership links formed on Person records. We deliver the audit log, the CDK-to-Twenty field mapping spreadsheet, and the F&I menu reference document your team uses to rebuild automations in Twenty's workflow builder. CDK Connect integrations are flagged for rebuild via Twenty's REST/GraphQL API or a third-party iPaaS connector.

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.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

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 CDK Global and Twenty 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

    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 Twenty 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 Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CDK-to-Twenty migrations complete the initial data migration in 24–48 hours for under 50,000 records. Dealerships with large vehicle inventories, multi-dealership data, or extensive F&I product history typically need 5–10 days including test migration and delta pickup. Planning and Twenty custom object setup (Vehicle, F&I Product, Service Record) adds another 3–5 days before data moves. The overall timeline includes initial export and validation, custom object creation in Twenty, test migration with field-level diff review, full production migration in batches, delta pickup for changes during cutover, and post-migration verification before go-live.

Adjacent paths

Related migrations to explore

Ready when you are

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