CRM migration

Migrate from Legal Workspace to Twenty CRM

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

Legal Workspace logo

Legal Workspace

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Legal Workspace and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legal workspace platforms are built around a matter-centric model — clients or contacts link to matters that carry billing rates, practice areas, responsible attorneys, and court dates. Twenty CRM is a general-purpose CRM with standard objects: People (contacts), Companies (accounts), and Opportunities (deals). There is no native legal billing or matter-management object in Twenty; practice-area labels, billing rates, and matter-status fields migrate as custom fields on the appropriate Twenty objects. FlitStack AI extracts data via the source platform's API or bulk-export, transforms matter-centric records into CRM-normal form, and loads through Twenty's CSV import with a sample-first, delta-pickup approach. Workflows, automation rules, conflict checks, and billing logic do not migrate — those must be rebuilt manually in Twenty's Settings → Workflows or documented as a rebuild reference during the engagement. Billing records including invoices, trust account entries, and payment histories export separately as a CSV artifact for loading into dedicated legal accounting software such as LawPay, not into Twenty itself. The migration preserves original create dates via custom fields and sequences the import so that lookup relationships resolve correctly across Companies, People, and Opportunities in Twenty's import pipeline.

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 Workspace logo

Legal Workspace

What's pushing teams away

  • Single-tier pricing means small firms with junior fee-earners or part-time staff pay full price per seat with no entry tier.
  • UK-centric — features and compliance posture target UK firms; multi-jurisdiction firms may need a more international product.
  • Cannysoft is a smaller vendor — partner/consultant ecosystem is narrower than mainstream legal CRMs (Clio, LEAP, Actionstep).
  • No public API documentation — custom integrations require Cannysoft engagement.
  • Customers needing trust accounting at scale typically combine Legal Workspace with a separate ledger tool, since the platform's billing module focuses on time and fees rather than client account compliance.

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

Each row shows how a Legal Workspace 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 Workspace

Contact / Client

maps to

Twenty CRM

People

1:1
Fully supported

Legal workspace contacts map directly to Twenty's People object. Primary email, phone, job title, and address fields migrate 1:1. Contacts without a company link land as standalone People records in Twenty — your team can link them to Companies after import.

Legal Workspace

Company / Organization

maps to

Twenty CRM

Company

1:1
Fully supported

Legal workspace organizations map to Twenty's Company object. Company name, website, industry, and employee count migrate directly. If the source stores parent-child company hierarchies, the parentId field on the Company record maps to the parent Company record — parent must migrate first.

Legal Workspace

Matter / Case

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Matters translate to Twenty Opportunities — the deal-name becomes the matter name, the matter number becomes a custom field (Matter_Number__c), and the estimated value or billing amount maps to the Opportunity amount field. Matter status (Active, Closed, Pending) maps to Opportunity stage via value-mapping.

Legal Workspace

Matter Status

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

Each matter status value in the source system maps to a corresponding Twenty Opportunity stage pick-list value. Active matters route to 'New' or a stage representing open work; Closed matters route to 'Won' or 'Closed'; Pending routes to a stage representing work-on-hold. If the source has more than five matter statuses, Twenty's stage pick-list is expanded to match.

Legal Workspace

Billing Rate / Hourly Rate

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

Legal billing rates have no direct equivalent in Twenty's Opportunity object. We create a custom number field (Billing_Rate__c) on the Opportunity object and populate it from the matter's rate field. If multiple rate types exist (e.g., partner rate, associate rate), we create additional custom fields and map each explicitly.

Legal Workspace

Practice Area / Area of Law

maps to

Twenty CRM

Custom Select Field on Opportunity

1:1
Fully supported

Practice area labels (Corporate, Litigation, Real Estate, etc.) become a custom select field (Practice_Area__c) on the Opportunity object. We create the pick-list options in Twenty's Settings → Data Model before import, then map each source value to the corresponding option during the ETL run.

Legal Workspace

Responsible Attorney / Assigned Lawyer

maps to

Twenty CRM

WorkspaceMember (User) + Opportunity Assignee

1:1
Fully supported

