CRM migration

Migrate from Nutshell to Twenty CRM

Field-level mapping, validation, and rollback between Nutshell and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.

Nutshell logo

Nutshell

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

80%

8 of 10

objects map 1:1 between Nutshell and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Try the reverse

Twenty CRM
Nutshell

Overview

What this migration involves

Moving from Nutshell to Twenty CRM is a platform architecture migration that spans the API protocol gap and the object model difference between a proprietary SaaS CRM and a modern open-source CRM. Nutshell exposes its data over a JSON-RPC endpoint with no bulk endpoint, requiring paginated reads and careful rate-limit handling; Twenty CRM uses a GraphQL and REST API for data ingestion. We extract Nutshell People as Contacts, Companies as Organizations, and Leads as either Contacts or a separate Lead object depending on Twenty configuration, preserving the flat People-to-Company hierarchy through organization lookups. Activity history migrates as Timeline entries. Nutshell email sequences and Nutshell IQ enrichment data do not migrate; we deliver a written inventory of automation configurations for the customer to rebuild in Twenty's workflow engine. The add-on cost structure in Nutshell (Forms, Email Marketing, Nutshell IQ, SMS) collapses on the hosted Twenty plan, which includes core CRM functionality at a flat rate.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Nutshell logo

Nutshell

What's pushing teams away

  • Reporting features are considered weak by users—many resort to exporting data and performing analysis in Excel rather than using built-in dashboards.
  • Limited customization options for workflows, fields, and pipeline configurations compared to HubSpot or Salesforce, frustrating power users.
  • Mobile app is described as stripped-down relative to desktop, lacking many features available in the full web application.
  • Jack-of-all-trades positioning means Nutshell lacks the depth in any single area—marketing, service, or advanced sales automation—that growing teams eventually require.
  • Email integration limitations documented by TrustRadius reviewers, with some teams reporting reliability issues during high-volume campaign sends.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Nutshell objects map to Twenty CRM

Each row shows how a Nutshell 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.

Nutshell

People

maps to

Twenty CRM

Contact

1:1
Fully supported

Nutshell People records map directly to Twenty CRM Contacts. Standard fields (name, email, phone, address, title) transfer as typed fields. We map People to Contact using the contact API endpoint and resolve the parent Organization lookup by matching the Nutshell Company name to an Organization created in Twenty before the Contact migration. Any People without an associated Company in Nutshell create Organization-less Contacts that the customer can manually link post-migration.

Nutshell

Companies

maps to

Twenty CRM

Organization

1:1
Fully supported

Nutshell Companies map to Twenty CRM Organizations. Company name, domain, address, and industry fields transfer directly. Organization is created first in migration order so that the Organization-Contact lookup relationship is satisfied at Contact insert time. Custom fields on Companies migrate to Organization custom fields pre-created in Twenty's schema.

Nutshell

Leads

maps to

Twenty CRM

Contact

many:1
Mapping required

Nutshell Leads are distinct records separate from People, each with their own custom fields and lifecycle status. We merge Nutshell Leads into Twenty CRM Contacts, preserving the Lead-specific custom fields as custom fields on the Contact record. The original Lead status (New, Contacted, Qualified, Disqualified) is stored in a custom field nut_legacy_lead_status__c for audit and segmentation. This merge reduces record proliferation in Twenty's single Contact model.

Nutshell

Activities

maps to

Twenty CRM

Timeline entries

1:1
Fully supported

Nutshell Activities (calls, emails, meetings, tasks) attach to People or Companies. We migrate these as Timeline entries in Twenty, linked to the corresponding Contact or Organization by resolved ID. Call duration, disposition, and meeting attendees transfer to custom fields on the Timeline entry. Activity timestamps are preserved to maintain the historical sequence.

Nutshell

Pipeline

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Nutshell Pipelines map to Twenty CRM Opportunities. Each pipeline becomes a separate Opportunity type in Twenty with its own stage configuration. We extract pipeline stage names, order, and win/loss status during discovery and recreate them in Twenty's Opportunity settings before any Opportunity data loads.

Nutshell

Pipeline Stages

maps to

Twenty CRM

Opportunity Stage

lossy
Mapping required

