CRM migration
Field-level mapping, validation, and rollback between My Legal Software and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
My Legal Software
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between My Legal Software and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
My Legal Software stores legal practice data around matters (cases), contacts, time entries, and billing records. It has no native CRM-style pipeline — deals are matters with legal status values. Twenty CRM uses a standard CRM data model: People, Companies, Opportunities, Tasks, Notes. There is no native legal matter object in Twenty; matters and their legal metadata become Opportunities with custom fields, and time entries become Tasks. FlitStack AI sequences the migration so Companies import first, then People (linked by companyId), then Opportunities (referencing companies and people), then Tasks. Any attorney or user references resolve by email match against Twenty workspace members. Workflows, billing automations, and trust-accounting logic do not migrate — FlitStack documents the source logic as a rebuild reference for your team to recreate in Twenty's workflow builder. The migration uses CSV export from My Legal Software mapped to Twenty's import API, with API fallback for large record sets.
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 My Legal Software 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.
My Legal Software
Contact / Client
Twenty CRM
People
1:1My Legal Software's client and contact records map directly to Twenty CRM's People object. First name, last name, email, phone, address, job title, and contact type all have direct field equivalents. Contacts without a primary company link in My Legal Software land as unlinked People records in Twenty.
My Legal Software
Contact (Primary)
Twenty CRM
People + Company link
1:1My Legal Software stores the primary contact and billing contact separately. In Twenty CRM, People link to one primary Company via companyId. FlitStack selects the most-recently-modified company association as primary; billing contact details migrate as custom fields on the People record.
My Legal Software
Company / Firm
Twenty CRM
Company
1:1My Legal Software firm and organization records map to Twenty CRM's Companies object. Company name, website, industry, employee count, and annual revenue have direct field equivalents. Parent-company hierarchies in My Legal Software collapse to a single Parent Company link in Twenty's Companies object.
My Legal Software
Matter / Case
Twenty CRM
Opportunity
1:1My Legal Software's matter is the core legal record — it holds case number, status, responsible attorney, practice area, billing rate, and trust balance. Twenty CRM has no native legal matter object; matters become Opportunities with a legal-case-number custom field (Case_Number__c), and matter status maps to Opportunity Stage via value mapping. Responsible attorney resolves by email match to Twenty workspace members.
My Legal Software
Matter Status
Twenty CRM
Opportunity StageName
1:1My Legal Software matter status values (Open, Pending, Closed Won, Closed Lost) map to Twenty CRM Opportunity stage values. FlitStack builds an explicit stage-mapping table during the migration plan: Open → 'New', Pending → 'Working', Closed Won → 'Closed Won', Closed Lost → 'Closed Lost'. Custom status values in My Legal Software get explicit mapping decisions documented in the migration plan.
My Legal Software
Time Entry
Twenty CRM
Task
1:1My Legal Software time entries (hours, billable status, activity type, work description, attorney reference) map to Twenty CRM Tasks with custom fields. The hours field maps to a custom number field (Hours__c), billable status to Billable__c, and activity type to Activity_Type__c. The attorney reference resolves to the Twenty workspace member by email match.
My Legal Software
Notes
Twenty CRM
Note
1:1My Legal Software case notes and contact notes migrate directly to Twenty CRM's Notes object. Notes attach to the corresponding People, Company, or Opportunity record by cross-reference lookup. FlitStack preserves original create timestamps and note authors during the migration, ensuring full audit trail continuity for legal practice records. Any orphaned notes without valid record links are flagged for manual resolution before final cutover.
My Legal Software
Document / Attachment
Twenty CRM
File (re-upload)
1:1My Legal Software document attachments have no direct equivalent in Twenty CRM's file model. FlitStack exports documents to a local folder structure mirroring the matter hierarchy and provides a re-upload guide for importing files into Twenty's file storage. File names are preserved to aid re-linking after upload.
My Legal Software
Trust Account Fields
Twenty CRM
Custom fields on People / Opportunity
1:1My Legal Software trust accounting fields (trust balance, matter balance, operating balance, billing rate) have no native Twenty CRM equivalent. These migrate as custom fields on People or Opportunity — Trust_Balance__c, Matter_Balance__c, Billing_Rate__c — and are flagged as reference data that requires post-migration validation against actual account records.
My Legal Software
Custom Field (Legal-Specific)
Twenty CRM
Custom Field
1:1My Legal Software custom fields (practice area, legal case number, originating attorney, matter open date, matter close date, etc.) require pre-creation in Twenty's Settings → Data Model before data imports run. FlitStack delivers a custom field creation checklist and creates the fields on the correct objects (People or Opportunity) before the CSV import sequence begins.
My Legal Software
User / Attorney
Twenty CRM
WorkspaceMember
1:1My Legal Software users and attorneys are staff records referenced by ID across contacts, matters, and time entries. Twenty CRM requires workspace members to exist before their records can be assigned. FlitStack imports workspace members first by email, then resolves user references in all subsequent object imports by matching the source user email to the Twenty WorkspaceMember.
My Legal Software
Calendar / Scheduling
Twenty CRM
Task
1:1My Legal Software deadline and court-date calendar entries map to Twenty CRM Tasks with due dates and assignees. Court appearances and filing deadlines are imported as Tasks with a custom calendar-type indicator. Recurring court dates that depend on external calendar integrations cannot be replicated — these are flagged for manual rebuild in Twenty's workflow builder.
| My Legal Software | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact / Client | People1:1 | Fully supported | |
| Contact (Primary) | People + Company link1:1 | Fully supported | |
| Company / Firm | Company1:1 | Fully supported | |
| Matter / Case | Opportunity1:1 | Fully supported | |
| Matter Status | Opportunity StageName1:1 | Fully supported | |
| Time Entry | Task1:1 | Fully supported | |
| Notes | Note1:1 | Fully supported | |
| Document / Attachment | File (re-upload)1:1 | Fully supported | |
| Trust Account Fields | Custom fields on People / Opportunity1:1 | Fully supported | |
| Custom Field (Legal-Specific) | Custom Field1:1 | Fully supported | |
| User / Attorney | WorkspaceMember1:1 | Fully supported | |
| Calendar / Scheduling | Task1: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.
My Legal Software gotchas
Unexpected session timeouts cause lost unsaved work
Pricing requires sales contact and is not published
Multi-year billing and trust records may reference inactive Case IDs
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 My Legal Software data — identify records, relationships, and legal-specific fields
FlitStack exports a full data inventory from My Legal Software: all contacts, companies, matters, time entries, notes, and custom fields. We count records by type, flag inactive records (no activity in 2+ years recommended for archival), identify custom fields by object, and surface any non-standard legal metadata (trust balances, billing rates, practice area values) that requires custom field creation in Twenty. The audit output is a Data Migration Plan with record counts, field inventory, and a decision log for collapsing multi-contact matter assignments and handling circular matter references.
Create custom fields and invite workspace members in Twenty CRM
Before any data moves, FlitStack creates all required custom fields in Twenty's Settings → Data Model: Case_Number__c, Practice_Area__c, Billing_Rate__c, Trust_Balance__c, Matter_Balance__c, Originating_Attorney__c, Source_System_ID__c, Hours__c, Billable__c, Activity_Type__c, and Contact_Type__c. Custom fields must exist before CSV import — the import creates records, not fields. Simultaneously, FlitStack imports Twenty workspace members by email so that user references in matters and time entries resolve correctly during the Opportunity and Task import steps.
Run a sample migration with field-level diff on a representative record slice
A representative slice (100–300 records spanning contacts, companies, matters, and time entries) migrates first. FlitStack generates a field-level diff comparing source values against the Twenty record after import, so you can verify that practice area values mapped correctly to the custom select, billing rates landed in Billing_Rate__c, and attorney emails resolved to Twenty workspace members. This step catches missing custom field definitions, value-mapping gaps, and owner-resolution failures before the full migration commits.
Execute full migration in dependency order with delta-pickup window
Full migration runs in the correct Twenty import sequence: Companies (with ParentId for hierarchies), then People (linked by companyId), then Opportunities (with legal case metadata in custom fields and assigneeId resolved by email match), then Tasks (time entries with Hours__c, Billable__c, and Activity_Type__c), then Notes. A delta-pickup window (24–48 hours) captures any matters or contacts modified in My Legal Software during the cutover window. FlitStack generates an audit log of every operation, and one-click rollback reverts Twenty to the pre-migration state if reconciliation reveals critical mismatches.
Post-migration reconciliation and workflow rebuild handoff
FlitStack delivers a reconciliation report comparing record counts, custom field completeness, and relationship integrity (contacts linked to correct companies, opportunities linked to correct people, time entries linked to correct attorneys). Any unresolvable owner references or orphan records are flagged for manual review. We provide a Workflow Reconstruction Reference document listing every My Legal Software workflow, billing automation, and trust-accounting rule with its logic and conditions — your Twenty admin uses this to rebuild automations in Twenty's workflow builder. Document attachments are delivered as a structured file folder hierarchy for manual re-upload to Twenty's file storage.
Platform deep dives
My Legal Software
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 My Legal Software 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
My Legal Software: Not publicly documented.
Data volume sensitivity
My Legal Software 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 My Legal Software to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your My Legal Software 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 My Legal Software
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.