CRM migration

Migrate from Mothernode to Twenty CRM

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

Mothernode logo

Mothernode

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

67%

8 of 12

objects map 1:1 between Mothernode and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Mothernode to Twenty CRM is a departure from a department-centric, all-in-one platform toward a self-hosted or cloud-native open-source CRM with a flexible custom object model. Mothernode organizes data around Customers and Contacts as distinct entities with Leads and Opportunities sharing a single API endpoint, while Twenty CRM consolidates people and organizations under People, Companies, and Opportunities with a configurable pipeline. We resolve the Customer-Contact distinction by mapping Customers to Companies and Contacts to People, then handle the paginated extraction from Mothernode's narrow API surface, which covers only Customers, Contacts, Leads/Opportunities, Notes/Events, and Invoices. Enterprise-tier objects (Project Folders, Job Center) are not confirmed in Mothernode's public API documentation and are flagged for manual export. Workflows, email sequences, and reporting configurations do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Twenty's settings.

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

Mothernode logo

Mothernode

What's pushing teams away

  • API coverage is narrow — the documented endpoints cover only Customers, Contacts, Leads/Opportunities, Notes/Events, and Invoices. Teams with custom objects, advanced reporting data, or legacy integrations find the API insufficient for reliable extraction.
  • Rate limits and quota details are not publicly documented, making it difficult to plan large-scale exports or predict API availability during a migration window.
  • The platform lacks a bulk export or bulk import endpoint; migrating large record volumes requires paginated reads and individual record writes, which is time-consuming and error-prone without tooling.
  • Enterprise-tier features — Project Folders, Job Center Modules, and progress invoicing — are gated behind a custom quote, and their API availability is not confirmed in the public documentation, creating uncertainty for teams with complex workflows.
  • Smaller review volume compared to major CRMs (25–56 verified reviews on G2/Capterra) means fewer peer references for implementation teams evaluating migration confidence.

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

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

Mothernode

Customer

maps to

Twenty CRM

Company

1:1
Fully supported

Mothernode Customer records map to Twenty CRM Company. The customer_id from the GET /customers response becomes the Company identifier. Customer name maps to the Company display name, and the associated address, phone, and domain fields map to Twenty's Company fields. We resolve the Company insert order so that any subsequent Contact or Opportunity import can satisfy the Company lookup at the moment of record creation. Mothernode Enterprise customers with Project Folder or Job Center associations have these flagged for manual export because the API availability is not confirmed in the public documentation.

Mothernode

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Mothernode Contact records map to Twenty CRM Person. We use email as the primary dedupe key during import and cross-reference the associated customer_id to link the Person to the pre-inserted Company via the Company link field in Twenty's Person schema. Contact first name, last name, phone, email, title, and address fields map directly. Custom fields detected in the API response payload during the extraction phase migrate to Twenty custom fields that we pre-create via the /metadata API before the Person import begins.

Mothernode

Lead

maps to

Twenty CRM

Person or Opportunity (semantic split)

1:many
Fully supported

Mothernode's FAQ confirms that Leads and Opportunities are distinct objects with different meanings in the sales workflow. Both are returned from the shared GET /leads-and-opportunities endpoint with a record type indicator in the response payload. We separate Leads from Opportunities at extraction time using this indicator. Leads with early-stage semantics (sourced, uncontacted) map to Twenty Person records with a Lead opportunity status. We preserve the original Mothernode record type in a custom field on the Person for audit. Customers who have repurposed these fields non-standardly require a pre-import validation call to confirm the mapping table before data moves.

Mothernode

Opportunity

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Mothernode Opportunities share the same API endpoint as Leads and are separated using the record type indicator. We map Opportunity fields directly to Twenty CRM Opportunity: name, amount, close date, stage, owner assignment, and associated Contact and Customer references. The Customer reference resolves to the Twenty Company record via the lookup relationship established during the Company import phase. Pipeline stage names and values from Mothernode's configuration migrate to Twenty's Opportunity pipeline stage configuration, which we set up via Twenty's pipeline settings before Opportunity records are inserted.

