CRM migration

Migrate from Case UI to Twenty CRM

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

Case UI logo

Case UI

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Case UI and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Case UI and Twenty CRM share a relational object model at the data layer — contacts map to People, companies map to Companies, and cases map to Opportunities — but the schema conventions and import mechanisms differ significantly. Case UI exports via CSV through its data management panel; Twenty imports via CSV or REST/GraphQL API through Settings → Data Model with a 20,000-record export ceiling per file. FlitStack AI sequences the migration so Companies land first (satisfying Twenty's foreign-key requirement), then People with their companyId links, then Opportunities with their personId and companyId lookups, then any custom objects. All Case UI custom fields must be pre-created in Twenty before the import runs — we deliver a field-creation checklist as part of the migration plan. Workflows, automation rules, and permission sets are not migrated; we export them as structured reference documents for manual rebuild in Twenty's workflow builder. The migration uses scoped read access on Case UI, keeping your team operational throughout, with a 24–48h delta pickup window to capture records modified during cutover.

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

Case UI logo

Case UI

What's pushing teams away

  • Small law firms report outgrowing the platform when they need advanced integrations, custom workflows, or multi-office support that Case UI does not provide.
  • Lack of public API documentation makes Case UI difficult to connect with third-party tools, forcing firms to manually export and re-enter data when workflow needs change.
  • Users with complex practice areas report that the platform lacks depth in features like advanced reporting, conflict checking, or specialized litigation tools.
  • On-Premise customers who lack dedicated IT staff struggle with self-managed security updates and backups, leading some to move to fully managed alternatives.

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

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

Case UI

Client

maps to

Twenty CRM

People

1:1
Fully supported

Case UI Client records map directly to Twenty CRM People records. The name, email, phone, and address fields translate 1:1. The email field in Twenty serves as the unique identifier for import deduplication — Case UI client emails are used as the match key. Clients without an email are assigned a generated placeholder address and flagged for manual review after migration.

Case UI

Firm / Organization

maps to

Twenty CRM

Companies

1:1
Fully supported

Case UI firms or organization affiliations stored on Client records map to Twenty CRM Companies. Company name, domain, industry, and address fields translate directly. For solo practitioners with no firm affiliation, FlitStack creates a 'Solo Practice' placeholder Company record and links the People record to it, ensuring every People record has a valid companyId.

Case UI

Case

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Case UI Case records map to Twenty CRM Opportunities — the closest structural analogue in Twenty's standard object model. Case fields like case_number, status, practice_area, court_jurisdiction, and assigned_attorney migrate as custom fields on the Opportunity. The Opportunity Stage maps to Case UI status values (e.g., 'Active', 'Pending', 'Closed'), and Amount can carry the billing total or at-risk value if present in Case UI.

Case UI

Matter

maps to

Twenty CRM

Custom Object or Opportunity

1:1
Fully supported

Case UI Matters are often sub-entities of Cases. FlitStack maps each unique Matter to an Opportunity record with a custom matter_type field distinguishing it from top-level Cases. If Case UI uses a separate Matters object with a one-to-many relationship to Cases, we create a custom object 'Matter' in Twenty and build the Case-to-Matter relationship via a custom relation field on the Opportunity, preserving the parent-child hierarchy.

Case UI

Activity (notes, calls, tasks)

maps to

Twenty CRM

Note / Task

1:1
Fully supported

Case UI activity logs (call notes, meeting summaries, internal notes) migrate to Twenty CRM Notes attached to the corresponding People or Opportunity record. Each Note preserves its original create date, author, and content body. Tasks from Case UI (e.g., filing deadlines, court dates) migrate as Twenty Tasks with due dates, assignees matching the assigned_attorney, and status preserved as the Task completion flag.

Case UI

Document / Attachment

maps to

Twenty CRM

Note (with file attachment)

1:1
Fully supported

Case UI document attachments (pleadings, contracts, correspondence) are re-hosted in Twenty's storage and attached to the relevant Note or Opportunity record. FlitStack downloads each file from Case UI's document store, uploads it to Twenty's file storage, and creates a Note record linking to the file URL. File size limits follow Twenty's storage configuration for self-hosted or cloud deployments.

Case UI

Custom Field (case-level)

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

Case UI custom fields defined at the case level — such as court_jurisdiction, presiding_judge, opposing_counsel, billing_arrangement — are mapped to custom fields on Twenty's Opportunity object. Each custom field is pre-created in Twenty Settings → Data Model before the migration run. Field types are inferred from Case UI's field definitions: text fields become Twenty text fields, pick-lists become select fields, and date fields become date fields.

Case UI

Custom Field (client-level)

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Case UI custom fields at the Client level — such as bar_number, practice_focus_areas, billing_rate — migrate to custom fields on Twenty's People object. Like case-level custom fields, each is pre-created in Twenty before the migration run. FlitStack generates a custom-field creation checklist from the Case UI field inventory so nothing is missed before data lands.

Case UI

User / Attorney

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Case UI attorney and staff user accounts map to Twenty CRM Workspace Members. FlitStack resolves Case UI user records by email against Twenty workspace members, which must be invited and accept their invitation before the migration runs (per Twenty's documentation). Unmatched Case UI users are flagged as fallback-owner assignments on migrated records. Twenty does not support a roles-and-profiles model equivalent to Case UI's permission sets — those must be rebuilt manually in Twenty's permissions settings.

Case UI

Workflow / Automation Rule

maps to

Twenty CRM

Workflow (no equivalent — rebuild required)

1:1
Fully supported

Case UI workflow rules and automation triggers (e.g., case-status-change notifications, deadline reminders, assignment rules) have no direct equivalent in Twenty CRM's workflow builder. FlitStack exports the full workflow definitions as a structured JSON document referencing Case UI's rule names, conditions, and actions. This document serves as the rebuild specification for your Twenty admin to reconstruct equivalent automations in Twenty's workflow builder after 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.

Case UI logo

Case UI gotchas

High

No public API documentation found

Medium

On-Premise perpetual license has upgrade isolation risk

Low

No verified public reviews or G2/Capterra feedback

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 to exist before import — field creation is a pre-migration step, not part of the import

    Case UI custom fields (practice_area, court_jurisdiction, bar_number, billing_arrangement, and any client-level custom properties) cannot be created during the CSV import in Twenty. The platform enforces that fields must exist in Settings → Data Model before a CSV column header referencing them is processed. FlitStack delivers a field-creation checklist derived from Case UI's custom field inventory, listing each field's object target, type, and pick-list values. Your Twenty admin must pre-create these fields before the migration run executes — we include the exact field names and types to copy into Twenty's field creation UI.

  • Twenty enforces strict import order: Companies before People before Opportunities — violating this order breaks foreign-key links

    Case UI has no documented import-order constraint, but Twenty's relational model requires that the 'one' side of every one-to-many relationship exists before the 'many' side can reference it. Specifically, every People record in Twenty carries a companyId field pointing to its parent Company. If you import People records before their corresponding Companies exist in Twenty, the companyId lookup resolves to null and the relationship is broken. FlitStack sequences the migration as: (1) Companies from Case UI firm records, (2) People with companyId links resolved, (3) Opportunities with personId and companyId links resolved, (4) Custom objects last. This sequencing is handled automatically — we disclose it so your team understands why the migration runs in distinct phases.

  • Case UI has no documented public API — all migration runs through CSV export, which carries a 20,000-record ceiling per file in Twenty

    Twenty CRM's CSV export function caps each file at 20,000 records. If your Case UI instance holds more than 20,000 records across any single object type (Clients, Cases, Matters), FlitStack automatically splits the export into multiple files and runs sequential imports per file, re-running the deduplication logic between batches to prevent duplicate records. The 20,000-record limit is a Twenty platform constraint, not a Case UI export constraint — Case UI's export panel has its own record-set limits that we map against before the migration runs.

  • Workflow rules and automation logic in Case UI do not migrate — they require manual rebuild in Twenty's workflow builder

    Case UI stores workflow automation rules (case-status-change notifications, deadline reminder triggers, attorney assignment rules, and escalation logic) as platform configuration that is not included in the data export. Twenty CRM has a separate workflow builder accessible via the UI that defines automations independently of the data layer. FlitStack exports the full workflow rule definitions from Case UI as a structured JSON document listing each rule's name, trigger conditions, actions, and affected record types. Your Twenty admin uses this document as a rebuild specification — the logic is not automatically transferred. Plan 1–3 days of configuration time for each complex workflow rule.

  • Workspace Members in Twenty must accept their invitation before their user references can map on imported records

    Case UI attorney and staff user accounts reference people records through an assigned_attorney field on each case. In Twenty, these map to Workspace Members. However, Twenty's import documentation explicitly states that user references (assigneeId on Tasks, ownerId equivalent on Opportunities) can only resolve if the Workspace Member already exists in Twenty when the import runs. FlitStack requires your team to invite and confirm all expected users in Twenty before the migration execution window. We cross-reference Case UI user emails against invited Twenty workspace members and flag any unmatched users for fallback owner assignment before the import begins.

Migration approach

Six steps for a successful Case UI to Twenty CRM data migration

  1. Audit Case UI data inventory and generate the Twenty field-creation checklist

    FlitStack pulls a full export of every Case UI object — Clients, Companies, Cases, Matters, Notes, Tasks, and any custom objects — and inventories all fields including custom properties. We compare this against Twenty CRM's standard field set and generate a field-creation checklist that lists every custom field to pre-create in Settings → Data Model, with field name, object target, type, and pick-list values. Your Twenty admin creates these fields before the migration run. This step typically takes 2–4 hours of admin time depending on the number of custom fields.

  2. Invite all expected users to Twenty and verify workspace member acceptance

    All Case UI users who appear as assigned_attorney, task assignees, or note authors must have a corresponding Twenty Workspace Member before the migration runs. FlitStack cross-references Case UI user emails against your provided Twenty member list and flags any users who have not yet accepted their invitation. Unmatched or uninvited users are assigned to a fallback workspace member (e.g., admin) during migration, with the original assigned user noted in a custom field for post-migration reassignment. This step prevents orphaned owner references in migrated Opportunities and Tasks.

  3. Run a test migration with a representative sample and generate a field-level diff

    A sample of 100–500 records spanning Clients, Companies, Cases, and Notes migrates into Twenty first. FlitStack generates a field-level diff comparing source values against destination fields for every mapped record. This diff validates the field-creation checklist (no missing fields cause import errors), verifies the case-status to Opportunity stage value mapping, confirms attorney email resolution, and surfaces any data quality issues (duplicate emails, missing required fields) before the full run commits. You review the diff and approve or request corrections before the full migration proceeds.

  4. Execute the full migration in import-order sequence with delta-pickup window

    The full migration runs in Four phases: (1) Companies imported with unique domain/name identifiers; (2) People imported with companyId lookups resolved from Phase 1; (3) Cases and Matters imported as Opportunities with personId and companyId links resolved from Phases 1–2, custom fields populated from the pre-creation checklist; (4) Notes and Tasks imported and attached to their parent People and Opportunity records. A delta-pickup window of 24–48 hours follows the initial migration run, re-querying Case UI for any records modified or created during the cutover and applying those changes to Twenty. Audit log captures every operation; one-click rollback is available if reconciliation identifies missing or mis-mapped records.

  5. Deliver the workflow rebuild reference document and post-migration reconciliation report

    FlitStack delivers a structured JSON export of every Case UI workflow rule and automation definition, cross-referenced with Twenty's workflow builder documentation. Your Twenty admin uses this document to rebuild automations in Twenty. The post-migration reconciliation report compares record counts per object, verifies that all foreign-key links (companyId on People, personId/companyId on Opportunities) resolved correctly, and lists any records that landed with fallback owner assignments requiring manual reassignment. A final data-quality pass validates that Case UI custom fields appear correctly in Twenty's Opportunity and People detail views.

Platform deep dives

Context on both ends of the pair

Case UI logo

Case UI

Source

Strengths

  • Clear per-user pricing with no surprise fees or mandatory add-ons on the Cloud plan.
  • On-Premise perpetual option eliminates per-user billing for firms with many attorneys and staff.
  • Free trial lets firms validate fit before committing to a paid subscription.
  • Daily backups and segregated databases reduce data loss risk for solo practitioners.
  • Straightforward interface purpose-built for small law firm workflows.

Weaknesses

  • No publicly documented API limits third-party integrations and automated migration tooling.
  • Limited public documentation and no verified reviews make independent evaluation difficult.
  • Smaller feature set compared to enterprise legal platforms may not support complex or multi-practice operations.
  • On-Premise version requires firm IT staff to manage upgrades, security, and backups independently.
  • No transparent rate limits or SLA terms published on the website for Cloud customers.
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 Case UI 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

    Case UI: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Case UI to Twenty CRM migrations complete within 48–72 hours of clock time for under 50,000 records. The longest planning step is pre-creating custom fields in Twenty Settings → Data Model — plan 2–4 hours of admin time for this before the migration run. Migrations exceeding 50,000 records or involving multiple custom objects (Cases and Matters as separate Opportunity types) extend to 5–10 days. The delta-pickup window (24–48 hours) runs concurrently with your team's final Case UI data entry, so operational disruption is minimized.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Case UI.
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