CRM migration

Migrate from Legal Case Tracker to Twenty CRM

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

Legal Case Tracker logo

Legal Case Tracker

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between Legal Case Tracker and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legal Case Tracker organizes law firm data around Case and Client objects with fields for case status, court dates, opposing counsel, and billing codes. Twenty CRM uses People, Companies, and Opportunities as its core objects, plus a Custom Objects model that accepts arbitrary metadata through its Settings → Data Model API. The migration maps each Case record to a Twenty custom object named 'Case' or 'Matter', maps Client records to People, and preserves the attorney-to-case relationship using the companyId lookup on People combined with a custom relation field on the Case object. We migrate all case-level fields (status, type, court, opposing party) as custom fields on the Case object. Document references migrate as Notes or file attachments. Activity history (calendar events, tasks, billable time entries) maps to Twenty's Tasks and Notes objects. Workflows and automations — court-date reminders, status-change triggers — do not migrate; we export their definitions as a rebuild reference for your Twenty admin. The migration runs via Twenty's REST and GraphQL APIs (200 calls/min on Organization tier) using a sequenced load: Companies first, then People, then the Case custom object, then Tasks and Notes. A 24–48 hour 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

Legal Case Tracker logo

Legal Case Tracker

What's pushing teams away

  • Limited advanced features as firms scale — analytics, AI automation, and workflow customisation are minimal compared to mid-market alternatives, prompting migration when firms grow beyond basic case tracking.
  • Reporting and customisation gaps frustrate users who need firm-wide dashboards, custom fields, or deeper customisation; some resort to third-party tools that the platform does not integrate with cleanly.
  • Customer support responsiveness is inconsistent according to user reports, with some issues requiring extended ticket queues rather than direct resolution.
  • Document export and API access are restricted on lower tiers, limiting data portability and making migrations harder when firms decide to switch platforms.

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

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

Legal Case Tracker

Case / Matter

maps to

Twenty CRM

Custom Object: Case (or Matter)

1:1
Fully supported

Legal Case Tracker's Case record maps to a Twenty custom object named 'Case'. The custom object must be pre-created in Settings → Data Model before import. All case-level fields (status, type, court, opposing party, statute of limitations) become custom fields on this object. The Case's original create date and last-modified date are preserved as custom datetime fields since Twenty's system timestamps reflect migration time.

Legal Case Tracker

Client / Contact

maps to

Twenty CRM

People

1:1
Fully supported

Legal Case Tracker's Client record maps directly to Twenty's People object. The client's name, email, phone, address, and firm affiliation all have direct equivalents. If the Client has a firm name, that firm must be migrated as a Company record first so the People record can reference it via companyId.

Legal Case Tracker

Client Firm / Organization

maps to

Twenty CRM

Company

1:1
Fully supported

Legal Case Tracker's client organization maps to Twenty's Company object. Firm name becomes Company.displayName. Industry, size, and address fields map to their Company equivalents. Multiple attorneys at the same firm collapse to one Company record linked by multiple People records.

Legal Case Tracker

Case-Party (Plaintiff / Defendant)

maps to

Twenty CRM

People + Custom relation on Case

1:many
Fully supported

Plaintiff and defendant parties in Legal Case Tracker may be existing clients (People) or external parties. We migrate them as related People records and create a custom 'Party Role' field (select: Plaintiff, Defendant, Third-Party) on the Case object to label each relationship. Multiple parties per case are handled as multiple relation links.

Legal Case Tracker

Case Status

maps to

Twenty CRM

Custom field on Case: Case_Status__c

1:1
Fully supported

Legal Case Tracker status values (Open, Pending, Closed, Appeal) map to a custom select field on the Case object. We preserve the exact status label for each Case record. If your firm uses custom status values, we create a value-by-value mapping before migration and flag any unmapped statuses for manual review.

Legal Case Tracker

Calendar Event / Hearing Date

maps to

Twenty CRM

Task

1:1
Fully supported

Court hearing dates, filing deadlines, and client meeting reminders in Legal Case Tracker map to Twenty Tasks. The Task.title carries the hearing description, dueDate carries the hearing date, and the Case object is linked via a custom relation field. Recurring reminders are not replicated — these must be rebuilt as Twenty workflow triggers.

Legal Case Tracker

Document / Attachment

maps to

Twenty CRM

Note / File attachment on Case

1:1
Fully supported

Documents attached to Legal Case Tracker cases are downloaded and re-uploaded as file attachments on the corresponding Twenty Case record. File name and original upload date are preserved as metadata. Large document sets are batched to respect Twenty's file size limits and API throughput.