Nutshell pipeline stages (Appointment Scheduled, Presentation, Proposal, Negotiation, Closed Won, Closed Lost) map to Twenty Opportunity stages. Stage probabilities migrate as percentage fields. Stage-specific automation triggers in Nutshell are documented but not migrated—Twenty's workflow configuration is a separate rebuild task.

Nutshell

Custom Fields

maps to

Twenty CRM

Custom Fields

1:1
Fully supported

Nutshell custom fields for Companies, People, and Leads are enumerated during discovery. We pre-create matching custom fields in Twenty's Organization, Contact, and Opportunity objects before migration begins. Field types (text, number, date, dropdown) are mapped to Twenty's equivalent field types. Validation rules and required-field settings require manual configuration in Twenty post-migration.

Nutshell

Tags

maps to

Twenty CRM

Tags

1:1
Mapping required

Nutshell tag taxonomy transfers to Twenty CRM tags on Contact and Organization records. Tags used for People and Companies export as a list on the respective record. Tag hierarchy, if any in Nutshell, is flattened during transfer since Twenty uses a flat tag model.

Nutshell

Users/Owners

maps to

Twenty CRM

Users

1:1
Mapping required

Nutshell Users who own records map to Twenty CRM Users. We resolve by email match. Users in Nutshell who do not have a corresponding account in Twenty's destination instance go to a reconciliation queue for the customer to provision before record migration resumes.

Nutshell

Attachments

maps to

Twenty CRM

Files

1:1
Not supported

Nutshell exposes attachment metadata and filenames but not binary blobs via API. We export attachment filenames, URLs, and record associations. The actual files cannot be automatically downloaded and re-uploaded. We provide a manifest of all attachment references so the customer's admin can manually re-attach files post-migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Nutshell logo

Nutshell gotchas

High

Contact tier limits enforced on import

Medium

No bulk API endpoint requires paginated extraction

Medium

Email sequences not exportable via API

Medium

Foundation plan disables key sales features

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Nutshell JSON-RPC API requires paginated extraction with no bulk write on source

    Nutshell's JSON-RPC API has no bulk endpoint, so extracting large datasets requires cursor-based pagination across paginated API requests. We implement rate-limit-aware pagination with exponential backoff to avoid triggering Nutshell's request throttling. On the Twenty side, we use the REST API for ingestion with batch chunking. The asymmetry between Nutshell's pull-based pagination and Twenty's batch ingestion requires careful sequencing to avoid mid-migration timeouts on accounts with 50,000+ records.

  • Email sequences and Nutshell IQ are not exportable

    Nutshell's Pro and Business plans store email sequences as server-side automation configurations inaccessible via the public API. Nutshell IQ enrichment data is displayed inline in the Nutshell UI but not stored as a separate migrateable field. We do not migrate sequences or enrichment data. We document every active sequence (name, steps, trigger conditions) during discovery so the customer has a rebuild checklist for Twenty's workflow engine. Any contact scoring from Nutshell IQ is lost unless the customer exports manually before cutover.

  • People-to-Company hierarchy requires pre-creation of Organizations

    Nutshell's flat People-to-Company hierarchy means a Contact in Twenty can only be created with a resolved Organization ID if the associated Company exists. We must pre-create every Nutshell Company as a Twenty Organization before the first Contact insert. For accounts with hundreds of Companies and thousands of People, this two-phase approach adds a dependency that extends the timeline but prevents orphaned Contacts with missing Organization lookups.

  • Custom field plan limits in Nutshell may restrict pre-migration data capture

    Nutshell's plan tiers impose limits on custom field counts. Teams on lower tiers may have custom fields that were created under a previous plan tier and retained, but the active plan may restrict new field creation. During discovery, we audit the active custom field definitions against the Nutshell plan and flag any fields that may have been created under a higher tier. We cannot migrate fields that Nutshell does not return in the API response due to plan restrictions.

  • Attachment files require manual re-attachment post-migration

    Nutshell's API returns attachment metadata and filenames but not binary file blobs. We extract the attachment manifest (filename, associated record, URL reference if available) but cannot automatically download and re-upload files to Twenty. The customer's admin receives the attachment manifest and must manually re-attach files post-migration. We recommend scheduling the attachment re-attachment during a low-activity window to minimize disruption.