Mothernode

Note

maps to

Twenty CRM

Comment

1:1
Fully supported

Mothernode Notes accessible via the Notes/Events API endpoint migrate to Twenty CRM Comments. We extract note body content, associated entity IDs (Contact or Opportunity), created timestamp, and author attribution. Comments in Twenty are linked to the target record (Person or Opportunity) via the Twenty ActivityComment schema. We set the ActivityDate to the original Mothernode timestamp to preserve chronological ordering in the activity timeline.

Mothernode

Event

maps to

Twenty CRM

Activity

1:1
Fully supported

Mothernode Events share the Notes/Events API endpoint with Notes. We extract event type, start and end datetime, duration, location, and the associated Contact or Opportunity link. Calendar-bound events migrate to Twenty CRM Activity records with start datetime, end datetime, and the linked Person or Opportunity preserved. The event type indicator maps to an Activity type field in Twenty.

Mothernode

Invoice

maps to

Twenty CRM

Custom Object (Invoice)

lossy
Fully supported

Mothernode Invoices migrate to a Twenty CRM custom object named Invoice that we pre-create via the /metadata API before import. The custom object includes fields for invoice number, issue date, due date, line items, total amount, status, and the associated Customer reference (resolved to the Twenty Company record). Invoice line items migrate as child records under the Invoice custom object. We flag any billing configurations that are Mothernode-specific (progress invoicing, which is Enterprise-only in Mothernode) as requiring admin review post-migration.

Mothernode

Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Owner references on Mothernode Contact, Opportunity, and Event records (owner_id in the API payload) map to Twenty CRM WorkspaceMember records. The Mothernode API does not expose a dedicated Users endpoint, so we extract distinct owner_id values from the records themselves and resolve them by email match against the Twenty workspace members table. Any owner without a matching WorkspaceMember goes to a reconciliation queue for the customer's admin to provision before record import resumes. The migration cannot proceed past Opportunity and Contact imports without resolved OwnerId references.

Mothernode

Custom Fields

maps to

Twenty CRM

Custom Fields

lossy
Mapping required

Custom fields on Mothernode Contacts, Customers, Leads, and Opportunities are not explicitly documented in the API reference. We probe the API response schema during extraction to identify any non-standard fields beyond the documented field set. Each custom field discovered is pre-created in Twenty CRM via the /metadata API with a matching field type (text, number, date, picklist, checkbox, or currency). Custom field values migrate as part of the parent object import. Customer input is required during scoping to confirm which custom fields carry business-critical data and which can be dropped.

Mothernode

Pipeline Stages

maps to

Twenty CRM

Opportunity Pipeline Stages

lossy
Mapping required

Opportunity records in Mothernode carry a pipeline stage value that governs the sales workflow state. The stage names and count are customer-specific and vary by Mothernode configuration. We extract all stage values from the source data, map them to Twenty's pipeline stage configuration, and pre-create the pipeline with the same stage sequence before any Opportunity records are written. Stage order and probability percentages migrate where they exist in the source data. Customers with non-standard stage repurposing require a pre-import review call to confirm the stage mapping table.

Mothernode

Project Folders

maps to

Twenty CRM

Not migrated (Enterprise-tier object)

1:1
Mapping required

Project Folders are gated behind Mothernode Enterprise and their API availability is not confirmed in the public API documentation. We attempt to probe these endpoints during the extraction phase. If the API returns 403 or 404, we flag Project Folders as requiring a manual UI export and do not include them in the automated migration scope. Customers with heavy reliance on Project Folders should schedule a parallel manual export step and plan to recreate the structure in Twenty CRM or a separate project management tool.

Mothernode

Job Center / Jobs

maps to

Twenty CRM

Not migrated (Enterprise-tier object)

1:1
Mapping required

Job Center Modules handle real-time job tracking for manufacturing or service operations and are an Enterprise-tier feature. The public API reference does not cover these objects. We flag Job records as requiring a manual export and do not attempt automated migration. If the customer uses Twenty CRM's self-hosted deployment and has custom object requirements for job tracking, we recommend creating a Jobs custom object via Twenty's /metadata API post-migration and populating it from the manual export.

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.