Legal Case Tracker

Billing / Time Entry

maps to

Twenty CRM

Custom fields on Case + Note

1:1
Fully supported

Billable time entries and expense records tied to a Case become structured custom fields on the Case object (Total_Hours__c, Total_Fees__c, Last_Billed_Date__c) plus a Note capturing the entry narrative. Since Twenty has no native billing module, fee data is preserved as reference fields rather than live invoice records.

Legal Case Tracker

Note / Attorney Notes

maps to

Twenty CRM

Note

1:1
Fully supported

Free-form attorney notes on a Case record migrate as Twenty Notes attached to the Case object. The note body, author, and create timestamp are preserved. Rich-text formatting is converted to Twenty's note format. Notes that reference other Cases are linked via a custom cross-reference field.

Legal Case Tracker

Custom Field (any type)

maps to

Twenty CRM

Custom field on target object

1:1
Fully supported

Any custom fields defined on Case or Client in Legal Case Tracker — such as court district, malpractice carrier, referral source, or insurance policy number — are migrated as custom fields on the corresponding Twenty object. Field type mapping: text→TEXT, number→NUMBER, date→DATE, picklist→SELECT. Fields must be pre-created in Settings → Data Model before the import batch runs.

Legal Case Tracker

Opposing Counsel / External Party

maps to

Twenty CRM

People (linked to Case via custom relation)

1:1
Fully supported

Opposing counsel and external parties not already in Legal Case Tracker as contacts are migrated as People records with a custom Type__c value of 'Opposing Counsel' or 'External Party'. A custom relation field on the Case object links the attorney to the matter. This requires a custom field and a custom relation to be pre-created in Twenty's data model.

Legal Case Tracker

Workflow / Automation

maps to

Twenty CRM

None

1:1
Fully supported

Legal Case Tracker workflows (deadline alerts, status-change triggers, email notifications) have no equivalent in Twenty CRM's workflow builder. We export the workflow definitions as a structured JSON document that your Twenty admin can use as a rebuild specification. Automations must be manually recreated in Twenty's workflow builder post-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.

Legal Case Tracker logo

Legal Case Tracker gotchas

High

Time entries may use non-standard duration formats

High

No native document export endpoint exists

Medium

Role-based access flags may disrupt user assignment after migration

Medium

Calendar events without a parent-case link import as orphaned records

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 custom object must be pre-created before data can import

    Unlike Legal Case Tracker where custom fields are created inline during data entry, Twenty requires all custom objects and custom fields to exist in the metadata schema before any records load. The import UI (Command Menu → Import records) creates records only — never fields. We deliver a schema setup plan based on your Case object field inventory so your Twenty admin can pre-create the Case object and all its custom fields in Settings → Data Model before the migration batch runs. Skipping this step causes the import to fail or silently drop unmapped fields.

  • Case-to-Party relationships require a custom relation field that Twenty does not provide out of the box

    Legal Case Tracker links plaintiffs, defendants, and opposing counsel directly to a Case record with typed roles. Twenty's standard People and Company objects support basic relations but do not have a native concept of a 'party role' on a case. We handle this by creating a custom select field (Party_Role__c: Plaintiff, Defendant, Opposing Counsel, Third-Party) on the Case object and linking the related People records via a custom People-Case relation. This requires both the custom field and the relation to be defined in Twenty's metadata before the relation import step runs — the same pre-creation dependency as the Case object itself.

  • Twenty's API rate limits cap import throughput on large case volumes

    Twenty's REST and GraphQL APIs enforce per-minute rate limits: 100 calls/min on the Pro cloud tier and 200 calls/min on the Organization tier. A migration of 20,000+ records with attachment downloads and relation resolutions can exhaust these limits during the bulk load phase. We handle this by implementing exponential backoff and batching records into chunks that respect the limit. On Organization tier, this allows a full migration to complete within the 48–72 hour window. On Pro tier, large migrations may require a longer delta window or manual scheduling to avoid throttling.

  • Document version history does not migrate — only the latest file version transfers

    Legal Case Tracker stores document version history, allowing you to see prior drafts attached to a case. Twenty's file attachment model stores a single file per upload with no native version chain. We migrate the most recent file version for each document and preserve the original upload timestamp. If your firm relies on version history for compliance (e.g., court-filed document chains), the version metadata should be captured as a Note attached to the file record before the migration runs. We include this as a pre-migration step in the approach.

  • Twenty's workflow builder cannot replicate Legal Case Tracker's deadline-triggered automations without manual rebuild

    Legal Case Tracker automation rules — such as sending a reminder email 5 days before a court date, or changing case status to 'Hearing Set' when a calendar event is created — have no equivalent in Twenty's workflow builder without manual reconstruction. We export your automation definitions in a structured JSON format that your Twenty admin can use as a specification to rebuild each rule in Twenty's workflow UI. This includes trigger conditions, action types, and timing logic. No automation logic transfers automatically; this is a post-migration configuration task that should be scoped before go-live.