The responsible attorney email resolves against Twenty's workspace members by email match. If the attorney does not yet have a Twenty account, we flag the record and assign it to a fallback owner — your team invites the attorney before the full migration runs. The Opportunity Assignee field is populated from this resolution.

Legal Workspace

Task / To-Do (Matter-Linked)

maps to

Twenty CRM

Task

1:1
Fully supported

Tasks linked to matters migrate to Twenty's Task object with the parent Opportunity reference preserved. Due dates, task status (Open, Completed), and task descriptions carry over. If the source uses sub-task hierarchies, we flatten them into individual Task records and note the parent-child relationship in a custom field.

Legal Workspace

Note / Document Reference

maps to

Twenty CRM

Note

1:1
Fully supported

Notes attached to matters migrate to Twenty's Note object, linked to the corresponding Opportunity record. Rich-text formatting in source notes is preserved where the export format supports it; plain-text notes migrate as-is. Large documents referenced in the source are noted in a custom URL field — actual files are flagged for manual re-upload to Twenty's file storage.

Legal Workspace

Custom Fields on Matter

maps to

Twenty CRM

Custom Fields on Opportunity

1:1
Fully supported

Any custom fields on the source matter object (e.g., court jurisdiction, opposing counsel, filing deadline) are created as custom fields on Twenty's Opportunity object via Settings → Data Model before the migration runs. The import CSV includes these custom columns so the values land in the right fields on first load.

Legal Workspace

Billing / Invoice Record

maps to

Twenty CRM

No Equivalent in Twenty CRM

1:1
Fully supported

Legal billing records — invoices, trust account entries, and payment histories — have no equivalent in Twenty CRM. These records are preserved as a separate CSV export for import into dedicated legal accounting software (e.g.,,火山 or LawPay). The billing CSV is handed off as a rebuild artifact, not loaded into Twenty.

Legal Workspace

Client Intake Form Data

maps to

Twenty CRM

Custom Fields on People

1:1
Fully supported

Client intake fields (referral source, conflict-check result, engagement status) that live on the contact or matter record in the source platform become custom fields on Twenty's People object. We create these fields before import and populate them from the source export so the data is present from day one.

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 Workspace logo

Legal Workspace gotchas

Medium

Document templates and custom fields are configuration data, not matter data

Medium

Integrated timer entries and manual time records use different storage paths

High

No public API or developer portal

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

  • Matter-to-Opportunity translation changes the reporting model

    Legal workspace platforms group all matter activity under the matter record — court dates, filings, billing, and communications sit together. Twenty CRM's Opportunity object tracks pipeline stage, amount, and close date, which are deal-closing concepts, not legal-case concepts. We map matters to Opportunities for CRM compatibility, but you will need to add custom fields (billing_rate__c, practice_area__c) to capture what the matter record held natively. Your reporting logic for matter aging, utilization, and pipeline health must be rebuilt in Twenty's dashboard builder or via a BI tool connected to Twenty's PostgreSQL backend.

  • Billing records have no destination equivalent and must be handled separately

    Legal billing records — invoices, trust account transactions, and payment histories — are financial constructs that Twenty CRM does not model. When we migrate matter data, the billing_amount field moves to the Opportunity amount, but the full invoice history, trust ledger entries, and outstanding balance records must be exported separately and loaded into dedicated legal accounting software. We deliver a separate billing CSV as a rebuild artifact. If your source platform restricts billing export (common on lower tiers), we surface that limitation in the scoping phase so your team can plan the billing rebuild before go-live.

  • Twenty's CSV import requires pre-created custom fields before data loads

    Twenty's import pipeline creates records, not fields — all custom fields must exist in Settings → Data Model before the CSV import runs. If your legal workspace platform has more than 15 custom fields on a matter object, your Twenty admin needs to create matching custom fields (practice_area__c, billing_rate__c, matter_number__c, etc.) before FlitStack loads the data. We provide a field-creation checklist as part of the migration plan so your admin can pre-provision the schema. Importing against a non-existent custom field results in the column being silently skipped.

  • Import order constraint: Companies before People before Opportunities

    Twenty's CSV import enforces referential integrity: a People record with a companyId lookup requires the Company record to exist first, and an Opportunity with an accountId requires the Company to exist. If your source data has matters linked to contacts and companies simultaneously, all three objects cannot be imported in a single parallel run. We sequence the migration: Companies first, then People (with companyId resolved), then Opportunities (with accountId and People resolved). A parallel import without sequencing produces orphan records with broken lookup links.

  • Workflows, conflict checks, and intake automations do not migrate

    Legal workspace platforms embed conflict-check workflows, matter-intake forms, and billing-trigger automations that have no equivalent in Twenty's workflow engine. Twenty's workflow builder (Settings → Workflows) supports trigger-action rules and conditional logic, but the existing conflict-check rules, intake form logic, and automated billing triggers must be rebuilt from scratch. We export the source workflow definitions as a structured reference document so your legal ops team has a rebuild baseline. This is always disclosed upfront — not buried in the change order.

