CRM migration

Migrate from CaseManager to Twenty CRM

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

CaseManager logo

CaseManager

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between CaseManager and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CaseManager organizes work around cases — individual matters with timestamps, statuses, and linked contacts and documents. Twenty CRM is an open-source platform with standard objects for People (contacts), Companies, Opportunities (deals), Notes, and Tasks. We migrate CaseManager contacts into Twenty People, company records into Twenty Companies, and CaseManager cases into Twenty Opportunities with original create dates, stage history, and assigned owners intact. Custom fields map to Twenty's custom field system via Settings → Data Model. Automations, permissions, and views are not transferable — we export CaseManager workflow definitions and rebuild guides so your team can reconstruct those in Twenty's workflow builder. The migration runs against Twenty's REST and GraphQL APIs, with webhook change-data-capture for monitoring. A delta-pickup window captures any CaseManager records modified during the cutover so your Twenty workspace reflects the final source state at go-live. We sequence the migration to respect Twenty's import order requirements: Companies first, then People with companyId links, then Opportunities with personId and companyId lookups. This prevents orphaned records and ensures foreign-key relationships resolve correctly on the first pass.

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

CaseManager logo

CaseManager

What's pushing teams away

  • Pricing is opaque and perceived as unfavorable by customers who want cost transparency before committing to a multi-year subscription.
  • Glitches in progress tracking cause data integrity concerns, with reviewers reporting that logged time sometimes fails to persist correctly.
  • The platform lacks modern automation and integration capabilities, pushing growing law firms toward more connected legal tech stacks.
  • No mobile app or real-time sync means attorneys working remotely cannot access or update case files without desktop access.
  • Support responsiveness and feature roadmap are not clearly communicated, leading long-term users to feel the product is stagnant.

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

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

CaseManager

Contact / Person

maps to

Twenty CRM

People

1:1
Fully supported

CaseManager contacts map directly to Twenty People. Each contact's name, email, phone, and job title become Twenty People fields. CaseManager contacts without a company link create standalone People records — users should consider linking to a default company or creating the primary company record first to maintain the relationship.

CaseManager

Company / Organization

maps to

Twenty CRM

Company

1:1
Fully supported

CaseManager company records map to Twenty Companies with industry, size, and domain preserved. Parent-child company hierarchies in CaseManager map to Twenty's parentCompany relation. When multiple CaseManager contacts share one company, they all link to the same Twenty Company record via companyId.

CaseManager

Case

maps to

Twenty CRM

Opportunity

1:1
Fully supported

CaseManager cases map to Twenty Opportunities. The case name becomes Opportunity name; case value or amount maps to Opportunity amount; case status maps to Opportunity stage via value-mapping (Open→New, In Progress→Working, Closed Won/Lost→Won/Lost). Original create and close dates map to custom date fields to preserve history.

CaseManager

Case Status

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

CaseManager status pick-list values map to Twenty Opportunity stage values. Each CaseManager status (Open, Pending, Closed Won, Closed Lost) receives a corresponding Twenty stage. Stage-transition timestamps in CaseManager can be preserved as custom datetime fields on the Opportunity record for audit continuity.

CaseManager

Case Priority

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

CaseManager priority (High, Medium, Low) has no direct Twenty equivalent. We create a custom select field called Case_Priority__c on the Opportunity object before migration. Values map value-by-value to preserve the original priority classification in the new system. The field is created in Settings → Data Model with the same picklist values that existed in CaseManager so that reporting continuity is maintained after cutover.

CaseManager

Case Custom Fields

maps to

Twenty CRM

Custom Fields on Opportunity

1:1
Fully supported

CaseManager per-case custom fields require Twenty custom field creation in Settings → Data Model before the import runs. Field types are mapped: text → TEXT, number → NUMBER, date → DATE, select → SELECT. Multiselect maps to MULTI_SELECT. Custom fields are created first; then migration populates them from CaseManager's field values.

CaseManager

Contact Custom Fields

maps to

Twenty CRM

Custom Fields on People

1:1
Fully supported

