CRM migration

Migrate from Nurture to Twenty CRM

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

Nurture logo

Nurture

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Nurture and Twenty CRM.

Complexity

CModerate

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Nurture to Twenty CRM is a structural migration from a per-seat-plus-usage-fee model to an open-source self-hosted or $9/user cloud model. Nurture uses a standard CRM object model with Contacts, Companies, Deals, Activities, and Tasks; Twenty uses a Company-Person-Opportunity-Activity model with a runtime custom data model that allows custom objects and custom fields at any tier. We sequence imports in strict dependency order: Companies before Contacts, Opportunities after the Company lookup is resolved, and Activities after all parent records exist. Custom fields from Nurture require pre-creation in Twenty's data model via the Settings → Data Model panel before data loads. Workflows and done-for-you automation packages from Nurture do not migrate as code; we deliver a written inventory of every active workflow for your admin to rebuild in Twenty's workflow builder. Usage-based telephony and SMS records from Nurture migrate as Activity notes rather than native call objects, as Twenty does not include built-in telephony at this stage.

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

Nurture logo

Nurture

What's pushing teams away

  • Vendor footprint is smaller than HubSpot, ActiveCampaign, Marketo, or Pardot — third-party reviewer signal is limited, making feature claims harder to validate.
  • Pricing is described as subscription-based but the vendor does not publish a public rate card; smaller teams cannot self-serve their way to a quote.
  • Sources conflict on whether the public API is openly available — some indicate yes, others state the official site does not mention public API access. This ambiguity adds risk to integration-heavy implementations.
  • Native CRM functionality is intentionally light — Nurture pairs with an external CRM rather than absorbing CRM functionality, so customers wanting consolidated marketing + sales tooling often migrate to HubSpot.
  • Automation depth (multi-branch journeys with conditional logic) is more limited than enterprise marketing automation; teams running complex lifecycle programs typically outgrow it.

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 Nurture objects map to Twenty CRM

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

Nurture

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Nurture Contact records map directly to Twenty Person records. We extract firstname, lastname, email, phone, title, and address fields and map them to their Twenty equivalents. The original Nurture owner (hubspot_owner_id) is preserved in a custom field nurture_original_owner__c on the Person record. If the Nurture export includes lifecycle stage or contact status as a custom property, we map it to a custom select field in Twenty for segmentation continuity.

Nurture

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Nurture Company records map directly to Twenty Company records. The Company record must be created before any Person import because the Person-Company relationship (address field) is a foreign key that must resolve at insert time. We extract domain, industry, employee count, annual revenue, and address fields from Nurture and map them to the corresponding Twenty Company fields. Company name is the dedupe key during import to prevent duplicate Companies.

Nurture

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Nurture Deal records map to Twenty Opportunity records. The deal amount, deal stage, close date, and pipeline assignment migrate directly. We map Nurture pipeline stages to Twenty Opportunity stage values and create a corresponding Pipeline in Twenty's data model before migration. If Nurture stores deal owner as a separate property, we resolve it against the WorkspaceMember mapping.

Nurture

Deal Stage

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

Each Nurture pipeline and its associated stages are pre-created in Twenty as Opportunity stages before Deal migration begins. We map Nurture stage names to Twenty stage names, preserving probability percentages where Nurture exposes them. The stage configuration is validated in a Twenty Sandbox or test instance before production migration.

Nurture

Activity

maps to

Twenty CRM

Task

1:1
Fully supported

Nurture Activity records (calls, emails, meetings, tasks, notes) map to Twenty Task and Event records based on activity type. We use the activity type field from Nurture to determine the mapping: phone activities become Task with a call subtype, email activities become Task with an email subtype, meetings become Event records, and standalone tasks map to Twenty Task. All timestamps (created_at, updated_at) are preserved to maintain the activity timeline order. The linked Contact and Company references are resolved to the migrated Person and Company IDs.

Nurture

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Nurture standalone Task records (to-dos, reminders) map to Twenty Task records. Task subject, description, due date, priority, status, and owner assignments migrate directly. We resolve the Nurture owner ID to the corresponding WorkspaceMember in Twenty and set the Twenty Task's assigned_to field accordingly. Completed status and completion timestamps are preserved.

Nurture

Custom Field (any object)

maps to

Twenty CRM

Custom Field (same object)

lossy
Fully supported

