CRM migration

Migrate from MyCase to Twenty CRM

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

MyCase logo

MyCase

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

14 of 14

objects map 1:1 between MyCase and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

MyCase organizes law firm data around Cases (matters), Contacts, and Companies, with time-tracking, billing, and document management bundled into a legal-specific schema. Twenty CRM uses a standard CRM object model — People, Companies, Opportunities, Notes, and Tasks — with a generic custom-object layer for anything legal-specific. The fundamental challenge in this migration is translating MyCase's matter-centric structure into Twenty's opportunity-centric pipeline, and rebuilding billing logic that has no direct equivalent in Twenty. FlitStack AI sequences the migration so Companies migrate first (the 'one' side of relationships), then People with their company associations, then Opportunities with the case-to-deal translation applied. Custom fields from MyCase cases become custom fields on Twenty Opportunities or a dedicated custom object, depending on complexity. Original matter-created dates and case numbers are preserved in custom datetime and text fields for continuity. MyCase workflows, billing rules, and IOLTA configurations do not migrate — these require manual rebuild in Twenty's settings or by your administrator. Documents must be re-uploaded; MyCase's file attachments do not export via API in a directly migratable format. A delta-pickup window captures any records modified during the cutover window.

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

MyCase logo

MyCase

What's pushing teams away

  • QuickBooks integration syncs one direction only—deleting a transaction in MyCase does not remove it in QuickBooks, and the sync can get stuck, forcing manual reconciliation that solo practitioners find disruptive.
  • Users report missing billing features that mid-size firms require: inability to bulk-update rates on past time entries, limited flat-fee case management, and manual invoice adjustments across multiple sections.
  • UI changes between releases (especially around notifications and client message navigation) create friction for staff trained on earlier layouts, per Capterra and G2 reviews.
  • Advanced features including the open API are gated behind the $109/user/month Advanced tier, so growing firms hit feature ceilings on lower plans and face a pricing cliff.
  • Firms outgrowing the platform report that Clio's integration marketplace and enterprise features better support scaling case volume, which drives switchers toward larger legal CRMs.

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

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

MyCase

Contact

maps to

Twenty CRM

People

1:1
Fully supported

MyCase contacts map directly to Twenty People. The primary company association (if any) becomes the People.companyId link in Twenty, preserving the firm relationship. Original contact IDs are preserved in a custom field for traceability and delta-run de-duplication. FlitStack AI also verifies email uniqueness before loading to avoid duplicate People records.

MyCase

Company

maps to

Twenty CRM

Companies

1:1
Fully supported

MyCase company/firm records map to Twenty Companies. Firm name, address, phone, and website transfer directly, and any custom fields on the company record are recreated via Settings → Data Model before import. Parent-subsidiary firm hierarchies in MyCase map to the Twenty Companies parentId field if the relationship structure is two-level; deeper hierarchies are flagged for manual resolution.

MyCase

Case (Matter)

maps to

Twenty CRM

Opportunity

1:1
Fully supported

MyCase matters are the core legal record and map to Twenty Opportunities representing the client engagement. Case number, practice area, status, open/close dates, and assigned attorney map to corresponding Opportunity fields. The case's client (Contact) becomes the Opportunity's linked Person.

MyCase

Case Type / Practice Area

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

MyCase practice areas (litigation, transactional, estate planning, etc.) map to Twenty Opportunity Stage values. Each practice area becomes a distinct stage so the pipeline kanban view reflects the firm's actual matter progression. Stage-entered dates from MyCase are preserved as custom datetime fields.

MyCase

Time Entry

maps to

Twenty CRM

Custom Object (TimeEntry)

1:1
Fully supported

MyCase time entries (billable hours, activity logs tied to matters) require a custom object in Twenty. Fields include date, hours, description, billing rate, and matter reference. IOLTA trust account associations cannot translate — these must be reconstructed in Twenty's accounting integration.

MyCase

Invoice / Billing Record

maps to

Twenty CRM

Custom Object (Invoice)

1:1
Fully supported

MyCase invoices, trust account transactions, and IOLTA records have no direct equivalent in Twenty. These are preserved as a custom object for historical reference, but the financial reconciliation logic must be rebuilt outside Twenty or via a custom integration. FlitStack AI can export a detailed billing ledger CSV to assist with the rebuild.

MyCase

Task (Case-related)

maps to

Twenty CRM

Task

1:1
Fully supported

MyCase tasks associated with cases map to Twenty Tasks with the parent Opportunity linked via the opportunityId field. Due dates, assignees, status, and description transfer; assignee resolution uses email matching to Twenty Workspace Members. Tasks created by MyCase workflows (automated deadline creation) do not migrate — those automation rules are not portable and must be rebuilt in Twenty's workflow builder.

MyCase

Note

maps to

Twenty CRM

Note

1:1
Fully supported