CaseManager contact-level custom fields (beyond name, email, phone) migrate to custom fields on Twenty People. Boolean and select types map to Twenty's SELECT field type. Date fields map to DATE. All custom fields must be pre-created in Settings → Data Model before the CSV import runs, per Twenty's field-before-import requirement.

CaseManager

Activity (Call / Email / Meeting)

maps to

Twenty CRM

Task

1:1
Fully supported

CaseManager logged calls, emails, and meetings map to Twenty Tasks. The activity type (Call, Email, Meeting) becomes a custom select field or the Task's body content. Original timestamps, owners, and linked contacts and cases map to Task dueDate, Task assignee (via People lookup), and the task's linked Opportunity.

CaseManager

Document / Attachment

maps to

Twenty CRM

Note

1:1
Fully supported

CaseManager file attachments associated with cases link to Twenty Notes attached to the corresponding Opportunity. Files are re-uploaded to Twenty's storage. File size limits apply — files over the platform's attachment limit are flagged for manual download reference. The Note body carries the original attachment description or a download link.

CaseManager

CaseManager User / Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

CaseManager users are resolved by email against Twenty WorkspaceMembers. Unmatched owners are flagged before migration — the team either invites the user to Twenty first or reassigns their records to a fallback assignee. No record lands in Twenty without a valid owner lookup; orphan records are held for manual assignment.

CaseManager

Workflow / Automation

maps to

Twenty CRM

Workflow (manual rebuild)

1:1
Fully supported

CaseManager workflows and automations do not migrate. They must be rebuilt in Twenty's workflow builder using the exported CaseManager workflow definitions as a reference guide. We provide a workflow-export JSON and a rebuild checklist that maps each CaseManager trigger and action to its Twenty workflow equivalent so your admin can reconstruct automations without trial and error.

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.

CaseManager logo

CaseManager gotchas

High

No documented public API for bulk data extraction

High

Progress-tracking timestamps fail to persist in some records

Medium

Custom fields vary by firm configuration with no schema registry

Medium

Attachments and document blobs are not included in CSV exports

Low

Pricing is opaque and not available on the vendor website

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

  • Import order dependency creates orphaned records if companies are not migrated first

    Twenty requires Companies to exist before you can import People with a companyId, and requires People before importing Opportunities with a personId. CaseManager's flat export structure ignores these foreign-key dependencies. If you import contacts before their primary company exists in Twenty, the companyId stays null and every related report breaks. FlitStack sequences the migration as Companies → People → Opportunities, recreates the foreign-key links by ID after each phase, and validates that every lookup resolves before the next phase starts. Skipping this sequencing is the most common reason DIY CaseManager-to-Twenty migrations end up with orphaned contacts.

  • Custom fields must be created before import, not during

    Twenty's CSV import creates records only — it does not create fields. If CaseManager has 15 custom fields on cases, all 15 must exist in Twenty's data model (Settings → Data Model) before a single Opportunity row imports. Teams that run the CSV import first and create fields afterward end up with empty custom fields and must re-import. FlitStack audits CaseManager's custom field definitions first, creates matching Twenty custom fields (with correct types: TEXT, NUMBER, DATE, SELECT, MULTI_SELECT), and only then runs the import. Any CaseManager field type that cannot map directly to a Twenty field type is flagged with a transformation note before migration starts.

  • CaseManager workflows and automations have no Twenty equivalent and must be rebuilt

    CaseManager automations (triggers, assignment rules, notification workflows) do not export in a transferable format. Twenty's workflow builder (Settings → Workflows) is a separate configuration system that must be rebuilt from scratch. FlitStack exports your CaseManager workflow definitions as a structured JSON reference and provides a rebuild guide that maps each CaseManager trigger condition and action to its Twenty workflow equivalent — so your admin can reconstruct automations without guessing. The workflow rebuild is always manual; no automated translation exists between proprietary workflow engines.

  • 20,000-record export limit requires batching for large CaseManager instances

    Twenty caps CSV exports at 20,000 records per file. CaseManager instances with more than 20k records across contacts, companies, cases, and activities require multiple export batches split by object type and date range. If CaseManager's export tooling does not support filtered exports, large batches must be downloaded in full and split locally before importing into Twenty. FlitStack handles the batching strategy in the migration plan and verifies record counts per export before loading to avoid partial imports.

  • Users must be invited to Twenty before migration or owner lookups fail

    Twenty resolves owner assignments by matching CaseManager user emails to Twenty WorkspaceMember emails. If a CaseManager owner has not accepted a Twenty invitation by migration time, their records cannot be assigned and are held in a staging queue. This creates a dependency: Twenty workspace setup and user invitations must complete before the data migration runs. FlitStack enforces this dependency by running the user-invite step first and verifying all expected WorkspaceMembers exist before any record import begins.

