CRM migration
Field-level mapping, validation, and rollback between OnePageCRM and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
OnePageCRM
Source
Twenty CRM
Destination
Compatibility
10 of 11
objects map 1:1 between OnePageCRM and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from OnePageCRM to Twenty CRM is a structural migration for small sales teams that have outgrown OnePageCRM's action-inbox model and are looking for open-source data ownership. OnePageCRM uses a flat data model: People (contacts), Organizations (companies), and Deals all support Custom Fields, Tags, and Statuses. We preserve the Next Action date and text during export and map Predefined Items to Twenty's product objects. The critical gap is that OnePageCRM's native export cannot pull email body content or attachments from contact records; we surface this during scoping and handle partial extraction via API reads where feasible. Workflows, Autoflow sequences, and custom integrations do not migrate; we deliver a written automation inventory for your admin to rebuild in 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 OnePageCRM 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.
OnePageCRM
Contact (Person)
Twenty CRM
Person
1:1OnePageCRM Contacts map to Twenty Person records. The Contact's name, emails, phones, addresses, social URLs, and Next Action date all transfer directly. Next Action text becomes a Task title with the Next Action date as the task due date, linked to the Person. Custom contact fields from OnePageCRM must be pre-created in Twenty's Data Model before import; we provide the checklist during scoping. Tags on the contact migrate as labels on the Person record.
OnePageCRM
Organization (Company)
Twenty CRM
Company
1:1OnePageCRM Organizations map to Twenty Company records. The export includes company name, phone, address, industry, website, and custom company fields. We preserve the contact-to-organization linkage by matching Organization name during Company import, then resolving the Person-to-Company link during Person import using a company lookup field. Custom company fields must exist in Twenty before import.
OnePageCRM
Deal
Twenty CRM
Opportunity
1:1OnePageCRM Deals map to Twenty Opportunity records. Deal name, amount, stage, close date, and pipeline assignment transfer directly. The OnePageCRM dealstage maps to Twenty's Opportunity stage values. Multi-month deal flags and margin/commission/cost fields migrate as custom Opportunity fields if they exist in the destination schema. Closed Won and Closed Lost deals migrate as historical records with the original stage preserved.
OnePageCRM
Status
Twenty CRM
Opportunity Stage
lossyOnePageCRM Status taxonomy (Prospect, Qualified, Customer, etc.) maps to Twenty Opportunity stage values. We configure the destination stage values in Twenty Settings → Data Model before import and document the mapping in the runbook. Statuses that have no Twenty equivalent are created as custom stage values.
OnePageCRM
Lead Source
Twenty CRM
Custom Field on Person
1:1OnePageCRM Lead Source (website inquiry, phone call, referral, etc.) migrates as a custom picklist field on the Person object in Twenty. We create the field during schema pre-creation if it does not already exist, and map each distinct OnePageCRM Lead Source value to a Twenty picklist option.
OnePageCRM
Tag
Twenty CRM
Label on Person or Company
1:1OnePageCRM Tags assigned to Contacts and Deals migrate as labels in Twenty. Tags are stored as a flat namespace; we create the label associations during import by matching the tag name against the pre-provisioned label list. Tags on Deals migrate as labels on the linked Opportunity.
OnePageCRM
Predefined Action (Saved Action Template)
Twenty CRM
Task Template
1:1OnePageCRM Predefined Actions are template task sequences users assign to contacts. We map these to Twenty's task records, creating task templates from the Predefined Action name and step list. The template tasks are created as draft tasks attached to the Person record. Active workflow assignments (Autoflow) do not migrate; we document each Autoflow in the automation inventory for rebuild.
OnePageCRM
Predefined Item (Product Catalog)
Twenty CRM
Product
1:1OnePageCRM Predefined Items (products and services used in deal creation) map to Twenty Product records. We preserve name, price, quantity, grouping, and Standard Price Book entries. Product groupings map to Twenty's product family or a custom picklist field. Line items on Deals migrate as OpportunityLineItems with Pricebook2 reference resolved at migration time.
OnePageCRM
Note and Call Log
Twenty CRM
Note or Task
1:1OnePageCRM Notes and Call Logs attached to contacts migrate to Twenty Note records linked via content document to the Person. Call disposition and duration migrate as custom fields on the Note record. Note body text migrates as rich text. Email body content cannot be exported from OnePageCRM natively; we attempt partial extraction via API rate-limited reads but document which records have incomplete conversation history.
OnePageCRM
Custom Field (Contacts, Companies, Deals)
Twenty CRM
Custom Field on Person, Company, or Opportunity
1:1Admin-created custom fields for contacts, companies, and deals must be pre-created in Twenty Settings → Data Model before any import. We provide a custom field checklist during scoping that covers every source field, its data type, and the recommended Twenty field type. Multi-select picklists in OnePageCRM map to multi-select picklists in Twenty. Unsupported field types (e.g., rich-text areas exceeding character limits) are flagged and resolved during schema review.
OnePageCRM
Owner (User)
Twenty CRM
WorkspaceMember (User)
1:1OnePageCRM Owners map to Twenty WorkspaceMembers by email address match. We extract every distinct Owner referenced on Contact, Organization, and Deal records and match against the Twenty workspace user list. Any OnePageCRM Owner without a matching Twenty user goes to a reconciliation queue; the customer provisions the missing workspace member before record import resumes because OwnerId references are required on Person and Opportunity imports.
| OnePageCRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact (Person) | Person1:1 | Fully supported | |
| Organization (Company) | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Status | Opportunity Stagelossy | Fully supported | |
| Lead Source | Custom Field on Person1:1 | Fully supported | |
| Tag | Label on Person or Company1:1 | Fully supported | |
| Predefined Action (Saved Action Template) | Task Template1:1 | Fully supported | |
| Predefined Item (Product Catalog) | Product1:1 | Fully supported | |
| Note and Call Log | Note or Task1:1 | Fully supported | |
| Custom Field (Contacts, Companies, Deals) | Custom Field on Person, Company, or Opportunity1:1 | Fully supported | |
| Owner (User) | WorkspaceMember (User)1: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.
OnePageCRM gotchas
Email bodies and attachments are not exported from OnePageCRM
Duplicate detection fires after import, not during
API rate limit of 5 req/s constrains bulk extraction
Custom Fields must be pre-created before import
Merge Import updates existing contacts rather than creating new ones
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
Discovery and scoping
We audit the OnePageCRM account across plan tier (Professional/Business/Enterprise), custom field count, pipeline count, Predefined Items, Predefined Actions, active Autoflow workflows, and engagement volume. We pair this with a Twenty workspace readiness assessment: checking whether custom fields and custom objects have been pre-created in Settings → Data Model, whether workspace members have been invited and accepted, and whether the customer's pipeline stages map cleanly to Twenty Opportunity stages. The discovery output is a written migration scope, field mapping document, and automation inventory.
Schema pre-creation in Twenty
We create all required custom fields (contact, company, and deal-level) in Twenty Settings → Data Model before any data import. We configure Opportunity stage values to match the OnePageCRM status taxonomy, create any custom picklist options for Lead Source and Tags, and set up the Product price book. Custom objects and their lookup relationships are provisioned here. This step requires the customer's Twenty admin to complete if self-hosted; we provide the schema specification document to guide the setup.
CSV export and data extraction
We export data from OnePageCRM using its native CSV export for bulk records (Contacts, Organizations, Deals, Products) and reserve API v3 calls for targeted lookups such as custom field metadata and contact-organization relationship verification. We run pre-import deduplication on email address as the primary key and flag any records with partial email body content for the customer to review before loading. The extraction emits a record-count report by object type.
Data transformation and relationship resolution
We transform extracted data into Twenty-compatible CSV format, applying field-type mapping (dates to ISO 8601, phone numbers to E.164 format, picklist values to the target enum). We resolve Organization-to-Company linkage during Company import, then resolve Person-to-Company linkage during Person import using company name as the lookup key. Predefined Actions are converted to task templates; Predefined Items are converted to Product records with price book entries. Any OnePageCRM Owner without a matching Twenty WorkspaceMember is held in the reconciliation queue for admin provisioning.
Sandbox migration and reconciliation
We run a full migration into the customer's Twenty instance using the cleaned and transformed CSV files in dependency order: Companies first (for lookup resolution), then Persons (with CompanyId resolved), then Opportunities (with PersonId and CompanyId resolved), then Products and Pricebook entries, then Tasks (from Notes, Call Logs, and Next Action dates), then Labels (from Tags). Each phase emits a row-count reconciliation report. The customer spot-checks 25-50 records against the source and signs off before production cutover.
Production cutover and automation handoff
We freeze writes in OnePageCRM during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We deliver the automation inventory document listing every Autoflow workflow and Predefined Action with its trigger, conditions, and recommended Twenty workflow equivalent. We support a three-day hypercare window to resolve any record relationship issues or field mapping corrections raised by the sales team. We do not rebuild Autoflow workflows or Predefined Action sequences as Twenty workflows inside the migration scope.
Platform deep dives
OnePageCRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 OnePageCRM and Twenty CRM.
Object compatibility
1 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
OnePageCRM: 5 req/s average, 10 req/s burst (sliding window).
Data volume sensitivity
OnePageCRM 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 OnePageCRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your OnePageCRM 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 OnePageCRM
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.