CRM migration

Migrate from Capsule CRM to Twenty CRM

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

Capsule CRM logo

Capsule CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

75%

9 of 12

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Capsule CRM to Twenty CRM is a migration from a lightweight, per-seat SaaS CRM to an open-source, self-hosted platform with full data ownership. Capsule's Party object (unified Contact and Organisation) splits into separate Company and Contact records in Twenty, and Capsule's Opportunities map to Twenty Opportunities with pipeline stages recreated in the destination workspace. Custom fields built on Capsule's data-tag system require a separate field-definition fetch before value translation; we handle that resolution to prevent incorrect data in Twenty. We migrate Activities (calls, emails, meetings, notes) as Twenty Activity records linked to the correct Contact or Company, preserving the timeline your team relies on. Capsule Workflow Automations and Projects are gated by plan tier and do not migrate as code. We deliver a written inventory of these for your admin to rebuild in Twenty's workflow system post-migration.

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

Capsule CRM logo

Capsule CRM

What's pushing teams away

  • Teams outgrow Capsule's feature ceiling when they need advanced automation, multi-currency support, or CRM capabilities beyond single-instance sales pipeline management.
  • Enterprise requirements like granular role permissions, SSO enforcement, or audit logging are absent or immature, forcing compliance-conscious teams to migrate elsewhere.
  • Occasional sync issues with third-party integrations cause data freshness problems that frustrate users who rely on real-time contact and calendar accuracy.
  • The platform lacks native marketing automation and advanced reporting dashboards, pushing marketing-heavy teams toward HubSpot or ActiveCampaign.
  • Small teams with fewer than 10 users report that Capsule works well but becomes expensive per-user as headcount grows, narrowing the value proposition.

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

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

Capsule CRM

Party (Contact)

maps to

Twenty CRM

Contact

1:1
Fully supported

Capsule's individual Party records map to Twenty Contact records. We preserve first name, last name, email address, phone numbers, job title, and owner assignment. The Contact's relationship to the parent Organisation (now a Company in Twenty) is resolved by looking up the Capsule Party's Organisation ID against the Organisation-to-Company mapping table built in the preceding step.

Capsule CRM

Party (Organisation)

maps to

Twenty CRM

Company

1:1
Fully supported

Capsule Organisation Party records map to Twenty Company records. We preserve company name, domain, address fields, industry, number of employees, and annual revenue where populated. The Company is created before Contact migration begins so that the Company-Contact relationship is satisfied at insert time.

Capsule CRM

Opportunity

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Capsule Opportunities map directly to Twenty Opportunities. We carry forward opportunity name, value, currency, expected close date, probability, owner, and the linked Party (resolved to Contact and Company). Capsule pipeline stage names map to Twenty stage names; if the names differ, we create a stage mapping table during configuration. Closed-won and closed-lost outcomes preserve as-is.

Capsule CRM

Pipeline

maps to

Twenty CRM

Stage

lossy
Fully supported

Capsule pipelines (multiple on Growth and above) map to Twenty stage configurations. Each Capsule pipeline stage becomes a Twenty stage with name, probability percentage, and ordering preserved. If the destination workspace uses a single default pipeline, we consolidate all Capsule pipeline stages under one workspace and flag the multi-pipeline source structure in the handoff documentation.

Capsule CRM

Case

maps to

Twenty CRM

Task (Case-type)

1:1
Fully supported

Capsule Cases track support or service issues linked to Parties. We migrate Cases as Twenty Tasks with a case flag or as a custom Case object if configured in the destination workspace. Status, priority, assignee, description, and linked Contact/Company are preserved. Case-type Tasks are segmented in Twenty's task list for visibility separate from standard sales Tasks.

Capsule CRM

Project

maps to

Twenty CRM

Task (grouped)

1:many
Fully supported

Capsule Project objects (Starter and above) contain milestones and deliverables. Twenty does not have a native Project object in its standard schema. We flatten Project milestones into Tasks under the linked Opportunity, applying a project_name prefix to preserve grouping and setting due dates and completion status from the original milestone. The project structure is documented in the handoff so the customer's admin can decide on a rebuild approach.

Capsule CRM

Milestone

maps to

Twenty CRM

Task (milestone flag)

1:1
Fully supported

Capsule Milestones (sub-objects of Projects) map to Twenty Tasks with a milestone flag field set to true. We preserve milestone name, due date, completion status, and the link to the parent Opportunity or Case. Tasks without a milestone flag represent standard sales or support tasks.

Capsule CRM

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Capsule Tasks linked to Parties or Opportunities map to Twenty Tasks. We preserve due date, status (open, completed, cancelled), assignee, description, and the parent relationship. Tasks without an associated Party or Opportunity migrate as standalone Tasks with a no-parent flag for the admin to reassign post-migration.

