CRM migration

Migrate from SuperOffice CRM to Twenty CRM

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

SuperOffice CRM logo

SuperOffice CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

67%

8 of 12

objects map 1:1 between SuperOffice CRM and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from SuperOffice CRM to Twenty CRM is a modernization migration from a structured European mid-market platform to a modern open-source CRM. SuperOffice uses a Company-Contact-Sale model with Quote alternatives and Selections as dynamic named lists; Twenty uses a Person-Company-Opportunity model where Quote alternatives flatten into Opportunity line items and Selections have no native equivalent. We resolve the Quote hierarchy flattening during scoping, pre-create all custom fields in Twenty's Data Model before import (a requirement that blocks imports when skipped), and preserve Selection membership as tagged records. Workflows, automations, and SuperOffice's document archive are excluded from migration scope; we deliver a written inventory of each for the customer's admin to rebuild. Owner resolution happens by email match against Twenty Members.

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

SuperOffice CRM logo

SuperOffice CRM

What's pushing teams away

  • The interface is perceived as dated compared to newer CRM platforms, with users citing a lack of modern UI patterns and workflow design that younger teams find clunky.
  • Reporting lacks flexibility for advanced needs — users report that building custom reports beyond the built-in templates requires consultant help or workarounds.
  • Integrations with third-party tools beyond Microsoft 365 are limited and difficult to configure, leaving teams without connections to secondary systems they rely on.
  • Performance degrades when handling larger datasets, causing slow loads and crashes that impact users during busy periods like quarter-end.
  • SuperOffice has a time-consuming onboarding process, especially when setting up add-ons or custom configurations, which frustrates teams expecting faster time-to-value.

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

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

SuperOffice CRM

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

SuperOffice Contact maps to Twenty Person. Standard fields (name, email, phone, address) map directly. Custom fields from SuperOffice userDefined table migrate as custom fields on Person, which must be pre-created in Settings -> Data Model before import per Twenty's requirements. The Person-Company relationship is established via the workplace link: we create the Company first, then map the Contact's associate link to the workplace relationship on Person during import.

SuperOffice CRM

Company

maps to

Twenty CRM

Company

1:1
Fully supported

SuperOffice Company maps to Twenty Company with a 1:1 field mapping. Company is imported first in all migrations to satisfy the Company-Person relationship requirement. All standard address fields and any userDefined custom fields on Company are mapped and pre-created in Twenty before import.

SuperOffice CRM

Sale

maps to

Twenty CRM

Opportunity

1:1
Fully supported

SuperOffice Sale maps to Twenty Opportunity. The sale stage maps to Opportunity status; the amount maps to Opportunity amount; the linked Contact (via the associate table) links to the Opportunity via the Person participant. We resolve the Person ID at migration time before Opportunity insert so that the opportunity-person relationship is satisfied on first import.

SuperOffice CRM

Quote and QuoteAlternative

maps to

Twenty CRM

Opportunity and OpportunityLineItem

1:many
Fully supported

SuperOffice Quote -> QuoteAlternative -> line items is a three-level hierarchy. Twenty has Opportunity and OpportunityLineItem but no native Quote object. We map the primary QuoteAlternative to the Opportunity as line items (Product2, quantity, unit price). Additional QuoteAlternatives are serialized as JSON and stored in a custom field on the Opportunity, then surfaced in the post-migration handoff document so the admin can recreate them as separate Opportunities if needed.

SuperOffice CRM

Project

maps to

Twenty CRM

Custom Object (Project)

1:1
Fully supported

SuperOffice Project has type and status managed via ProjType and ProjStatus list tables, with links to Contacts and Sales via the associate table. Twenty has no native Project object. We create a Project custom object in Twenty's Data Model with type and status as select fields, preserve the type-status link as custom field configuration, and map project memberships as participant records.

SuperOffice CRM

Activity (Call, Task, Appointment)

maps to

Twenty CRM

Task

1:1
Fully supported

SuperOffice Activities (calls, tasks, appointments) link to Contact or Company via the associate table. We map all activity types to Twenty Task: calls use Task with a call_disposition custom field; appointments use Task with startDate and dueDate fields; standard tasks map directly. Activity timestamps and completion status migrate as-is. Links to Contact and Company are resolved via the Person and Company ID lookup.

SuperOffice CRM

Selection

maps to

Twenty CRM

Tagged Records

lossy
Fully supported