Migration approach

Six steps for a successful Nutshell to Twenty CRM data migration

  1. Discovery and data audit

    We query Nutshell's JSON-RPC API to enumerate all active objects: People, Companies, Leads, Activities, Pipelines, Custom Fields, Tags, and Users. We capture record counts per object, active pipeline configurations, custom field definitions with types, and active sequence names. We also assess the Nutshell plan tier to identify any custom field or feature restrictions that could affect extraction scope. The discovery output is a written migration scope with record counts, pipeline definitions, and a custom field inventory ready for Twenty schema creation.

  2. Twenty schema pre-creation

    We pre-create the Twenty CRM schema before any data extraction begins. This includes creating Organizations (from Nutshell Companies), setting up Opportunity types and stages matching Nutshell pipelines, creating custom fields on Organization, Contact, and Opportunity objects matching Nutshell custom field definitions, and configuring tag taxonomies. Schema is validated in Twenty's sandbox or dev environment before production migration begins.

  3. Paginated extraction and data cleansing

    We extract Nutshell data using paginated JSON-RPC requests with cursor-based pagination. Large datasets are chunked into batches of 500-1,000 records to avoid rate-limit throttling. During extraction, we identify duplicate People records (same email), incomplete records missing required fields, and inconsistent address formats. Data cleansing is performed as a separate phase before transformation, not during migration, to prevent garbage-in-garbage-out issues.

  4. Transformation and field mapping

    We transform Nutshell records into Twenty's API format. People become Contacts with Organization lookups resolved from the pre-created Organization list. Leads merge into Contacts with lead status preserved in a custom field. Activities map to Timeline entries linked to the corresponding Contact or Organization. Pipeline stages map to Opportunity stages. Custom field values map to the pre-created custom fields in Twenty. Tags transfer as flat tag lists on the respective records.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Organizations first (from Companies), then Contacts (from People and Leads), then Opportunities (from Pipelines), then Timeline entries (from Activities), then Tags. Each phase emits a row-count reconciliation report comparing Nutshell source counts to Twenty destination counts. Any mapping discrepancies are corrected before the next phase begins. Attachments are processed last with the attachment manifest delivered to the customer for manual re-attachment.

  6. Cutover, validation, and automation handoff

    We freeze Nutshell writes during cutover, run a final delta migration of records modified during the migration window, and validate a random sample of records against the Nutshell source. We deliver the sequence and automation inventory document to the customer's admin for rebuild in Twenty's workflow engine. We support a one-week hypercare window for reconciliation issues. Post-migration admin support, training, and workflow rebuild are outside standard scope and require a separate engagement.

Platform deep dives

Context on both ends of the pair

Nutshell logo

Nutshell

Source

Strengths

  • Simple, intuitive interface with minimal learning curve for sales teams new to CRM
  • Per-seat pricing is transparent and predictable, with annual billing reducing monthly cost
  • Full data export tool available for all account data including backups
  • Open JSON-RPC API allows programmatic access to all core objects
  • Native multichannel engagement (email, SMS, WhatsApp) without third-party add-ons for communication

Weaknesses

  • Reporting and analytics are considered weak, requiring manual Excel exports for detailed analysis
  • No bulk API endpoint—migration requires paginated API reads that must be rate-limited carefully
  • JSON-RPC API is less common than REST, requiring custom integration code compared to standard REST CRMs
  • Add-on costs (Forms, Nutshell IQ, Email Marketing) are per-company charges that stack on top of per-seat pricing
  • Feature restrictions on entry-level plans mean teams often need mid-tier to get basic automation
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Nutshell and Twenty CRM.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Nutshell: Not publicly documented in summary form..

  • Data volume sensitivity

    A

    Nutshell exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Nutshell to Twenty CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Nutshell to Twenty CRM data migrations

Answers to the questions buyers ask most during Nutshell to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Nutshell to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 20,000 People and 5,000 Companies with no extensive custom field configurations. Migrations with large activity histories (over 200,000 engagement records), multiple Nutshell pipelines, or extensive custom field definitions move to six to ten weeks because of paginated extraction time, custom field type translation, and Timeline entry mapping complexity.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Nutshell.
Land in Twenty CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day