Migration approach

Six steps for a successful Legal Workspace to Twenty CRM data migration

  1. Scope and audit source data

    FlitStack connects to your legal workspace platform via scoped read access or bulk export and inventories every object: contacts, companies, matters, tasks, notes, and custom fields. We produce a data audit report listing record counts per object, custom field definitions with data types, and any export-format limitations your platform tier imposes. This report determines the mapping plan and surfaces billing-export restrictions before the project scope commits.

  2. Design Twenty data model and pre-create custom fields

    Based on the audit, we create a field-creation checklist for your Twenty admin: every custom field needed (practice_area__c, billing_rate__c, matter_number__c, etc.), its type, and whether it should be required or unique. The admin creates these in Settings → Data Model before the migration run. We also map responsible-attorney emails to Twenty WorkspaceMembers and flag any attorney without an account for team invitation before the import sequence runs.

  3. Resolve owner and user relationships

    Every matter record has an assigned attorney or responsible party. FlitStack resolves these by email against Twenty's workspace members. Unmatched owners are listed in a resolution report — your team invites them to Twenty or designates a fallback assignee. No Opportunity lands in Twenty without an owner. The resolution report is delivered before the full migration run so there are no orphaned records after import.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–500 records covering contacts across multiple companies, a sample of open and closed matters, tasks, and notes — migrates first. We generate a field-level diff between the source CSV and the imported Twenty records so you can verify that billing rates, practice areas, and matter numbers landed in the correct custom fields. You approve the sample before the full run commits. Any mapping corrections are applied to the full ETL script.

  5. Execute full migration with delta-pickup window

    Companies load first, then People (with companyId resolved), then Opportunities (with accountId and assignee resolved), then Tasks and Notes linked to the migrated records. After the full load, a 24–48 hour delta-pickup window captures any matters modified or created in the source system during cutover. FlitStack applies those delta records to Twenty and delivers an audit log of every record touched. One-click rollback is available if reconciliation finds unexpected divergence.

Platform deep dives

Context on both ends of the pair

Legal Workspace logo

Legal Workspace

Source

Strengths

  • Predictable single-price model with all features included.
  • UK-specific GDPR posture and SRA-aligned workflows.
  • Customisable templates, fields, and user permissions out of the box.
  • Integrated time tracking and billing reduce tool sprawl for small firms.
  • Mobile app plus modern browser access for remote work.

Weaknesses

  • Single flat tier — no junior or part-time discount.
  • Smaller vendor; narrower consultant/partner ecosystem.
  • No public API documentation.
  • UK-centric — limited fit for cross-jurisdictional firms.
  • Trust accounting depth is limited versus dedicated legal accounting tools.
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 Workspace 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 Workspace: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most legal workspace to Twenty migrations complete in 48–72 hours of clock time for under 50,000 records. Larger setups with 200,000+ records or multiple custom objects extend to 5–10 days. The longest planning step is designing the matter-to-Opportunity mapping and creating custom fields in Twenty's data model — that happens before any data moves and typically takes 3–5 business days of admin work.

Adjacent paths

Related migrations to explore

Ready when you are

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