Migration approach

Six steps for a successful CaseManager to Twenty CRM data migration

  1. Audit CaseManager data model and export structure

    We read CaseManager's current data model — standard objects, custom fields, and relationship definitions — and produce an export plan. This step identifies which CaseManager modules have data (Contacts, Companies, Cases, Activities), counts records per module, flags per-case custom fields, and maps CaseManager status and priority pick-list values. The output is a migration scope document with export sequencing for each object type so nothing is missed before we begin mapping.

  2. Create Twenty custom fields and configure data model

    Before any data moves, we create the custom fields required in Twenty based on CaseManager's custom property definitions. This includes Case_Priority__c on Opportunities, Original_Create_Date__c on both People and Opportunities, Source_System_ID__c on all objects, and any CaseManager custom fields that have no direct Twenty equivalent. All custom fields are created in Settings → Data Model before the import file is prepared — a requirement Twenty enforces strictly.

  3. Invite Twenty workspace members and resolve owners by email

    We invite the CaseManager user list to Twenty before migration so WorkspaceMembers exist at import time. CaseManager owners are matched to Twenty users by email. Any owner without a corresponding Twenty account is flagged; the team either invites them first or designates a fallback assignee. No Opportunity or Task lands without a valid Twenty assignee lookup, preventing the orphaned-record problem that breaks reporting in Twenty post-migration.

  4. Run a test migration with field-level diff

    A representative slice migrates first — typically 100–500 records spanning People, Companies, Opportunities, and Tasks. We generate a field-level diff comparing source values against the Twenty records so you can verify that custom field values, stage mappings, owner assignments, and date fields arrived correctly. This is the last checkpoint before the full run commits. We iterate the mapping based on the diff until the validation passes before proceeding.

  5. Execute full migration with delta-pickup window

    The full migration runs in the sequence Companies → People → Opportunities → Activities. A delta-pickup window (typically 24–48 hours after the main run) captures any CaseManager records created or modified during the cutover period. Audit logs capture every operation; one-click rollback is available if reconciliation identifies missing or mis-mapped records. After rollback verification, your team goes live in Twenty.

Platform deep dives

Context on both ends of the pair

CaseManager logo

CaseManager

Source

Strengths

  • Per-case CSV export provides a manual but accessible data extraction path for attorneys.
  • Time-stamped work logging satisfies basic billing justification requirements for small law practices.
  • Document digitization converts physical case files into searchable electronic records.
  • Simple per-case interface reduces training time for paralegal and administrative staff.

Weaknesses

  • No public API means all migration work requires custom engineering against undocumented export formats.
  • Progress-tracking glitches reported in G2 reviews indicate potential data integrity issues in source records.
  • Pricing model is not publicly documented, complicating renewal and migration cost planning.
  • No bulk export capability means each case must be manually triggered for export in the UI.
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 CaseManager 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

    CaseManager: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your CaseManager to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most CaseManager-to-Twenty migrations complete in 48–72 hours for under 50,000 total records. The longest planning step is mapping CaseManager custom fields to Twenty's data model and creating them before import. Larger setups with 500k+ records, complex custom-object relationships, or multi-phase case hierarchies extend to 5–10 days. The critical path is the schema-preparation phase — the actual data load runs against Twenty's API and typically completes within a few hours.

Adjacent paths

Related migrations to explore

Ready when you are

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