CRM migration
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
Source
Twenty CRM
Destination
Compatibility
11 of 11
objects map 1:1 between CDK Global and Twenty CRM.
Complexity
BStandard
Timeline
24–48 hours
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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)
Twenty CRM
Person
1:1CDK 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)
Twenty CRM
Company
1:1CDK 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)
Twenty CRM
Opportunity
1:1CDK 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)
Twenty CRM
Custom Object: Vehicle
1:1Vehicle 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)
Twenty CRM
Custom Object: F&I Product
1:1F&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
Twenty CRM
Custom Object: Service Record
1:1Service 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
Twenty CRM
Custom Object: Parts Order
1:1CDK 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
Twenty CRM
Note
1:1CDK 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
Twenty CRM
Task
1:1CDK 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
Twenty CRM
Workspace Member (Owner)
1:1CDK 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
Twenty CRM
Twenty Custom Object
1:1CDK 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.
| CDK Global | Twenty CRM | Compatibility | |
|---|---|---|---|
| Person (Customer) | Person1:1 | Fully supported | |
| Company (Dealership / OEM) | Company1:1 | Fully supported | |
| Deal (Vehicle Transaction) | Opportunity1:1 | Fully supported | |
| Vehicle (Inventory Unit) | Custom Object: Vehicle1:1 | Fully supported | |
| F&I Product (Finance & Insurance Product) | Custom Object: F&I Product1:1 | Fully supported | |
| Service Record | Custom Object: Service Record1:1 | Fully supported | |
| Parts Order | Custom Object: Parts Order1:1 | Fully supported | |
| Note / Attachment | Note1:1 | Fully supported | |
| Task / Activity | Task1:1 | Fully supported | |
| CDK User / Owner | Workspace Member (Owner)1:1 | Fully supported | |
| CDK Custom Object | Twenty Custom Object1:1 | Fully supported |
Gotchas + challenges
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 gotchas
CDK's 2024 ransomware outage sets migration precedent
Accounting records are migration-excluded by design
Deal/F&I bundle requires custom field mapping
Data Export Tool output requires transformation for non-CDK targets
Fortellis API rate limits are unpublished
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
CDK Global
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across CDK Global and Twenty CRM.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
CDK Global: Not publicly documented by CDK.
Data volume sensitivity
CDK Global exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during CDK Global to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave CDK Global
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.