Free-form notes on MyCase cases and contacts map to Twenty Notes. Rich-text formatting in MyCase notes is preserved where the export format allows, and the note body is transferred as-is. Notes linked to specific contacts or cases are attached to the corresponding Twenty People or Companies record, maintaining the contextual relationship for future reference.

MyCase

Document / Attachment

maps to

Twenty CRM

File (manual re-upload)

1:1
Fully supported

MyCase Drive documents and case file attachments do not export via the API in a directly migratable format. FlitStack AI provides a file inventory list so your team can re-upload documents to Twenty manually or via API after migration. Documents are not lost — they require a separate upload step.

MyCase

Custom Field (Case)

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

MyCase custom fields on cases (e.g., court jurisdiction, opposing counsel, filing deadline) are recreated as custom fields on the Twenty Opportunity object via Settings → Data Model. Field type mapping applies: text fields, date fields, and pick-lists translate to their Twenty equivalents.

MyCase

Custom Field (Contact)

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

MyCase custom fields on contacts (e.g., bar number, practice focus, referral source) are recreated as custom fields on the Twenty People object via Settings → Data Model before the migration runs. Email, phone, and address fields map directly; legal-specific attributes require custom field creation and type mapping (text, picklist, date) to ensure data integrity during the CSV import.

MyCase

User / Staff Member

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

MyCase users and staff members are mapped to Twenty Workspace Members. Email-based matching links MyCase owner IDs to Twenty user accounts. Unmatched users are flagged before migration — invitations must be sent and accepted in Twenty before owner assignment can resolve.

MyCase

Client Portal Access

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

MyCase's client-facing portal access flags and client portal activity history have no direct equivalent in Twenty. Client portal status is preserved as a custom field on the People record for reference, but the portal itself must be reconfigured in Twenty.

MyCase

Workflow / Automation

maps to

Twenty CRM

Not migratable

1:1
Fully supported

MyCase workflows that auto-create tasks on case creation, send deadline reminders, or fire based on matter status changes cannot be migrated. Twenty's workflow builder (Pro/Organization tiers) must be used to recreate these. FlitStack AI exports workflow definitions as a rebuild reference document for your Twenty administrator.

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.

MyCase logo

MyCase gotchas

High

QuickBooks sync is strictly one-directional

High

Advanced API access is tier-gated

Medium

Document migration requires offline file transfer

Medium

Bulk rate updates on historical time entries are not supported

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's CSV import has no built-in UI wizard — mapping requires preparation

    Unlike MyCase's Full Data Backup tool that exports ready-to-use spreadsheets, Twenty's import process requires you to create all custom fields in Settings → Data Model BEFORE the CSV loads, then map columns during import via the Command Menu → Import records function. MyCase custom fields on cases must be pre-created in Twenty or the import will reject those columns. This sequencing — custom fields first, CSV second — is the most common point of failure in MyCase-to-Twenty migrations and must be planned before the data extraction begins.

  • MyCase workflows, tasks created by automation, and deadline rules do not transfer

    MyCase's workflow feature auto-generates tasks when a case is created or when certain status changes occur — those automated tasks are just Task records in MyCase, but they carry no provenance flag indicating they were automation-generated versus manually created. FlitStack AI cannot distinguish them, so all tasks migrate as standard Twenty Tasks. The automation logic itself (workflow definitions, conditions, and action rules) is a MyCase configuration construct with no equivalent in Twenty's data model and must be rebuilt using Twenty's workflow builder on Pro or Organization tiers. Your administrator should request a workflow export from MyCase before the migration date for use as a rebuild reference.

  • Document and file attachments cannot be bulk-exported from MyCase for automated re-upload

    MyCase Drive documents and file attachments linked to cases are stored in MyCase's proprietary file storage and do not export via the API in a directly migratable format. The MyCase Help Center explicitly recommends migrating documents by drag-and-drop into MyCase Drive during a maintenance window — this is a manual process for your team, not an automated data migration step. FlitStack AI generates a complete file inventory (document names, associated case numbers, sizes) from MyCase's export data so your team can systematically re-upload files to Twenty via the API or UI after go-live. Budget time for this re-upload step; it is the most labor-intensive part of a MyCase migration that is not handled by FlitStack AI's automated pipeline.

  • Billing, IOLTA accounts, and trust accounting have no equivalent in Twenty

    MyCase's time-tracking, flat-fee billing, IOLTA trust account management, and QuickBooks sync are deeply embedded in its data model. These records — invoices, trust transactions, billing rates, and IOLTA account assignments — have no migratable equivalent in Twenty's schema. They are preserved as reference records in a custom Invoice object for historical lookup, but the financial reconciliation logic, trust accounting rules, and QuickBooks sync behavior must be rebuilt as a separate project using Twenty's API and an external accounting tool. Firms with complex billing arrangements should treat this as a post-migration workstream, not a migration-day deliverable.

  • MyCase's 25 requests-per-second API rate limit affects extraction speed for large firms

    MyCase's API rate limits data extraction to 25 requests per second per client. For a firm with 50,000 contacts, 15,000 cases, and associated activities, the full API extraction can take multiple hours within a single export window. FlitStack AI paces extraction to stay within MyCase's rate limit, but the extraction phase should be scheduled during off-peak hours to avoid impacting active MyCase users. If your firm has over 100,000 total records, plan for a multi-session extraction rather than a single overnight run.

