CRM migration
Field-level mapping, validation, and rollback between myCRMS.com and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
myCRMS.com
Source
Twenty CRM
Destination
Compatibility
6 of 10
objects map 1:1 between myCRMS.com and Twenty CRM.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from myCRMS.com to Twenty CRM is a migration from a lightly-documented basic CRM into an open-source, self-hostable platform with active development on GitHub (40k+ stars) and an AI-native layer built in. myCRMS.com stores standard CRM records (contacts, companies, pipeline deals with stage data) with limited public API documentation, which means the pre-migration audit phase requires probing export endpoints directly. Twenty CRM enforces strict dependency ordering during import: Companies must exist before People, and People must exist before Opportunities that reference them. We sequence the export in that same dependency order and chunk records to respect Twenty's 20,000-record export limit. Workflows, Smart Lists, and automations from myCRMS.com do not migrate; we deliver a written inventory of these for your admin to rebuild in Twenty's workflow builder. File attachments do not carry over via CSV export and require manual re-upload or a separate API-based migration engagement.
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 myCRMS.com 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.
myCRMS.com
Company
Twenty CRM
Company
1:1myCRMS.com Company records map directly to Twenty's Company object. The company domain name is used as the unique dedupe key during CSV import per Twenty's import documentation. We export Companies first because Twenty requires the 'one' side of one-to-many relationships to exist before People can reference them via companyId. Standard fields (name, domain, address, industry) map to Twenty Company fields of equivalent name.
myCRMS.com
Contact
Twenty CRM
People
1:1myCRMS.com Contact records map to Twenty's People object. Each Contact's linked Company resolves to a companyId lookup during transform. Email address serves as the dedupe key per Twenty's import uniqueness rules. Custom fields on Contact migrate to Twenty custom fields that we pre-create in Settings → Data Model before the CSV import phase. Activity timestamps and owner assignments migrate from fields exposed in the myCRMS.com export.
myCRMS.com
Deal
Twenty CRM
Opportunity
1:1myCRMS.com Deal records map to Twenty's Opportunity object. Deal stage maps to Twenty Opportunity Stage; pipeline data maps to a Twenty Sales Process or Record Type we configure before migration. The linked Company and People records are resolved via companyId and peopleId lookups at migration time. Closed-won and closed-lost dates migrate as Opportunity close date fields.
myCRMS.com
Pipeline / Deal Stage
Twenty CRM
Opportunity Stage + Sales Process
lossymyCRMS.com pipeline stages map to Twenty Opportunity Stage values, which we configure in Settings → Sales Process before importing Opportunities. Each stage gets a probability percentage migrated from the source. The pipeline name becomes a Twenty Record Type label for visual and workflow scoping.
myCRMS.com
Smart List
Twenty CRM
Saved View
lossymyCRMS.com Smart Lists are filtered saved views of contact sets managed in the UI. These do not migrate as data or code. We deliver a written inventory of every active Smart List with its filter conditions and contact count so your admin can recreate them as Saved Views in Twenty's filter builder. This is documented separately from the data migration scope.
myCRMS.com
Custom Field (Contact)
Twenty CRM
Custom Field (People)
lossyAny custom fields discovered on myCRMS.com Contact records are audited during the pre-migration review. We pre-create matching custom fields in Twenty's Settings → Data Model on the People object before CSV import runs, per Twenty's requirement that fields must exist before import. Field type mapping (text to text, date to date, picklist to select) is documented in the mapping spec.
myCRMS.com
Custom Field (Deal)
Twenty CRM
Custom Field (Opportunity)
lossyCustom fields on myCRMS.com Deal records map to custom fields on Twenty Opportunity, pre-created in Settings → Data Model before import. Cross-object lookups (e.g., a Deal referencing a custom object) are resolved at migration time using the target object's unique identifier as the relation key.
myCRMS.com
Custom Object
Twenty CRM
Custom Object
1:1If myCRMS.com contains custom objects (schema-dependent and tier-dependent per limited platform docs), we map them to Twenty Custom Objects. We pre-create the destination schema in Twenty including all fields, field types, and lookup relationships, before importing any custom object data. Custom object records import last per Twenty's import dependency order.
myCRMS.com
Owner
Twenty CRM
User
1:1myCRMS.com Owner assignments on Contact, Company, and Deal records map to Twenty User records. We resolve owners by email match. Per Twenty's documentation, users must accept their workspace invitations before data import begins; otherwise owner lookups resolve empty and require post-import correction. Owners without a matching Twenty User are placed in a reconciliation queue for your admin to provision before record import resumes.
myCRMS.com
Note / Activity
Twenty CRM
Note or Task
1:1myCRMS.com activity records (notes, tasks, meeting records) export as activity timestamped entries. These migrate to Twenty Note objects linked via ContentDocumentLink to the parent People, Company, or Opportunity record. Activity ordering is preserved by setting the Twenty record's creation timestamp to the original myCRMS.com activity timestamp. The migration service does not migrate file attachments embedded in notes via CSV; these require manual re-upload or a separate API-based migration engagement.
| myCRMS.com | Twenty CRM | Compatibility | |
|---|---|---|---|
| Company | Company1:1 | Fully supported | |
| Contact | People1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline / Deal Stage | Opportunity Stage + Sales Processlossy | Fully supported | |
| Smart List | Saved Viewlossy | Fully supported | |
| Custom Field (Contact) | Custom Field (People)lossy | Fully supported | |
| Custom Field (Deal) | Custom Field (Opportunity)lossy | Fully supported | |
| Custom Object | Custom Object1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Note / Activity | Note or Task1: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.
myCRMS.com gotchas
Vendor site references IE 6.0 — product likely not modernised
No public API or developer portal
No third-party review corpus for diligence
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
Pre-migration audit and myCRMS.com export probing
We audit myCRMS.com to identify which export endpoints are available, which fields are exposed for Contacts, Companies, Deals, and any custom objects, and which fields return null or empty. We probe the export mechanism directly (UI export, API endpoint, or backup file) and document the field coverage gap. We also inventory Smart Lists, active pipeline configurations, and any workflow or automation logic visible in the UI. The audit output is a written myCRMS.com field inventory and a confirmed migration scope.
Twenty workspace preparation and schema creation
We create the Twenty workspace structure before importing any data. This includes creating all required custom fields on People, Company, and Opportunity (and any custom objects) in Settings → Data Model, configuring Opportunity Stages and Sales Processes matching the myCRMS.com pipeline, and setting up User accounts for every active myCRMS.com Owner. We invite all team members and wait for invitations to be accepted before proceeding, per Twenty's user-relation requirement. The workspace is validated in a staging context before production migration begins.
Sandbox migration and record-count reconciliation
We run a full dry-run migration into a fresh Twenty workspace using production-like data volume. We reconcile record counts object by object (Companies exported vs Companies imported, People exported vs People imported, Deals exported vs Opportunities imported), spot-check field mapping for 25-50 records against the myCRMS.com source, and validate that lookups (companyId on People, peopleId and companyId on Opportunities) resolved correctly. The customer signs off on the sandbox reconciliation before production migration begins.
Owner provisioning and User reconciliation
We extract every distinct myCRMS.com Owner referenced across Contact, Company, and Deal records and match by email against the Twenty workspace User list. Any Owner without a matching Twenty User goes to a reconciliation queue. The customer's admin provisions the missing Users (active for current team members, inactive for departed users with a need to preserve historical assignment). Migration cannot proceed past this step because OwnerId references on Opportunity and People records require a resolved User to exist at import time.
Production migration in dependency order
We execute production migration in the sequence Twenty enforces: Companies first (from myCRMS.com Company records), then People second (with companyId resolved to the imported Company), then Opportunities third (with companyId and peopleId resolved), then Custom Objects last (with cross-object lookups resolved). Each phase emits a row-count report before the next phase begins. Activity records (notes, tasks) attach to the parent record by ID. We chunk exports and imports to handle any dataset exceeding Twenty's 20,000-record per-export ceiling.
Cutover, validation, and workflow inventory handoff
We freeze myCRMS.com writes during the cutover window, run a final delta migration of any records modified during the migration, then switch Twenty to system-of-record. We deliver a written inventory of all myCRMS.com Smart Lists and any automations requiring rebuild in Twenty's workflow builder. File attachments requiring manual re-upload are documented with record ID and attachment type. We support a 72-hour hypercare window for reconciliation issues reported by the sales team. Workflow rebuild, team training, and post-migration admin configuration are outside standard migration scope and can be scoped as a separate engagement.
Platform deep dives
myCRMS.com
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across myCRMS.com and Twenty CRM.
Object compatibility
1 of 8 objects need a manual workaround.
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
myCRMS.com: Not publicly documented.
Data volume sensitivity
myCRMS.com 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 myCRMS.com to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your myCRMS.com 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 myCRMS.com
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.