Capsule CRM

Activity (email, call, meeting, note)

maps to

Twenty CRM

Activity

1:1
Fully supported

Capsule Activities (email, call, meeting, note types) linked to Parties migrate to Twenty Activity records. We preserve activity type, direction (inbound/outbound), timestamp, body text, and the linked Contact. Activity ordering in the Twenty timeline is maintained by setting the activity date to the original Capsule timestamp. Call duration and disposition migrate as custom activity fields where supported.

Capsule CRM

Custom Field (data-tag)

maps to

Twenty CRM

Custom Field

lossy
Fully supported

Capsule's data-tag system requires a separate fetch from the /fields/definitions endpoint before field values can be correctly typed and migrated. We query all field definitions for Parties, Opportunities, and Cases before pulling record data, resolve list field options, and apply the correct type casting. Each resolved custom field maps to a corresponding custom field in Twenty, created in the destination schema before any records are imported.

Capsule CRM

Tag

maps to

Twenty CRM

Tag / Label

1:1
Fully supported

Capsule tags are flat labels applied to Parties, Opportunities, and Cases. We translate tag names 1:1 into Twenty's tag model, which supports multiple tags per record. Where Capsule tags represent category or status data rather than loose labels, we discuss with the customer whether to migrate as tags or convert to a dedicated custom field with a defined picklist.

Capsule CRM

User / Team Member

maps to

Twenty CRM

User

1:1
Fully supported

Capsule Users are mapped to Twenty Users by email address. We resolve every Capsule user referenced as an owner of Parties, Opportunities, Cases, or Tasks before record migration begins. Any Capsule user without a matching Twenty User goes to a reconciliation queue for the customer's admin to provision before migration resumes.

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.

Capsule CRM logo

Capsule CRM gotchas

High

Capsule API rate limit is 4,000 requests per window

High

Free plan caps at 250 contacts and 2 users

Medium

Custom fields require separate field-definition API calls

Medium

Deleted records require a separate endpoint and are not returned in standard lists

Low

Projects and Workflow Automations are gated by plan tier

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

  • Capsule API rate limit extends large-account migration timelines

    Capsule enforces 4,000 requests per window with reset communicated via the X-RateLimit-Reset header. Accounts with hundreds of thousands of records (especially activity history) will exhaust this limit during a full export. We throttle Capsule API calls to a maximum of 1 request per second and apply exponential backoff on 429 responses. For large accounts, we paginate through results using Capsule's Link header pagination and spread batch operations across off-peak windows. Migration timelines for accounts over 50,000 records may extend by 30-50 percent due to rate-limit pacing.

  • Custom fields require field-definition resolution before value migration

    Capsule custom fields are not returned with entity records by default. Field definitions (type, list options, display order) must be fetched separately from /fields/definitions per entity type before record data is pulled. Skipping this step produces incorrect data in the destination for list-type custom fields. We query all field definitions before pulling any record data, cast values to the correct type, and create matching custom fields in Twenty's schema before importing any records. This adds one to two API round-trips per entity type but prevents silent data corruption.

  • Twenty lacks a native Project object; milestones require flattening

    Capsule Projects (Starter and above) contain milestones and deliverables linked to Opportunities. Twenty does not have a native Project object in its standard schema. We flatten Project milestones into Tasks under the linked Opportunity, applying a naming prefix to preserve project grouping. The customer's admin receives a written project structure document that maps each Capsule Project to its migrated task hierarchy. If the customer requires a native Project object, a custom Project object must be configured in Twenty before migration, adding scope to the project.

  • Capsule Workflow Automations do not migrate to Twenty

    Capsule Workflow Automations (available on Growth and above) are property-triggered automation sequences with delays and CRM actions. Twenty does not currently ship a native workflow automation builder in its standard release. We do not migrate Workflow Automations as code. We deliver a written inventory of every active Capsule Workflow Automation with its trigger, conditions, actions, and recommended rebuild approach (manual process, third-party automation tool, or custom development). The customer's admin rebuilds automations post-migration.

  • Phone numbers and zip codes risk format corruption in CSV exports

    Capsule's CSV export and some API responses can strip leading zeros from phone numbers and zip/postal codes, or truncate data to an unusable format. We handle phone numbers and postal codes via the Capsule API (not CSV export) for all numeric field types and apply format normalization before insert into Twenty. If the customer has used CSV exports as the primary migration method, we flag format validation as a required QA step before production cutover.