Migration approach

Six steps for a successful MyCase to Twenty CRM data migration

  1. Audit MyCase data and design Twenty schema

    FlitStack AI runs a discovery export from MyCase covering all contacts, companies, cases, tasks, and notes. We generate a schema audit report listing every custom field on cases and contacts, every practice area used, and the count of records per object. Your administrator reviews this report and creates the corresponding custom fields in Twenty's Settings → Data Model before we proceed. This step also includes identifying which MyCase workflows need to be exported as rebuild references and flagging any billing or IOLTA records that require manual reconstruction.

  2. Invite Twenty Workspace Members and resolve owner assignments

    Twenty requires all users referenced as assignees or case owners to exist in the workspace before import — the CSV import cannot create Workspace Members or resolve owner relationships for non-existent users. FlitStack AI emails the MyCase user list to your administrator for invitation in Twenty. We match MyCase owner IDs to Twenty user emails and flag any MyCase users who have no corresponding Twenty account. Unresolved owners receive a fallback assignment (e.g., a designated admin) until your team completes the invitation process.

  3. Migrate Companies, then People, then Opportunities

    Twenty's relational import model requires the 'one' side of relationships to exist before the 'many' side. We sequence the migration: Companies first (the firm/firm side of the data), then People with their companyId links resolved, then Opportunities with personId and companyId resolved. MyCase practice areas are translated to Twenty Opportunity stage values during this phase, and case numbers are preserved as custom fields. Each batch runs with validation checks — duplicate detection on email and case number, orphan checking for unlinked contacts.

  4. Run a sample migration with field-level diff

    A representative slice of records — typically 200–500 spanning contacts across multiple firms, cases of different practice areas, and a sample of tasks and notes — migrates first. We generate a field-level diff comparing the source MyCase record to the destination Twenty record so you can verify that practice-area-to-stage mapping, attorney assignment, case-number preservation, and company-contact linkage are correct before the full run commits. You review the diff in a shared spreadsheet; we adjust mappings and re-run the sample until you sign off.

  5. Execute full migration with delta-pickup window

    The full migration runs against Twenty. A delta-pickup window (typically 24–48 hours) captures any cases or contacts modified in MyCase during the cutover period. Audit logs document every record created and every field value written. After the delta-pickup closes, your team conducts a reconciliation check comparing Twenty record counts against MyCase export counts. If reconciliation reveals gaps, FlitStack AI provides a targeted re-migration of affected records. One-click rollback is available if the reconciliation fails entirely.

  6. Deliver file inventory and workflow export for manual rebuild

    FlitStack AI generates a file inventory CSV listing every MyCase document and attachment with its associated case number, file name, and storage location. This inventory becomes the checklist for your team's manual re-upload to Twenty. We also export your MyCase workflow definitions as a structured JSON document that your Twenty administrator can use as a reference when rebuilding automation rules in Twenty's workflow builder. Post-migration billing reconstruction (IOLTA accounts, invoice history) is scoped as a separate workstream with a custom statement of work.

Platform deep dives

Context on both ends of the pair

MyCase logo

MyCase

Source

Strengths

  • All-in-one practice management combines case files, client comms, billing, and docs in a single platform.
  • Client portal with secure document sharing reduces reliance on third-party file-sharing tools.
  • Built-in texting and e-signature are included at all tiers, avoiding per-transaction fees.
  • Workflow automation auto-generates tasks and calendared deadlines on new case creation.
  • AffiniPay parentage ties payments tightly to practice management through LawPay integration.

Weaknesses

  • Open API and advanced document management require the Advanced tier at $109/user/month.
  • One-way QuickBooks sync means billing deletions in MyCase must be manually voided in QuickBooks.
  • Cannot bulk-update rates on past time entries—each record requires individual editing.
  • UI changes between releases have caused navigation friction, especially around notifications.
  • Document automation templates are tied to the original creator's machine and cannot be exported.
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. 2 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 MyCase and Twenty CRM.

  • Object compatibility

    B

    2 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

    MyCase: 25 requests per second per client.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most MyCase-to-Twenty migrations complete within 7–14 days end-to-end for firms with under 25,000 records and straightforward case structures. Firms with multiple practice areas, heavy custom-field usage on cases, or 50,000+ total records typically need 14–21 days. The longest planning step is creating Twenty custom fields to match MyCase's custom field set before the CSV import runs. The data migration itself (extraction, transformation, and load) takes 48–72 hours for under 25,000 records, with an additional 24–48 hours for the delta-pickup window. Document re-upload is not included in the automated timeline and requires separate planning.

Adjacent paths

Related migrations to explore

Ready when you are

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