CRM migration
Field-level mapping, validation, and rollback between OneSuite and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
OneSuite
Source
Twenty CRM
Destination
Compatibility
6 of 10
objects map 1:1 between OneSuite and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Migrating from OneSuite to Twenty CRM restructures your data around a different entity model. OneSuite combines CRM, project management, invoicing, and client portals in one subscription; Twenty is a self-hosted or SaaS CRM focused on People, Companies, and Opportunities with a modern UI and open-source codebase. The core migration maps OneSuite Clients to Twenty Companies and People, OneSuite Leads to Twenty People with a lead status field, and OneSuite Projects to a Twenty custom object that preserves the client relationship. OneSuite's lack of a bulk REST API means we extract via the documented CSV and JSON import paths, chunking large datasets to avoid truncation. We do not migrate Projects-as-tasks, Workflows, automations, or client portal configurations; we deliver a written inventory of these for your admin to rebuild in Twenty.
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 OneSuite 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.
OneSuite
Client
Twenty CRM
Company and People
1:manyOneSuite Clients hold both company and contact data on a single record (contact details, company info, social links, revenue, ICP status). We split this into a Twenty Company record (company-level fields) and a Twenty People record (contact-level fields) linked to the Company via a relationship field. The split is computed using the presence of company name, domain, and revenue fields to determine which fields belong to Company versus People.
OneSuite
Lead
Twenty CRM
People
1:1OneSuite Leads map directly to Twenty People records with a custom lead_status field preserving the original OneSuite stage (New, Contacted, Qualified, Converted). Source attribution and scoring values from OneSuite migrate as custom fields on People. We use email address as the dedupe key during import to avoid creating duplicate People records for Leads that share an email with an existing Client contact.
OneSuite
Project
Twenty CRM
Custom Object (Project)
1:1Twenty has no native project object. We create a Project custom object in Twenty's Data Model with fields for name, description, status, client (linked to the Company record), start date, end date, and budget. The Client-to-Project relationship is preserved by linking the custom object's company field to the migrated Company record. If the customer uses Project templates, we migrate template metadata separately and flag the template automation logic for manual rebuild.
OneSuite
Invoice
Twenty CRM
Note (with attachment)
lossyOneSuite Invoices contain line items, tax rates, payment status, and currency. Twenty has no native invoice object. We migrate invoice records as Note records attached to the relevant Company or People record, with the invoice number, amount, status, and currency preserved in the Note body and as custom fields. Complex multi-currency invoices or custom tax configurations are flagged for manual reconciliation post-migration.
OneSuite
Document
Twenty CRM
Attachment on Custom Object
1:1OneSuite Documents can be associated with Clients or Projects. We migrate document metadata (name, type, URL, created date) as attachments on the relevant Company, People, or Project custom object. Binary file content is not migrated directly; we transfer URLs and flag any Documents exceeding the source account's tier storage cap (30 GB Freelancer, 60 GB Growing Agency) for a separate post-migration file transfer step.
OneSuite
Custom Fields
Twenty CRM
Custom Fields
lossyOneSuite custom fields are flattened directly onto entities with slug-based keys (e.g. clientTier, projectPriority). We parse the API response, create equivalent typed fields in Twenty's Settings → Data Model before migration, and map each slug to the destination field name. If a destination field does not exist, we flag it for creation and hold that entity's migration batch until the field is provisioned. This prevents custom field values from being silently dropped during import.
OneSuite
Member
Twenty CRM
Member (User)
1:1OneSuite Members are team users assigned to Projects, Clients, and Invoices. We extract all Members referenced across entities and map them to Twenty Members. We resolve by email match. Any OneSuite Member without a matching Twenty User is held in a reconciliation queue. Per Twenty's documentation, users must be invited and accept before importing records that reference them, otherwise Owner relationships cannot be mapped.
OneSuite
Pipeline Stage
Twenty CRM
Custom Field Options
lossyOneSuite Lead pipeline stages are user-defined. We map stage names and ordering to a custom select field on the People object in Twenty. Stages with custom automation or scoring rules are flagged in the migration inventory for manual reconfiguration in Twenty because automation logic cannot be replicated in the migration scope.
OneSuite
Templates
Twenty CRM
Note (template metadata)
1:1OneSuite Project and Document templates contain metadata and field structure. We migrate template names, descriptions, and field definitions as Note records on the relevant objects. Template automation logic (workflow triggers, auto-assignment) cannot be replicated automatically and is included in the written automation inventory delivered post-migration.
OneSuite
Files
Twenty CRM
Attachment
1:1OneSuite Files attach to Projects, Tasks, or Invoices. We transfer file metadata (name, type, URL, size) as attachments on the relevant migrated record. Files approaching or exceeding plan storage caps (30 GB Freelancer, 60 GB Growing Agency) are flagged before migration so the customer can decide whether to upgrade OneSuite storage, archive files externally, or migrate file URLs only.
| OneSuite | Twenty CRM | Compatibility | |
|---|---|---|---|
| Client | Company and People1:many | Fully supported | |
| Lead | People1:1 | Fully supported | |
| Project | Custom Object (Project)1:1 | Fully supported | |
| Invoice | Note (with attachment)lossy | Fully supported | |
| Document | Attachment on Custom Object1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Member | Member (User)1:1 | Fully supported | |
| Pipeline Stage | Custom Field Optionslossy | Fully supported | |
| Templates | Note (template metadata)1:1 | Mapping required | |
| Files | Attachment1:1 | Mapping required |
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.
OneSuite gotchas
No documented bulk API forces CSV or JSON UI import for migrations
Storage tier caps apply to imported file content and attachments
API custom field flattening requires slug-aware remapping
Lead count capped on lower tiers may require plan upgrade before migration
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 CSV export path design
We audit the OneSuite account for total record counts across Clients, Leads, Projects, Invoices, Documents, and Members. We assess custom field usage, storage volume, lead count against the plan tier cap (10,000 on Freelancer/Solopreneur), and whether any account is approaching its storage ceiling (30-60 GB). We design the CSV export sequencing: chunk files by entity type and size, flag any entities exceeding OneSuite's import buffer, and produce a written migration scope before any extraction begins.
Twenty workspace preparation and schema design
We create the destination schema in Twenty: custom objects (Project), custom fields on Companies, People, and Opportunities matching the parsed OneSuite custom field slugs, and select options for pipeline stages. We configure any needed picklist values before migration. We then invite all team Members via Twenty's Members settings and confirm acceptance before record import begins, because Owner relationships cannot be resolved without provisioned users.
Data extraction and transformation
We extract data from OneSuite using the documented CSV export paths, chunking by entity type. We apply transformations: Client split into Company and People, custom field slug remapping to typed Twenty fields, date format normalization, and Owner resolution by email against the Twenty Member list. Records with unmapped Owners or missing required fields go to a reconciliation queue for the customer's admin to resolve before the next import batch.
Sandbox migration and reconciliation
We run a full migration into a Twenty test workspace using production-like data volume. The customer's admin reconciles record counts (Companies in, People in, Projects in, Invoices in), spot-checks 25-50 records against the OneSuite source, and validates that custom field values transferred correctly and that relationships (Client-to-Project, Member assignments) resolved as expected. Schema corrections happen here before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Members validated, then Companies (from OneSuite Clients), then People (contacts split from Clients plus migrated Leads), then Projects as custom objects with Company lookup resolved, then Invoices as Note records with custom fields, then Documents and Files as attachments, then activity history if present. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation inventory handoff
We freeze OneSuite writes during cutover and run a final delta migration of any records modified during the migration window. We enable Twenty as the system of record. We deliver the automation inventory documenting every OneSuite workflow, template automation, and client portal configuration requiring rebuild in Twenty. We do not rebuild automations, sequences, or portal configurations as part of the migration scope; those are documented for the customer's admin to rebuild. We support a one-week hypercare window for reconciliation issues raised during initial use.
Platform deep dives
OneSuite
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 OneSuite 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
OneSuite: Not publicly documented.
Data volume sensitivity
OneSuite 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 OneSuite to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your OneSuite 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 OneSuite
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.