Mothernode logo

Mothernode gotchas

High

No bulk API forces sequential record reads

High

Enterprise-tier objects lack confirmed API coverage

Medium

HTTP Basic auth with no OAuth 2.0

Medium

Rate limits are not publicly documented

Low

Lead vs. Opportunity distinction requires manual validation

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

  • No bulk API forces sequential paginated extraction from Mothernode

    Mothernode exposes only individual GET endpoints with no bulk export, batch read, or streaming capability. For customers with tens of thousands of records, we paginate through results using offset-based pagination, multiplying API calls and extending extraction time. We mitigate by chunking reads into manageable batches and running them in parallel where the API responds consistently, but large datasets will experience longer extraction windows than platforms with bulk endpoints. We recommend scheduling the extraction phase during off-peak hours and budgeting extra time for datasets exceeding 20,000 records.

  • Self-hosted Twenty CRM database migrations can leave CRM blank after update

    Twenty CRM's self-hosted deployment uses database migrations that run automatically on version upgrade. A reported issue on the Twenty GitHub repository documents a scenario where updating from version 1.3.0 to 1.6.7 left the CRM largely blank despite the migrations completing and the server starting successfully. Customers using self-hosted Twenty should perform a full database backup before any version update, test the update in a staging environment, and verify that all records and relationships appear correctly after the migration completes. We recommend confirming the Twenty version with the customer before migration scoping and running a post-update verification step as part of the migration handoff.

  • Customer-Contact distinction requires pre-import schema decision

    Mothernode treats Customers and Contacts as distinct objects, while Twenty CRM consolidates these under People and Companies. We map Mothernode Customer to Company and Contact to Person, but customers who have used these objects non-standardly (for example, using Contact for organizations instead of people) may have mapping inconsistencies after import. We include a pre-import review call to confirm the mapping table, show sample records from the extraction, and allow the customer to adjust the mapping before production import begins.

  • Enterprise-tier objects have unconfirmed API coverage

    Project Folders, Job Center Modules, and progress invoicing are gated behind Mothernode Enterprise and their API availability is not confirmed in the public documentation. We probe these endpoints during extraction but if 403 or 404 is returned, we flag the objects as requiring manual UI export. Customers with heavy reliance on these Enterprise features should plan a parallel manual export and rebuild workflow in Twenty CRM rather than expecting automated migration of these objects.

  • Rate limits and request quotas are not publicly documented by Mothernode

    Mothernode does not publish rate limit thresholds in its API documentation. During a large migration, we monitor API response times and HTTP 429 status codes. If we encounter 429s, we automatically back off and retry with exponential delay. However, the lack of a published limit means we cannot proactively schedule migration windows to avoid peak usage on the source tenant. We recommend running extraction during off-peak hours and coordinating with the customer's IT team to confirm whether any internal rate limiting applies on their subscription tier.

Migration approach