SuperOffice Selections are named dynamic lists of Contacts, Companies, or Sales. Twenty has no native Selection or dynamic list object. We export each Selection as a named tag applied to the relevant records: for a Selection of Contacts, we add a custom tag (the Selection name) to each Person record; for a Selection of Sales, we add it to each Opportunity. The admin recreates static versions of Selections in Twenty using filtered table views.

SuperOffice CRM

Document

maps to

Twenty CRM

External File Export

1:1
Fully supported

SuperOffice documents stored in the so_arc folder can be exported as binary blobs with metadata. Twenty has no native document archive equivalent. We export documents as a structured file share (ZIP organized by record type and ID) with a manifest CSV mapping each file to its SuperOffice record. The admin receives the file export and links documents manually or via a file-storage integration.

SuperOffice CRM

Custom Properties (userDefined)

maps to

Twenty CRM

Custom Fields

lossy
Fully supported

Custom fields on Contacts, Companies, Sales, and Projects from SuperOffice's userDefined table are mapped individually to Twenty custom fields. Dropdown lists (UDList definitions) must be recreated in Twenty's Data Model as select options before import. We flag any unsupported field types (for example, SuperOffice's URL fields become text fields in Twenty) and document the transformation.

SuperOffice CRM

User (Associate)

maps to

Twenty CRM

Member

1:1
Fully supported

SuperOffice Users have email, name, and license status. We resolve Users by email match against Twenty Members. The customer must invite all Members and confirm they have accepted before we begin record import, because OwnerId and assignee references on Opportunities and Tasks require a resolved Member ID. Inactive SuperOffice users are mapped to inactive Members or excluded per customer direction.

SuperOffice CRM

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

SuperOffice tags applied across Contact, Company, Sale, and Project objects are exported and mapped to Twenty Tags. Tags in Twenty are a native field type on Person and Company and can be used for filtering in table views.

SuperOffice CRM

Pipeline Stages

maps to

Twenty CRM

Opportunity Status Options

lossy
Mapping required

SuperOffice pipeline stages are tied to the SaleType list table with stage names, order, and probability percentages. We export these as a configuration object and apply them as select options on Twenty's Opportunity status field during workspace setup. The customer configures stage probabilities in Twenty's opportunity settings 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.

SuperOffice CRM logo

SuperOffice CRM gotchas

High

On-prem to cloud migration requires SuperOffice 7.1 minimum

High

Customizations and integrations may break after on-prem to cloud migration

Medium

Duplicate email addresses block user migration

Medium

Quote-Alternative hierarchy flattens in most destination CRMs

Low

Activity-to-record associations require post-migration verification

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

  • Twenty requires all custom fields created before import

    Twenty's CSV import creates records but not fields. If a custom field does not exist in Settings -> Data Model before import, the import silently ignores that column. This is especially impactful for SuperOffice migrations because SuperOffice's userDefined table often contains 20-60 custom fields per object. We audit all userDefined fields during discovery, create them in Twenty's Data Model as the first migration step, then run import. If the customer adds fields during scoping, we repeat the field creation step before continuing.

  • Quote-Alternative hierarchy flattens into Opportunity line items

    SuperOffice Quotes support multiple QuoteAlternative versions (different technology, pricing, side effects) per Sale. Twenty has no Quote object; it uses Opportunity with line items. We map the primary QuoteAlternative to Opportunity line items. Secondary QuoteAlternatives are serialized as JSON and stored in a custom field alt_proposals__c on the Opportunity, then documented in the post-migration handoff with instructions for recreating them as separate Opportunities.

  • Selections have no native Twenty equivalent

    SuperOffice Selections are named dynamic lists of Contacts, Companies, or Sales that update automatically as records change. Twenty has no dynamic list feature. We export each Selection as a named tag applied to the relevant Person or Company records, preserving the member list at migration time. The customer recreates static filtered views in Twenty manually; dynamic updates require workflow rebuild post-migration.

  • SuperOffice on-prem users must upgrade to 7.1 minimum before export

    For SuperOffice on-premises installations, the export tooling requires version 7.1 or higher. Sites running older versions must upgrade first. We include a version check in the pre-migration audit and flag any version gap. If an upgrade is needed, we factor it into the timeline separately from the data migration.

  • Activity associations require parent-record resolution before import

    SuperOffice Activities link to Contacts, Companies, Sales, and Projects via the associate table. When migrating to Twenty, we must resolve the parent Person or Company ID before inserting the Task record, otherwise the relationship is orphaned. We pre-resolve all activity links during the transform phase and insert Tasks in dependency order (Person, Company, Opportunity first, then Tasks last) to satisfy the foreign key constraints.

Migration approach

Six steps for a successful SuperOffice CRM to Twenty CRM data migration

  1. Pre-migration audit and workspace preparation

    We audit the SuperOffice database across Contacts, Companies, Sales, Projects, Quotes, Activities, Selections, and userDefined custom fields. We identify duplicate emails, Travel users, and SentryAddonNames references (SuperOffice on-prem requirements) and remediate before export. In parallel, we create the Twenty workspace: we pre-create all custom objects and custom fields identified in the audit, invite all Members and confirm acceptance, and configure the Opportunity status select options to match the SuperOffice pipeline stages.

  2. Data export from SuperOffice

    We export each object type separately from SuperOffice: Companies first (satisfying the Company-Contact link), then Contacts (with associate table links preserved for later resolution), then Sales (with SaleType and stage), then Quotes and QuoteAlternatives (for the hierarchy restructure), then Projects, then Activities, then Selections. Documents are exported as a structured file archive. Tags are exported as a mapping table against record IDs. The export produces a set of CSVs and a document manifest.

  3. Transform and Quote-Alternative restructure

    We transform the SuperOffice data to Twenty's schema. The critical transform is the Quote-Alternative hierarchy: we create an Opportunity record per Quote, map the primary QuoteAlternative line items to OpportunityLineItem records, and serialize any secondary QuoteAlternatives to JSON in a custom field. Selections are converted to tags on the relevant Person or Company records. Custom field types are normalized: SuperOffice date formats are ISO-8601 aligned, phone numbers are standardized, and dropdown lists are matched against the select options pre-created in Twenty.

  4. Sandbox migration and reconciliation

    We run a full migration into Twenty's sandbox or a staging environment using the production data volume. The customer's lead admin reconciles record counts (Companies in, Persons in, Opportunities in, Tasks in), spot-checks 25-50 records against the SuperOffice source for field accuracy, and validates that Person-Company relationships and Opportunity-Person links rendered correctly. Mapping corrections are made here before production migration.

  5. Production migration in dependency order

    We run production migration in dependency order: Company (first, no dependencies), Person (with workplace link to Company), Opportunity (with Person ID resolved), OpportunityLineItem (with Opportunity ID resolved), Project custom object, Task (with Person and Company IDs resolved last), Tags (applied to existing records), then document archive export delivered as a file package. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and rebuild handoff

    We freeze SuperOffice writes during cutover, run a final delta migration of any records modified during the window, then enable Twenty as the system of record. We deliver a document archive package, a Quote-Alternative handoff note, and a Selection rebuild guide. We provide a one-week hypercare window for reconciliation issues. We do not rebuild SuperOffice automations, workflows, or document links as part of the migration scope; that work is documented separately for the customer's admin.

Platform deep dives

Context on both ends of the pair

SuperOffice CRM logo

SuperOffice CRM

Source

Strengths

  • GDPR compliance with EU-hosted cloud infrastructure satisfies data residency requirements for European customers.
  • Unified CRM covers sales, marketing, and customer service in one platform with shared customer data.
  • Intuitive interface allows new users to become productive within hours without extensive training.
  • Partner network across Nordic, DACH, and Benelux regions provides local-language onboarding and support.
  • Strong Microsoft 365 and Outlook integration keeps email and calendar data connected to customer records.

Weaknesses

  • The user interface appears dated compared to newer CRM platforms with modern design patterns.
  • Reporting capabilities are limited for advanced analytical needs beyond standard dashboards.
  • Third-party integrations beyond the Microsoft ecosystem are sparse and difficult to configure.
  • Performance can degrade when working with large datasets or during peak usage periods.
  • Onboarding and configuration of add-ons is time-consuming and can require external consultant involvement.
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. 1 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 SuperOffice CRM and Twenty CRM.

  • Object compatibility

    B

    1 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

    SuperOffice CRM: Tiered: Starter 500 req/min, Professional 2,500 req/min, Enterprise 10,000 req/min.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your SuperOffice CRM 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 10,000 Contacts, 2,000 Companies, and 500 Sales with straightforward custom field schemas. Migrations with Quote alternatives (multi-version proposals requiring line-item restructuring), active Selections, large custom field schemas (over 50 userDefined properties), or document archive exports extend to seven to twelve weeks. The pre-migration audit and workspace preparation (especially custom field creation in Twenty) is the step that most often causes delay when underestimated.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SuperOffice CRM.
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