CRM migration
Field-level mapping, validation, and rollback between MyCase and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
MyCase
Source
Twenty CRM
Destination
Compatibility
14 of 14
objects map 1:1 between MyCase and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
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 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
Twenty CRM
People
1:1MyCase 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
Twenty CRM
Companies
1:1MyCase 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)
Twenty CRM
Opportunity
1:1MyCase 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
Twenty CRM
Opportunity Stage
1:1MyCase 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
Twenty CRM
Custom Object (TimeEntry)
1:1MyCase 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
Twenty CRM
Custom Object (Invoice)
1:1MyCase 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)
Twenty CRM
Task
1:1MyCase 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
Twenty CRM
Note
1:1Free-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
Twenty CRM
File (manual re-upload)
1:1MyCase 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)
Twenty CRM
Custom Field on Opportunity
1:1MyCase 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)
Twenty CRM
Custom Field on People
1:1MyCase 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
Twenty CRM
Workspace Member
1:1MyCase 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
Twenty CRM
Custom Field on People
1:1MyCase'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
Twenty CRM
Not migratable
1:1MyCase 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.
| MyCase | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Companies1:1 | Fully supported | |
| Case (Matter) | Opportunity1:1 | Fully supported | |
| Case Type / Practice Area | Opportunity Stage1:1 | Fully supported | |
| Time Entry | Custom Object (TimeEntry)1:1 | Fully supported | |
| Invoice / Billing Record | Custom Object (Invoice)1:1 | Fully supported | |
| Task (Case-related) | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Document / Attachment | File (manual re-upload)1:1 | Fully supported | |
| Custom Field (Case) | Custom Field on Opportunity1:1 | Fully supported | |
| Custom Field (Contact) | Custom Field on People1:1 | Fully supported | |
| User / Staff Member | Workspace Member1:1 | Fully supported | |
| Client Portal Access | Custom Field on People1:1 | Fully supported | |
| Workflow / Automation | Not migratable1: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.
MyCase gotchas
QuickBooks sync is strictly one-directional
Advanced API access is tier-gated
Document migration requires offline file transfer
Bulk rate updates on historical time entries are not supported
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
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.
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.
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.
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.
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.
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
MyCase
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 MyCase and Twenty CRM.
Object compatibility
2 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
MyCase: 25 requests per second per client.
Data volume sensitivity
MyCase 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 MyCase to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave MyCase
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.