Migration approach

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

  1. Discovery and scoping

    We audit the source Capsule account across plan tier, contact and Organisation count, Opportunity volume, pipeline stages, active Projects, Cases, custom field definitions, active Workflow Automations, and activity history depth. We confirm the plan tier because Projects and Workflow Automations are gated features, and the free tier caps at 250 contacts which affects migration feasibility. The discovery output is a written migration scope covering record counts, object dependencies, custom field inventory, and a timeline estimate.

  2. Field definition extraction and schema preparation

    We query Capsule's /fields/definitions endpoints for Parties, Opportunities, Cases, and Projects before pulling any record data. This builds the custom field map: field name, type (text, list, date, numeric), and list options for list-type fields. We use this to create matching custom fields in Twenty's workspace schema, configured as standard custom fields with correct types before any records are imported. Schema deployment happens in a Twenty staging or test workspace first for validation.

  3. Organisation and Contact migration with relationship resolution

    We extract Capsule Organisations first, map them to Twenty Companies, and create the Company records. We then extract Capsule Contacts, resolve each Contact's Organisation ID against the Company mapping table, and insert Contacts with the resolved Company relationship. This dependency order ensures no orphaned Contact records in Twenty. Owner resolution by email matches Capsule users to Twenty Users; any unresolved owners enter a reconciliation queue for the admin to provision.

  4. Opportunity and pipeline stage migration

    We extract Capsule Opportunities and map pipeline stage names to Twenty stage configurations. Each Capsule pipeline (if multiple) is mapped to a Twenty stage group. We preserve probability percentages, expected close dates, and linked Contact and Company references. Closed-won and closed-lost outcomes carry forward. Opportunities without a valid linked Contact or Company are flagged for the admin to resolve before production migration.

  5. Case and Project milestone flattening

    Capsule Cases migrate as case-flagged Tasks or as a custom Case object if configured. We preserve status, priority, assignee, description, and linked Contact/Company. Capsule Projects and Milestones flatten to Tasks under the linked Opportunity with a milestone flag set. The project structure is documented in the handoff. Workflow Automations are inventoried and documented separately; they do not execute during migration.

  6. Activity history migration and timeline reconstruction

    We extract Capsule Activities (email, call, meeting, note) linked to Parties and insert them as Twenty Activity records. Activity type, direction, timestamp, and body text are preserved. Timeline ordering in Twenty is maintained by setting the activity date to the original Capsule timestamp. Activities without a valid parent Contact or Company are flagged for manual assignment. We use batched API inserts with error logging and retry logic for failed activity records.

  7. Cutover, validation, and handoff documentation

    We freeze Capsule writes during cutover, run a final delta migration of any records modified during the migration window, and confirm Twenty becomes the system of record. We deliver a reconciliation report comparing record counts by object, a sample record spot-check, the Workflow Automation inventory document, and the Project milestone mapping document. We support a 72-hour post-cutover window for immediate reconciliation issues. We do not rebuild Workflow Automations or manage post-migration admin tasks as part of standard scope.

Platform deep dives

Context on both ends of the pair

Capsule CRM logo

Capsule CRM

Source

Strengths

  • Generous free tier that covers 250 contacts and 2 users indefinitely, removing financial risk for very small teams.
  • Exceptional ease of use — consistent 4.6/5 on ease of use across G2 and Capterra reviews, often cited as the best trait by long-term users.
  • Responsive human customer support referenced across Trustpilot and G2 reviews as a differentiator from larger platforms.
  • Clean API with OAuth 2.0, pagination, and a `since` filter that enables reliable incremental syncs during migration.
  • Solid integrations with Xero, QuickBooks, Zendesk, and Google Workspace make it a natural hub for small-business tech stacks.

Weaknesses

  • Workflow automation and Project objects require paid plans, limiting what a free-tier migration can demonstrate.
  • Capsule lacks native marketing automation, making it unsuitable for teams that need email campaign management within the CRM itself.
  • Advanced reporting, multi-currency support, and granular role permissions lag behind competitors, limiting enterprise readiness.
  • The API rate limit of 4,000 requests per window can extend migration timelines for accounts with hundreds of thousands of records, requiring throttling logic.
  • No native bulk export tool — migrations rely on API pagination or CSV exports, which may not capture all linked objects in a single pass.
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. 3 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 Capsule CRM and Twenty CRM.

  • Object compatibility

    B

    3 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

    Capsule CRM: 4,000 requests per rate limit window; reset time in X-RateLimit-Reset header.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Capsule 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 5,000 Contacts, 1,000 Organisations, and 500 Opportunities with no custom objects and a clean data-tag structure. Migrations with large activity histories (over 100,000 activity records), multiple custom field definitions, Projects with milestones, or complex multi-pipeline structures move to eight to twelve weeks because of data-tag resolution time, milestone flattening, and activity timeline reconstruction.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Capsule 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