CRM migration
Field-level mapping, validation, and rollback between PBS Systems and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
PBS Systems
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between PBS Systems and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
PBS Systems v10 APEX is a 35-year-old automotive dealership management system with an embedded CRM module built around vehicle sales, service write-ups, parts management, and F&I deal structures. Its data model reflects that automotive context — customer records carry vehicle associations, deal records embed financing terms, and the CRM layer is secondary to the DMS workflow. Twenty CRM is a modern open-source CRM built on TypeScript, NestJS, React, and PostgreSQL, with a generic object model designed for People, Companies, Opportunities, Notes, and Tasks, plus unlimited custom objects. It has no native automotive context, which means PBS-specific concepts like F&I products, stock numbers, deal types, and trade-in values must be mapped to Twenty custom objects or custom fields. FlitStack AI extracts PBS data via the PBS database export interface, transforms it into Twenty's CSV or bulk-import format, creates the necessary custom fields and objects in Twenty before import, and sequences the load so foreign keys resolve correctly — companies first, then people, then opportunities. We preserve original create dates, owner assignments, and activity timestamps. Workflows, automations, and reporting templates that existed in PBS do not migrate; we export their definitions as a rebuild reference for your Twenty admin. The migration runs against Twenty's REST and GraphQL APIs with a 24–48 hour delta-pickup window that captures any records modified during cutover.
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 PBS Systems 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.
PBS Systems
PBS Customer / Contact
Twenty CRM
People
1:1PBS customer records map directly to Twenty People records. PBS stores name, phone, email, and address on the customer record — these map to Twenty's name, email, phone, and address fields. PBS customers without a company association land as standalone People records in Twenty.
PBS Systems
PBS Customer Address
Twenty CRM
People (address fields)
1:1PBS customer address fields (street, city, state, postal code, country) map directly to Twenty People address fields. If a PBS customer has multiple addresses (mailing vs. physical), the primary address maps to Twenty and secondary addresses are stored as Note records for reference.
PBS Systems
PBS Dealership / Organization
Twenty CRM
Company
1:1PBS stores dealership and organization context on customer records. If PBS exposes a standalone company or dealership entity, it maps to Twenty Company records. Company name, industry (automotive), website, and employee count translate to Twenty Company fields. PBS dealerships that span multiple locations are handled as separate Company records in Twenty, preserving each location's unique address and contact information. This ensures your Twenty workspace mirrors the full dealership network structure from PBS.
PBS Systems
PBS Deal / F&I Contract
Twenty CRM
Opportunity
1:1PBS deal records — including deal amount, financing terms (APR, term length, down payment), F&I products (GAP, tire protection, service contract), trade-in value, and stock number — map to Twenty Opportunity records. F&I-specific fields and stock number migrate as Twenty custom fields because Twenty has no native F&I or stock-number concept.
PBS Systems
PBS Deal Status / Stage
Twenty CRM
Opportunity.stage (custom pick-list)
1:1PBS deal stages (Pending, Approved, Funded, Delivered, etc.) map to a custom Opportunity stage pick-list in Twenty. Stage values are mapped value-by-value, and a custom probability field re-applies the probability weightings from PBS for accurate forecasting in Twenty. PBS stage names are preserved exactly as they appear in your PBS environment to ensure pipeline reporting continuity. Any PBS stage that does not have a direct Twenty equivalent is assigned the closest matching stage, with deviations documented in the pre-migration audit report for admin review before finalization.
PBS Systems
PBS Vehicle Record
Twenty CRM
Custom Object: Vehicle
1:1PBS vehicle records (VIN, make, model, year, color, trim, mileage, stock number) have no direct equivalent in Twenty's standard objects. We create a Vehicle custom object in Twenty with fields for VIN, StockNumber, Make, Model, Year, Color, Trim, and Mileage. Each Vehicle is linked to a People record (customer) and an Opportunity record (deal).
PBS Systems
PBS Activity (Call / Email / Meeting)
Twenty CRM
Task / Note
1:1PBS call logs, email records, and meeting notes map to Twenty Tasks and Notes objects. Tasks capture the activity type, subject, date, owner, and outcome. Notes capture free-form content with original timestamps and are linked to the relevant People or Opportunity record in Twenty.
PBS Systems
PBS Service Write-Up
Twenty CRM
Custom Object: ServiceWriteUp (or Note)
1:1PBS service write-ups contain labor lines, parts used, service advisor, and RO number. These migrate as a custom object in Twenty if the PBS export provides structured service records, or as Notes attached to the People record if only narrative data is available. Advisor name maps to the Twenty Workspace Member relation.
PBS Systems
PBS Owner / User
Twenty CRM
WorkspaceMember
1:1PBS owner IDs are resolved by email match against Twenty Workspace Members. PBS users who do not have a corresponding Twenty account are flagged before migration. Their records are assigned to a fallback Twenty user or held in a staging queue for admin assignment after the migration.
PBS Systems
PBS Custom Fields
Twenty CRM
Custom Fields on relevant object
1:1PBS custom fields on customer, deal, and vehicle records migrate to Twenty as custom fields on the equivalent object. Each custom field is created in Twenty Settings → Data Model before the migration run. Field type is inferred from PBS data (text, number, select, multi-select, date, relation) and matched to the corresponding Twenty field type.
PBS Systems
PBS Parts Inventory Reference
Twenty CRM
No equivalent in Twenty
1:1PBS parts inventory records (part number, description, cost, list price, bin location) are DMS-specific and have no CRM equivalent in Twenty. If the migration scope includes parts data, we store a reference export as a CSV file alongside the Twenty migration so the parts data can be accessed independently.
PBS Systems
PBS F&I Product (GAP, Tire, Service Contract)
Twenty CRM
Custom Field on Opportunity
1:1F&I products sold as part of a PBS deal (GAP coverage, tire protection plan, prepaid maintenance, service contract) migrate as custom multi-select or text fields on the Opportunity record in Twenty. Product name, provider, and term are preserved in separate custom fields so the F&I product mix is visible on the Twenty deal record.
| PBS Systems | Twenty CRM | Compatibility | |
|---|---|---|---|
| PBS Customer / Contact | People1:1 | Fully supported | |
| PBS Customer Address | People (address fields)1:1 | Fully supported | |
| PBS Dealership / Organization | Company1:1 | Fully supported | |
| PBS Deal / F&I Contract | Opportunity1:1 | Fully supported | |
| PBS Deal Status / Stage | Opportunity.stage (custom pick-list)1:1 | Fully supported | |
| PBS Vehicle Record | Custom Object: Vehicle1:1 | Fully supported | |
| PBS Activity (Call / Email / Meeting) | Task / Note1:1 | Fully supported | |
| PBS Service Write-Up | Custom Object: ServiceWriteUp (or Note)1:1 | Fully supported | |
| PBS Owner / User | WorkspaceMember1:1 | Fully supported | |
| PBS Custom Fields | Custom Fields on relevant object1:1 | Fully supported | |
| PBS Parts Inventory Reference | No equivalent in Twenty1:1 | Fully supported | |
| PBS F&I Product (GAP, Tire, Service Contract) | Custom Field on Opportunity1: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.
PBS Systems gotchas
No public data export API for self-serve migration
Custom fields vary per dealership with no standard schema
Service history links to parts and technicians require careful relationship mapping
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
Audit PBS data and build the migration mapping document
FlitStack AI begins every PBS migration with a data audit using the PBS database export interface or partner API channel. We inventory all customer records, deal records, vehicle records, activity logs, service write-ups, and custom fields present in the PBS export. We then build a detailed mapping document that specifies for every field: the PBS field name, the Twenty object and field name, the mapping type (direct, transformed, value-mapped, custom field required), and any transformation logic required. This document is reviewed with your team before any field creation or data movement begins. The audit also identifies records that will not migrate cleanly — orphaned records, records with invalid foreign keys, and PBS-specific data with no Twenty equivalent — so these can be resolved or documented as intentional exclusions.
Create Twenty custom fields and custom objects before import
Before any CSV data is uploaded to Twenty, FlitStack AI creates all necessary custom fields and custom objects in the Twenty workspace via Settings → Data Model. This includes the Vehicle custom object with VIN__c, Make__c, Model__c, Year__c, Color__c, Mileage__c, and StockNumber__c fields; custom fields on the Opportunity record for APR__c, Finance_Term__c, Down_Payment__c, Trade_In_Value__c, and FI_Products__c; custom fields on People for Original_Create_Date__c and Source_System_ID__c; and the ServiceWriteUp custom object with labor and parts fields. Custom pick-list values are populated with the exact stage names and F&I product names from the PBS export so value-mapping is accurate. This step ensures that Twenty's import validator does not reject any CSV rows for missing field references when the migration runs.
Resolve PBS owners and users by email against Twenty Workspace Members
PBS owner IDs and user records are resolved by email match against the Twenty workspace member list. FlitStack AI generates a pre-migration owner resolution report that lists every PBS owner, their email, their Twenty match status (matched, not found, or duplicate email), and the proposed resolution (map to matched user, assign to fallback owner, or flag for admin decision). PBS users who do not yet have a Twenty account are either invited before migration or their records are assigned to a designated fallback Twenty user so no migrated record lands without an owner. This step is critical because Twenty's Task and Opportunity records require an assigneeId relation to a Workspace Member, and unresolvable owners would cause those records to fail import validation.
Sequence and run the migration: Companies → People → Opportunities → Custom Objects → Activities
FlitStack AI sequences the migration to respect Twenty's foreign-key constraints. Companies are migrated first (the 'one' side of the relationship), then People with their companyId relations resolved to the migrated Company records, then Opportunities with companyId and personId relations resolved, then Vehicle and ServiceWriteUp custom objects linked to their parent Opportunity or People records, and finally Tasks and Notes attached to the relevant records. Each stage runs a validation pass that checks record counts, required field completeness, and foreign-key resolution before the next stage begins. Original create dates, modified timestamps, and owner assignments are preserved throughout. A field-level diff is generated after each stage comparing source values against the Twenty record to verify mapping accuracy.
Cut over with delta-pickup and one-click rollback available
The full migration runs against Twenty's API with a delta-pickup window of 24–48 hours after the primary load completes. During this window, any PBS records created or modified after the initial extraction are captured and applied to Twenty. Your team continues working in PBS during the cutover period — FlitStack AI uses scoped read access only, so no PBS data is altered. An audit log records every operation performed in Twenty (insert, update, skip). If reconciliation fails — a field mapping produces incorrect values, a record set is incomplete, or a custom object fails to link — FlitStack AI executes a one-click rollback that reverts the Twenty workspace to its pre-migration state, allowing the migration to be re-run with corrected mapping after the issue is resolved. Post-migration, a final validation report is delivered comparing PBS record counts against Twenty record counts with a field-by-field completeness score.
Platform deep dives
PBS Systems
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 PBS Systems 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
PBS Systems: Not publicly documented..
Data volume sensitivity
PBS Systems doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 PBS Systems to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your PBS Systems 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 PBS Systems
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.