Nurture custom fields on any standard object (Contact, Company, Deal, Activity) require pre-creation in Twenty's data model before data migration begins. We create each custom field via Twenty's Settings → Data Model panel, selecting the correct field type (text, number, select, multi-select, date, currency, etc.) to match the Nurture data. API names are preserved from Nurture where possible, with underscores replacing spaces. Field order and visibility settings are configured to match Nurture's layout.

Nurture

Custom Object (Nurture)

maps to

Twenty CRM

Custom Object (Twenty)

1:1
Fully supported

Nurture custom objects map to Twenty custom objects created via the /metadata API before migration. We pre-create the destination schema in Twenty, including all custom fields and lookup relationships, then migrate the data through Twenty's GraphQL or REST API. If Nurture custom objects have lookup relationships to standard objects (Contact, Company, Deal), we resolve the parent reference IDs after the standard object migration phase completes.

Nurture

Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Nurture Owner records are mapped to Twenty WorkspaceMember records by email address. We extract every distinct owner referenced on Contact, Company, Deal, and Activity records and match by email against the Twenty destination workspace. Any Nurture owner without a matching Twenty WorkspaceMember goes to a reconciliation queue for the customer to provision before record import resumes, because OwnerId references are required fields on many Twenty standard objects.

Nurture

Tag

maps to

Twenty CRM

Custom Select Field

lossy
Fully supported

Nurture tags (stored as multi-checkbox or multi-select properties on Contact, Company, or Deal) are mapped to Twenty custom select or multi-select fields. We create the field in Twenty's data model, populate the available options from the Nurture tag values, and import the tag assignments as field values on the respective records. The customer chooses during scoping whether tags should become select fields, separate custom objects, or topic assignments.

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.

Nurture logo

Nurture gotchas

High

Conflicting public guidance on API availability

High

Trigger-rule and journey logic is not portable

Medium

RSS-to-Email campaigns depend on live feed availability

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

  • Nurture has no documented public API

    Nurture CRM does not expose a public REST or GraphQL API for automated data extraction. Migration relies on CSV exports from the Nurture admin panel, which may not include relationship data (Contact-to-Company links, Deal-to-Person associations, Activity-to-Record attachments) as exportable fields. We compensate by performing a multi-pass export: we export Contacts, Companies, Deals, Activities, and Tasks as separate CSV files, then reconstruct the relationship graph by matching foreign key fields (company_id on Contact, contact_id on Deal) during the transformation phase before loading into Twenty. If Nurture's export does not include relationship IDs, we use email address matching to infer associations.

  • Custom fields must be pre-created in Twenty before data loads

    Twenty's runtime custom data model requires that any non-standard field exist in the data model before records containing that field can be imported. We create all Nurture custom fields in Twenty via Settings → Data Model before any data migration begins. This includes selecting the correct field type (text, number, currency, select, multi-select, date, phone, etc.) to match the Nurture source field. For select and multi-select fields, we pre-populate the option values from the Nurture export. Skipping this step causes import failures for any record with a custom field value.

  • Nurture workflows and done-for-you automation packages do not migrate

    Nurture Pro includes done-for-you workflows and a library of 50+ pre-written email and SMS templates as part of the subscription. Twenty has a workflow automation builder, but Nurture workflows are not exported in a transferable format and have no equivalent in Twenty's automation system. We do not migrate workflows as code. We deliver a written inventory of every active Nurture workflow with its trigger, conditions, and actions for your admin to rebuild in Twenty's workflow builder. The pre-written email and SMS templates are exported as text files for manual re-entry into Twenty or a connected email tool.

  • Activity history lacks a native telephony object in Twenty

    Nurture includes native outbound and inbound calling with call recording URLs and disposition data stored as activity properties. Twenty CRM does not include native telephony; call records from Nurture migrate as Twenty Task records with the call subtype, duration preserved in a custom field, and any recording URL stored as a link. Teams that depend on Nurture's built-in calling will need to configure a third-party VoIP integration (Twilio, Aircall, or similar) in Twenty post-migration to restore native calling functionality.

  • Dirty data from Nurture export requires pre-migration cleanup

    Nurture CRM accounts frequently accumulate dirty data including duplicate Contacts (same email, different records), inconsistent phone number formats (with/without country codes), blank required fields, and orphaned Deal records (Deals without a valid Contact or Company reference). CSV exports from Nurture do not automatically clean this data. We run a data profiling pass on the exported CSVs before transformation, identify duplicates, blank fields, and orphaned records, and deliver a cleanup report to the customer. We clean what we can programmatically (phone number normalization, duplicate flagging) but preserve all original values in a raw field for the customer's review before final import.