Six steps for a successful Mothernode to Twenty CRM data migration

  1. Discovery and API capability audit

    We audit the source Mothernode tenant via its REST API endpoints: /customers, /contacts, /leads-and-opportunities, /notes-and-events, and /invoices. We probe for Enterprise-tier endpoints (Project Folders, Job Center) and document which return data versus which return 403 or 404. We capture record counts per object, identify custom fields by inspecting the response payload schema, and list distinct owner_id values for owner reconciliation. We pair this with a Twenty CRM edition review: self-hosted (free, fully configurable) or cloud (API access, OAuth 2.0). The discovery output is a written migration scope document covering what migrates automatically, what requires manual export, and what does not migrate.

  2. Schema design and custom object provisioning in Twenty CRM

    We design the destination schema in Twenty CRM. For each Mothernode object we migrate, we pre-create any missing standard objects (Opportunity pipeline, pipeline stages) and any custom objects (Invoice, or other customer-specific objects) via Twenty's /metadata API. Custom fields discovered during extraction are created with matching types before any data import begins. We configure the pipeline stage order to match the source Mothernode configuration and create the workspace member mapping table for owner reconciliation. Schema is deployed into a staging workspace first for validation before any production data moves.

  3. Owner reconciliation and WorkspaceMember provisioning

    We extract every distinct owner_id referenced across Contact, Opportunity, and Event records and attempt to match by email against Twenty CRM's WorkspaceMember table. Any owner without a matching WorkspaceMember goes to a reconciliation queue. The customer's admin provisions any missing workspace members in Twenty (active or inactive depending on whether the original owner is still active in the organization). Migration cannot proceed past Company, Person, and Opportunity imports because OwnerId references are required on most records. We validate the WorkspaceMember mapping table before beginning the production migration.

  4. Staging migration and reconciliation

    We run a full migration into a Twenty CRM staging environment using production-like data volume. The customer reconciles record counts (Companies in, People in, Opportunities in, Activities in), spot-checks 25-50 random records against the Mothernode source, and validates that the Customer-Contact mapping is producing the expected Company-Person structure. Any mapping corrections happen here before production migration begins. We also validate that the self-hosted Twenty installation (if applicable) is running a stable version and that the database migrations complete without the blank-CRM issue documented in Twenty's GitHub.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (from Mothernode Customers), People (from Mothernode Contacts, with Company link resolved), Opportunities (with Company lookup, Owner reference, and pipeline stage resolved), Activities and Comments (from Notes and Events via paginated reads), Invoices (to custom Invoice object if applicable), and custom field values as part of their parent record inserts. Each phase emits a row-count reconciliation report before the next phase begins. We use pagination chunking and parallel reads where the Mothernode API responds consistently, and exponential backoff if 429 responses appear.

  6. Cutover, validation, and admin handoff

    We freeze Mothernode write access during the cutover window, run a final delta migration of any records modified during the migration window, then enable Twenty CRM as the system of record. We deliver a written inventory of any Enterprise-tier objects requiring manual import (Project Folders, Job Center), a list of any Mothernode custom fields that could not be mapped due to missing destination schema, and a workflow rebuild reference for any marketing automation or sequence data that does not migrate. We support a one-week hypercare window to resolve reconciliation issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

Mothernode logo

Mothernode

Source

Strengths

  • Priced at $49–$59 per user per month, offering a lower entry point than HubSpot or Salesforce for SMB teams needing CRM, sales, and marketing in one platform.
  • Highly rated interface (4.8/5 across verified review sets) that reduces training friction and supports faster adoption across multiple departments.
  • All-in-one platform consolidates CRM, sales management, project folders, job tracking, and marketing automation, reducing the number of tools in the average SMB stack.
  • Active development cycle with regular release notes (September 2024, Fall 2023, May 2023 releases confirmed) indicates ongoing investment in the product.
  • Integrations with QuickBooks, Gmail, Google Calendar, LinkedIn, and UPS Online cover common SMB toolchain needs.

Weaknesses

  • API surface covers only five object categories (Customers, Contacts, Leads/Opportunities, Notes/Events, Invoices); Project Folders, Job Center, Campaigns, and Sequences are not in the documented endpoints.
  • No bulk export or bulk import endpoint forces large migrations through paginated reads and individual writes, extending migration timelines and increasing error risk.
  • HTTP Basic authentication (username:password encoded in the header) requires storing credentials in plaintext or a secrets manager; more modern OAuth flows are not supported.
  • Rate limits and request quotas are not publicly documented, creating uncertainty for large-scale extraction windows.
  • Small review sample (25–56 verified reviews across platforms) limits peer validation for teams evaluating the platform.
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 Mothernode 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

    Mothernode: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Mothernode 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 15,000 records with no Enterprise-tier Mothernode features. Migrations with custom objects, large engagement histories (over 100,000 Notes/Events), or multi-user owner reconciliation move to six to ten weeks. The extraction phase from Mothernode is the longest part because we paginate through individual API calls with no bulk endpoint; large datasets may require an additional one to two weeks for extraction alone.

Adjacent paths

Related migrations to explore

Ready when you are

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