Migration approach

Six steps for a successful Legal Case Tracker to Twenty CRM data migration

  1. Audit Legal Case Tracker data and deliver a Twenty schema plan

    We export a full data inventory from Legal Case Tracker covering all Case records, Client records, Company records, Tasks, Notes, Documents, and custom field definitions. We then produce a Twenty schema plan: the exact custom object name, custom field names, field types, and relation definitions to create in Settings → Data Model. Your Twenty admin creates these before any data loads. We validate the schema is complete and correct before moving to the next step.

  2. Resolve attorneys and clients by email match to Twenty Workspace Members

    Twenty associates all records to Workspace Members via user records. We match Legal Case Tracker attorney and assigned-user email addresses against Twenty user accounts. Unmatched users are flagged with a resolution list — either invite them to Twenty first or assign their records to a fallback Workspace Member. No record lands without a resolved owner. This step also identifies any duplicate People records that may already exist in Twenty from prior imports.

  3. Migrate Companies, then People, then Case custom object, then Tasks and Notes

    Twenty requires the 'one' side of relationships to exist before the 'many' side can reference them. We sequence the migration: Companies first (so People records can link via companyId), People second (so Case records can reference the attorney via Assigned_Attorney__c), the Case custom object third (with all its custom fields and relation fields), and finally Tasks and Notes last (linked to their parent Case record). Document files are downloaded in parallel, re-uploaded to Twenty's file storage, and linked to the Case record in a separate relation step.

  4. Run a sample migration with field-level diff before full commit

    A representative slice of records — typically 100–500 covering a cross-section of Case types, People, and activity records — migrates first against your live Twenty workspace. We generate a field-level diff comparing source values against the destination record so you can verify that case status values mapped correctly, custom fields populated, attorney assignments resolved, and document links attached. You review and approve before the full run commits. This step catches field-type mismatches, missing select options, and broken relations before they affect all records.

  5. Cut over with delta-pickup window and one-click rollback on standby

    The full migration batch runs against Twenty. A 24–48 hour delta-pickup window captures any Case records, Client updates, or new Documents created in Legal Case Tracker during the cutover. Our audit log records every operation: source record ID, destination record ID, timestamp, and user. If reconciliation fails — a record count mismatch, a broken relation, or a data quality issue — one-click rollback reverts the workspace to its pre-migration state. After rollback, the issue is diagnosed and the migration re-runs.

Platform deep dives

Context on both ends of the pair

Legal Case Tracker logo

Legal Case Tracker

Source

Strengths

  • Dynamic dashboard provides at-a-glance view of active cases, pending tasks, and upcoming hearings for daily practice management.
  • Time tracking and expense logging are natively integrated, keeping billable hours and cost records attached to the relevant matter.
  • Role-based access control enables basic confidentiality by restricting sensitive case information to authorised users.
  • Document hub centralises case-related files with contacts and calendar integration to Outlook for email attachment linking.
  • Low-friction onboarding for small teams with straightforward interface and no enterprise configuration overhead.

Weaknesses

  • Minimal analytics and reporting beyond standard dashboards limits data-driven insights for firm growth and performance review.
  • API documentation is not publicly available, restricting programmatic access and custom integrations.
  • Advanced AI automation and workflow features are absent or limited compared to mid-market legal CRM alternatives.
  • Document export capabilities are restricted, making bulk data portability difficult when migrating off the platform.
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. 1 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 Legal Case Tracker and Twenty CRM.

  • Object compatibility

    B

    1 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

    Legal Case Tracker: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Legal Case Tracker to Twenty CRM migrations complete within 48–72 hours for setups under 10,000 records. The longest planning step is pre-creating the Case custom object and its custom fields in Twenty's Settings → Data Model — this takes 1–3 days depending on schema complexity and how many distinct Case types your firm runs. Migrations exceeding 50,000 records, or those with multiple Case objects and billable-time history, extend to 7–14 days. The delta-pickup window adds 24–48 hours on top of the initial batch run.

Adjacent paths

Related migrations to explore

Ready when you are

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