Migration approach

Six steps for a successful Nurture to Twenty CRM data migration

  1. Nurture data audit and CSV export sequencing

    We request multi-pass CSV exports from the Nurture admin panel: Contacts, Companies, Deals, Activities, Tasks, and any custom object exports as separate files. We audit each export for record counts, duplicate rates, blank required fields, and the presence of foreign key columns (company_id, contact_id, owner_id) that preserve relationships. We flag any export that is missing relationship IDs and prepare an email-address-based fallback matching strategy. The audit output is a written data readiness report and a list of cleanup tasks to complete before migration.

  2. Twenty workspace provisioning and schema pre-creation

    We provision the Twenty workspace (self-hosted or Cloud) and create the data model schema before any data loads. This includes creating custom fields for every Nurture custom property, creating custom objects for any Nurture custom objects, configuring Opportunity stages and pipelines to match Nurture deal stages, and setting up WorkspaceMember records for each migration user. Schema is validated in the Twenty instance before the migration run. If the destination is self-hosted Twenty, we coordinate with the customer's DevOps team on server provisioning, Docker setup, and database access for the migration pipeline.

  3. Owner and WorkspaceMember reconciliation

    We extract every distinct Nurture Owner referenced on Contact, Company, Deal, and Activity records and match by email against the Twenty workspace. Owners without a matching Twenty WorkspaceMember are held in a reconciliation queue. The customer's admin provisions any missing WorkspaceMembers (active or inactive depending on whether the Nurture user is still active). Migration cannot proceed past this step because OwnerId and assigned_to references are required on most Twenty standard object imports.

  4. Dependency-ordered migration run

    We run production migration in strict record-dependency order. Companies are imported first (Companies have no parent dependencies). Persons are imported second with Company domain used to resolve the Person-Company relationship. Opportunities are imported third with Person and Company IDs resolved from the prior phases. Tasks and Activities are imported last with Person and Company IDs resolved. Custom objects are imported after standard objects because they often have lookup relationships to standard records. Each phase emits a row-count reconciliation report before the next phase begins.

  5. Sandbox validation and production cutover

    If the customer has a Twenty test environment, we run a full migration into the test instance first. The customer's RevOps lead reconciles record counts, spot-checks 25-50 records against the Nurture source, and signs off the schema and mapping before production migration begins. Any mapping corrections happen in the test environment. On cutover day, we freeze Nurture writes, run a final delta migration for any records modified during the migration window, then designate Twenty as the system of record.

  6. Workflow inventory handoff and post-migration support

    We deliver a written inventory of every active Nurture workflow with its trigger, conditions, and actions and a recommended rebuild approach for Twenty's workflow builder. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team after cutover. We do not rebuild Nurture workflows as Twenty automations inside the migration scope; that work is handled by the customer's admin or a separate Twenty implementation engagement. Telephony reconfiguration (connecting a Twilio or Aircall integration to Twenty) is also outside standard migration scope and requires a separate setup.

Platform deep dives

Context on both ends of the pair

Nurture logo

Nurture

Source

Strengths

  • Trigger-rule and behaviour-based message builder accessible to non-technical marketers.
  • RSS-to-Email automation built in.
  • A/B testing on subject lines and creative.
  • Real-time lead activity stream alongside campaign metrics.
  • Designed to pair with an external CRM rather than replace it — useful for teams committed to Salesforce or HubSpot CRM.

Weaknesses

  • Limited third-party reviewer signal.
  • Public pricing not published.
  • Ambiguous public-API availability.
  • Light native CRM functionality.
  • Limited multi-branch journey automation depth.
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?

Moderate CRM migration. 2 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

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

  • Object compatibility

    D

    2 of 8 objects need a manual workaround.

  • 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

    Nurture: Not publicly documented..

  • Data volume sensitivity

    B

    Nurture doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Nurture 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 Nurture to Twenty CRM data migrations

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

Can't find your answer?

Walk through your Nurture 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 four and eight weeks for accounts under 15,000 Contacts and 3,000 Deals with a clean Nurture export and no custom objects. Migrations with large activity histories (over 200,000 engagement records), multiple Nurture pipelines, extensive custom field schemas, or self-hosted Twenty infrastructure requirements move to ten to sixteen weeks because of pre-migration data cleaning, schema design, custom field pre-creation, and Activity timeline reconciliation. Discovery and scoping typically require two to three weeks regardless of migration size.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Nurture.
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