CRM migration
Field-level mapping, validation, and rollback between Twenty CRM and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Twenty CRM
Source
Nutshell
Destination
Compatibility
7 of 8
objects map 1:1 between Twenty CRM and Nutshell.
Complexity
BStandard
Timeline
2-3 weeks
Try the reverse
Overview
Moving from Twenty CRM to Nutshell is a schema-normalization migration. Twenty uses a flat companyId foreign key to link People to Companies, while Nutshell supports a flexible Person-to-Organization relationship where Contacts can exist independently or attach to multiple Organizations. We resolve this structural difference during scoping, map each Twenty object to its Nutshell equivalent using the documented object mapping, and apply transformations for field type differences (phone formats, currency precision, date standards) that would otherwise trigger Nutshell's import validation rejections. We preserve relationship context by resolving foreign keys in the correct import order (Companies first, then People, then Opportunities, then Activities, then Custom Objects). Workflows, automations, and custom field definitions do not migrate; we deliver a written field and pipeline inventory for the customer's admin to configure in Nutshell post-migration.
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.
Source platform
Twenty CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Twenty CRM.
Destination platform
Nutshell platform overview
Scorecard, SWOT, gotchas, and pricing for Nutshell.
Data migration guide
The complete Nutshell migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Twenty CRM migration guide
Understand the data you're exporting from Twenty CRM before mapping it.
Destination checklist
Nutshell migration checklist
Pre- and post-cutover tasks for moving onto Nutshell.
Source checklist
Twenty CRM migration checklist
Exit checklist for unwinding your Twenty CRM setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Twenty CRM object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Twenty CRM
Company
Nutshell
Organization
1:1Twenty Company records map directly to Nutshell Organization. We use the Twenty company domain field as the Organization website for deduplication. Organization is imported first because both People (Contact) and Opportunities (Deal) in Nutshell can link to an Organization. No foreign key constraint exists in Nutshell, so we import Organizations before People and use Organization.name as the lookup target for subsequent record batches.
Twenty CRM
People
Nutshell
Person
1:1Twenty People records map to Nutshell Person. The key structural difference is that Twenty enforces a required companyId linking each Person to exactly one Company, while Nutshell supports a flexible Person-Organization relationship where a Person can be unlinked, linked to one Organization, or linked to multiple Organizations. For records that had a companyId in Twenty, we create the Person-Organization link in Nutshell after Organizations are created. For unlinked People, we import directly without an Organization association. Email serves as the deduplication key.
Twenty CRM
Opportunity
Nutshell
Deal
1:1Twenty Opportunity maps to Nutshell Deal. Stage names from Twenty (Appointment Scheduled, Proposal Sent, Negotiation, Closed Won, Closed Lost) map to Nutshell pipeline stages that we configure before import. Amount, close date, and probability transfer directly. We resolve the companyId and any personId foreign keys to their Nutshell equivalents (Organization.id, Person.id) at migration time. Nutshell allows Deals without a linked Party (Person) or Organization, so orphaned Opportunities import successfully.
Twenty CRM
Task
Nutshell
Task
1:1Twenty Tasks map to Nutshell Tasks. We preserve the title, due date, assignee (resolved via owner email to Nutshell User), completion status, and the relational target (linked to Person, Organization, or Deal). Nutshell's Task model does not require a linked Party or Organization, so Tasks attached to any Twenty record type import without blocking on a missing parent.
Twenty CRM
Note
Nutshell
Note
1:1Twenty Notes map to Nutshell Notes. We map the note body content, author (resolved via owner email to Nutshell User), and the relational target. Nutshell Notes attach to the Person record by default when the source Twenty Note was linked to a Person; we resolve the Person lookup via email at migration time.
Twenty CRM
Custom Object
Nutshell
Custom Fields or Tasks
lossyNutshell does not support user-defined custom objects as first-class database entities. Custom Objects from Twenty require a configuration decision during scoping: (a) flat custom fields on Person, Organization, or Deal if the structure is simple (single-level attributes), or (b) a normalized Tasks-based approach if the custom object represents a many-to-one relationship with an event or activity history. We document the schema of each Twenty Custom Object and recommend the target approach before migration. Standard field types from Twenty (text, number, date, select, multi-select) map to equivalent Nutshell field types.
Twenty CRM
Owner
Nutshell
User
1:1Twenty Owner records map to Nutshell Users. We resolve each Owner by email match against the Nutshell User table. Any Twenty Owner without a matching Nutshell User is held in a reconciliation queue for the customer's admin to provision before record import resumes. Owner assignment on Opportunities and Tasks migrates after the User lookup is resolved.
Twenty CRM
Engagement: Call, Email, Meeting, Task
Nutshell
Activity (log)
1:1Twenty engagement records (call, email, meeting, task type) are not separate objects with their own CRUD operations in the same way as standard objects. However, if engagement history is stored as linked activity records, we migrate these as Nutshell Activity logs attached to the relevant Person or Deal. Call disposition, duration, and meeting location transfer to custom Activity fields where Nutshell supports them.
| Twenty CRM | Nutshell | Compatibility | |
|---|---|---|---|
| Company | Organization1:1 | Fully supported | |
| People | Person1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Custom Object | Custom Fields or Taskslossy | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Engagement: Call, Email, Meeting, Task | Activity (log)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.
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
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source Twenty instance for record counts per object, active custom objects, pipeline count and stage definitions, workflow count, and any integration dependencies. We confirm the export capability (API access tier, record volume, field visibility) and identify soft-deleted records that may affect uniqueness. We pair this with a Nutshell tier review to confirm which features (Sales Automation, email sequences, custom fields) are available on the customer's selected plan.
Custom Object schema design
We review every Twenty Custom Object schema during scoping and produce a written recommendation for mapping each to Nutshell equivalents (custom fields on Person/Organization/Deal, or a normalized activity structure). The customer approves the mapping before any data moves. This step is the critical path item for migrations with complex custom object relationships.
Pre-export field visibility and soft-delete reconciliation
We configure the Twenty export view to expose all fields (including custom fields) before extraction. We identify soft-deleted records that share unique values (email for People, domain for Companies) with active records, and coordinate with the customer on whether to purge deleted records or accept restored records in Nutshell. We export each object type in the correct sequence: Companies first, then People, then Opportunities, then Tasks, then Notes, then Custom Objects.
Data transformation and validation
We transform exported data to match Nutshell field types and formats: ISO 8601 dates, E.164 phone numbers, decimal currency values, and picklist normalization. We run a validation pass against Nutshell's expected field types and flag records that would reject on import. Corrections are applied and re-validated before the import file is finalized. We resolve owner email references to Nutshell User records and foreign key lookups (companyId to Organization, personId to Person) in preparation for the import sequence.
Test import in Nutshell sandbox
We run a full test import into the customer's Nutshell instance using a staging batch that covers edge cases (unlinked Persons, missing Organization, date edge cases, special characters in name fields). The customer's admin reviews record counts, spot-checks 20-30 records against the source, and confirms pipeline stage mapping before production migration begins. Any mapping corrections happen here.
Production migration in dependency order
We run production migration in object sequence: Organizations (from Twenty Companies), Persons (from Twenty People, with Organization links resolved), Deals (from Twenty Opportunities, with Party and Organization links resolved), Tasks, Notes, then Custom Object data (mapped per the approved schema). Each phase emits a row-count reconciliation report. We apply a write-freeze on Twenty during the final delta window and import any records modified since the initial export before cutting over.
Cutover, validation, and workflow handoff
We enable Nutshell as the system of record after the final reconciliation pass. We deliver the workflow inventory document and the custom field configuration guide to the customer's admin. We support a three-day hypercare window to resolve post-migration reconciliation issues. We do not rebuild Twenty workflows as Nutshell automations inside the migration scope; that is a separate configuration task for the customer's admin.
Platform deep dives
Twenty CRM
Source
Strengths
Weaknesses
Nutshell
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 Twenty CRM and Nutshell.
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
Twenty CRM: 100 req/min (Pro), 200 req/min (Organization).
Data volume sensitivity
Twenty CRM 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 Twenty CRM to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Twenty CRM to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Twenty CRM
Other ways to arrive at Nutshell
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.