CRM migration
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
Source
Twenty CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Capsule CRM and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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)
Twenty CRM
Contact
1:1Capsule'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)
Twenty CRM
Company
1:1Capsule 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
Twenty CRM
Opportunity
1:1Capsule 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
Twenty CRM
Stage
lossyCapsule 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
Twenty CRM
Task (Case-type)
1:1Capsule 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
Twenty CRM
Task (grouped)
1:manyCapsule 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
Twenty CRM
Task (milestone flag)
1:1Capsule 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
Twenty CRM
Task
1:1Capsule 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)
Twenty CRM
Activity
1:1Capsule 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)
Twenty CRM
Custom Field
lossyCapsule'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
Twenty CRM
Tag / Label
1:1Capsule 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
Twenty CRM
User
1:1Capsule 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.
| Capsule CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Party (Contact) | Contact1:1 | Fully supported | |
| Party (Organisation) | Company1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline | Stagelossy | Fully supported | |
| Case | Task (Case-type)1:1 | Fully supported | |
| Project | Task (grouped)1:many | Fully supported | |
| Milestone | Task (milestone flag)1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Activity (email, call, meeting, note) | Activity1:1 | Fully supported | |
| Custom Field (data-tag) | Custom Fieldlossy | Fully supported | |
| Tag | Tag / Label1:1 | Fully supported | |
| User / Team Member | User1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Capsule API rate limit is 4,000 requests per window
Free plan caps at 250 contacts and 2 users
Custom fields require separate field-definition API calls
Deleted records require a separate endpoint and are not returned in standard lists
Projects and Workflow Automations are gated by plan tier
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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.
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
Capsule CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Capsule CRM and Twenty CRM.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Capsule CRM: 4,000 requests per rate limit window; reset time in X-RateLimit-Reset header.
Data volume sensitivity
Capsule CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Capsule CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Capsule CRM
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.