CRM migration

Migrate from CosmoLex to Twenty CRM

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

CosmoLex logo

CosmoLex

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between CosmoLex and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CosmoLex is a legal-practice management platform built around a two-level hierarchy: Clients (contact and billing records) linked to Matters (cases or projects with their own time, billing, and document data). It includes integrated trust accounting, multiple billing methods (hourly, fixed-fee, contingency), and a structured workflow for non-financial-data and financial-data migration. Twenty CRM is a modern open-source CRM built on PostgreSQL, React, and a TypeScript stack — it exposes a REST and GraphQL API, supports CSV import with 20,000-record per-export limits, and uses a three-tier plan structure (Pro at $9/user/month, Organization at $19/user/month, plus free self-hosting under AGPL-3.0). Twenty's data model centers on People, Companies, Opportunities, Tasks, and Notes with unlimited custom objects and custom fields. FlitStack AI maps CosmoLex client records to Twenty People, CosmoLex matters to Twenty Opportunities, and CosmoLex time entries to Twenty Tasks. The responsible attorney resolves by email match against Twenty workspace members. CosmoLex's billing rates, billing method, and matter status migrate as custom fields on the Opportunity since Twenty has no native legal-billing model. Trust account data and custom properties that have no direct equivalent land as custom fields for reference. CosmoLex does not expose a public API — FlitStack extracts data through structured CSV exports and direct database queries for supported setups, then loads into Twenty via CSV import for standard objects and the REST/Bulk API for custom objects and relational fields. Workflows, automations, trust-accounting logic, and billing templates do not migrate and must be rebuilt in Twenty or handled by a separate accounting tool.

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

CosmoLex logo

CosmoLex

What's pushing teams away

  • Billing issues and account lockouts frustrate users, with some reporting unexpected payment problems that interrupt firm operations during critical billing cycles.
  • Performance slowdowns and occasional freezing during heavy use make firms question whether the platform scales adequately for multi-attorney practices with high transaction volumes.
  • Users who outgrow the platform's feature set seek more robust reporting, advanced automation, or deeper integrations available in enterprise legal software like Clio or PracticePanther.
  • The learning curve — while manageable — creates friction during onboarding, and some reviewers report the platform feels harder to use than advertised for non-accountants.

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

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

CosmoLex

Client (Contact)

maps to

Twenty CRM

People

1:1
Fully supported

CosmoLex clients store individual contact data: name, email, phone, address, and firm association. These map 1:1 to Twenty People records. The client-type field (individual attorney vs. organizational) determines whether a Company record is also created in Twenty. All contact fields including name components, email addresses, phone numbers, and postal addresses are mapped to their corresponding Twenty People fields with no transformation required.

CosmoLex

Client (Organization)

maps to

Twenty CRM

Company

1:1
Fully supported

CosmoLex clients that are law firms, corporate legal departments, or organizational entities map to Twenty Companies. Company name, domain, industry, and size fields migrate directly. Multi-contact firms maintain the People-to-Company link via the companyId relation. Each organization in CosmoLex becomes a Company record in Twenty with the organization's name, website domain, and industry classification preserved during the transfer.

CosmoLex

Matter

maps to

Twenty CRM

Opportunity

1:1
Fully supported

CosmoLex matters are the primary work unit — they carry the matter name, number, responsible attorney, status, billing method, and client link. In Twenty, matters become Opportunities with the matter name as the Opportunity name, the matter number as a custom reference field (Matter_Number__c), and the client as the linked Company.

CosmoLex

Time Entry

maps to

Twenty CRM

Task

1:1
Fully supported

CosmoLex time entries capture date, duration (hours), attorney, task description, and billing method (hourly, fixed, contingency). Each time entry becomes a Twenty Task with the description as the Task title, date as the due/completed date, and hours as a custom numeric field. Billable flag maps to a Task custom field.

CosmoLex

Matter Responsible Attorney

maps to

Twenty CRM

Workspace Member (assigned to Opportunity)

1:1
Fully supported

CosmoLex Matter Owners and Timekeepers are resolved by email match against Twenty workspace members. Unmatched attorneys are flagged before migration and assigned to a fallback workspace member. The responsible attorney role is stored as the Opportunity assignee in Twenty. This ensures that every migrated opportunity has an assigned owner from the Twenty workspace who can be contacted regarding the associated legal matter.

CosmoLex

Matter Status

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

CosmoLex matter status values (Open, Closed, On Hold, Pending) have no direct equivalent in Twenty's Opportunity stage model. A custom pick-list field (Matter_Status__c) is created in Twenty and mapped value-by-value from CosmoLex status values. Firms may optionally map these to Twenty's native Stage field for reporting purposes, but legal-matter lifecycle status is preserved in the custom field for clarity.

CosmoLex

Billing Rate / Method

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

CosmoLex supports hourly, fixed-fee, and contingency billing per matter. Twenty has no billing model. The billing method migrates as a custom pick-list field (Billing_Method__c) on the Opportunity, and the hourly rate maps to a custom currency field (Hourly_Rate__c) if populated.

CosmoLex

Trust Account Balance

maps to

Twenty CRM

Custom field on Company / People

1:1
Fully supported

CosmoLex trust account balances and operating balances are financial data with no CRM equivalent. The current balance migrates as a custom currency field (Trust_Balance__c) on the relevant Company or People record. Trust sub-account breakdown is preserved in a custom text field.

CosmoLex

Matter Custom Fields

maps to

Twenty CRM

Custom fields on Opportunity

1:1
Fully supported

CosmoLex custom properties on matters migrate to Twenty custom fields on the Opportunity object. Each custom field is evaluated for field-type parity: pick-list values map value-by-value, text fields map directly, date fields map to Twenty date fields. Fields with no match become text fields with original values preserved.

CosmoLex

Note / Document

maps to

Twenty CRM

Note

1:1
Fully supported

CosmoLex matter notes and document links map to Twenty Notes on the related Opportunity record. Document file attachments are downloaded from CosmoLex's document storage and re-uploaded to Twenty Files, linked to the corresponding Opportunity or People record. The original note body content transfers directly, preserving internal communications, case annotations, and reference materials associated with each matter.

CosmoLex

Unbilled Invoice / AR

maps to

Twenty CRM

Custom field on Opportunity / Line item

1:1
Fully supported

CosmoLex outstanding invoice balances and unbilled time have no native CRM equivalent in Twenty. Outstanding AR amounts migrate as a custom currency field (Outstanding_AR__c) on the Opportunity. Invoice line-item detail is preserved in a custom long-text field for reference only.

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.

CosmoLex logo

CosmoLex gotchas

High

Financial migration is balances-forward only, not historical

High

Two-phase migration sequencing is mandatory

Medium

Hard costs must be imported as soft costs

Medium

No public API for automated bulk export

Medium

Chart of Accounts is user-setup after import, not migrated

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

  • CosmoLex has no public API — extraction requires a custom pipeline

    CosmoLex does not expose a REST or GraphQL API to customers. Data extraction relies on the platform's built-in CSV export (non-financial data) and the financial-data export templates provided by CosmoLex support. For some setups, direct database queries against the CosmoLex cloud instance are possible but require explicit coordination with CosmoLex support. This means FlitStack builds a per-firm export pipeline rather than using a generic API connector. Firms that need to migrate mid-year should coordinate with CosmoLex support to obtain a fresh export before the contract end date — exports are only reliable when the source data is stable and not mid-reconciliation.

  • CosmoLex matter → Twenty Opportunity mapping collapses a two-object hierarchy

    CosmoLex separates clients from matters — each matter links to exactly one client. Twenty maps matters to Opportunities but uses a Company/People hierarchy for the client side. If a CosmoLex matter spans multiple clients (rare but possible in multi-party litigation or corporate transactions), the mapping must decide which client becomes the primary Company and whether the others are stored as Company relationships or custom fields. FlitStack surfaces this as a pre-migration decision: firms specify a primary-client rule (first-modified, billing responsible, or alphabetically first) and any additional parties are added as a custom text field on the Opportunity.

  • CosmoLex billing and trust-accounting data has no native CRM home in Twenty

    CosmoLex is built around integrated billing — invoices, trust ledger entries, and AR balances are first-class data. Twenty is a CRM with no billing or accounting model. Trust account balances, outstanding AR, and invoice history cannot map to Twenty standard objects; they migrate as custom fields on the relevant Company or Opportunity record. The underlying billing workflows, invoice templates, and trust-accounting rules cannot migrate and must be handled by CosmoLex or a dedicated accounting tool post-migration. FlitStack exports the financial data as structured records so it can be imported into a new accounting system.

  • Twenty's CSV import sequence requires Companies before People before Opportunities

    Twenty enforces referential integrity during CSV import: Company records must exist before People records can reference them via companyId, and both must exist before Opportunities can reference both via companyId and personId. CosmoLex exports clients and matters as separate files with no internal cross-reference resolution. FlitStack pre-processes the exported CSVs to resolve foreign keys (client_id on matter records becomes companyId; matter_id on time entries becomes Opportunity ID) before sequencing the import. Firms with circular or multi-client matter references must resolve these before migration — FlitStack flags all unresolved relations in the pre-flight report.

  • Twenty Pro plan limits workflow capabilities to 50 workflow credits per year

    Twenty's Pro plan ($9/user/month) includes workflow automation but caps workflow credits at 50/year. Organization plan ($19/user/month) removes this cap. CosmoLex firms with active matter-automation logic (e.g., automatic status changes on billing events, deadline alerts) should evaluate whether their workflow volume fits the Pro plan cap before committing to a plan tier. FlitStack exports all CosmoLex workflow definitions as a structured reference document so the firm's Twenty admin can rebuild exactly what they need and evaluate plan-tier fit before purchasing.

Migration approach

Six steps for a successful CosmoLex to Twenty CRM data migration

  1. Extract CosmoLex data via structured CSV and direct database queries

    FlitStack initiates the migration by obtaining fresh exports from CosmoLex using the platform's built-in CSV export (non-financial data: clients, matters, time entries, notes) and the financial-data migration templates. For supported setups, direct database queries supplement the export to capture custom fields and relationship metadata not exposed in the standard CSV layout. All data is extracted read-only — CosmoLex remains fully operational during extraction. FlitStack validates record counts and field completeness against the export metadata before proceeding.

  2. Set up Twenty workspace schema: custom fields, objects, and user accounts

    Before any data lands in Twenty, FlitStack creates the custom fields identified in the mapping plan: Matter_Number__c, Matter_Status__c, Billing_Method__c, Hourly_Rate__c, Trust_Balance__c, Outstanding_AR__c, Task_Hours__c, Billable__c, and Source_System_ID__c on the relevant objects. Workspace members are invited and verified so owner resolution can match CosmoLex Timekeeper and Matter Owner emails to Twenty user accounts during the data load. This also includes configuring any custom objects required for legal-specific data that does not fit standard Twenty objects.

  3. Pre-process and sequence the import: Companies, then People, then Opportunities, then Tasks

    FlitStack resolves all foreign keys during pre-processing: CosmoLex client_id on matter records becomes companyId pointing to the Twenty Company; matter_id on time entries becomes taskableId pointing to the migrated Opportunity. Multi-client matters and circular references are flagged and resolved per the firm's specified primary-client rule. The import is sequenced in Twenty's required order: Companies first, then People (with resolved companyId), then Opportunities (with resolved companyId and personId), then Tasks (with resolved taskableId). Custom objects and relationship records import last.

  4. Run a sample migration and generate a field-level diff

    A representative slice — typically 200–500 records spanning clients, organizations, matters, and time entries — migrates first. FlitStack generates a field-level diff comparing source values against destination field values so the firm's administrator can verify matter-status mapping, billing-method mapping, responsible-attorney resolution, and time-entry linkage before the full run commits. Any field mapping errors are corrected in the pre-processing layer before the full migration is triggered.

  5. Execute full migration with delta-pickup and one-click rollback

    The full dataset migrates into Twenty with a delta-pickup window of 24–48 hours following the cutover trigger. Any CosmoLex records modified or created during the migration window are captured and applied. FlitStack produces an audit log of every record operation (create, update, link). If reconciliation reveals data integrity issues, one-click rollback reverts the Twenty workspace to its pre-migration state so the team can re-run after correcting the mapping. CosmoLex is not modified at any point during the process.

Platform deep dives

Context on both ends of the pair

CosmoLex logo

CosmoLex

Source

Strengths

  • Integrated billing, accounting, and trust accounting in a single login removes the need for QuickBooks or separate trust software.
  • Includes free data migration assistance, unlimited support, and unlimited data storage on all plans.
  • Hourly, fixed fee, and contingency billing methods are natively supported within the same billing engine.
  • Complies with IOLTA trust accounting requirements out of the box, reducing compliance risk for small firms.
  • 24/7 cloud access across devices with no desktop installation required.

Weaknesses

  • No publicly documented REST API limits third-party integrations and automated migration tooling for bulk exports.
  • Performance issues including freezing and slowness are cited in reviews, particularly during high-volume billing periods.
  • Financial migration is balances-forward only — historical business transaction history is not ported and must be retained in the old system.
  • Chart of Accounts customization and trial balance setup are explicitly outside the scope of CosmoLex's own migration service, requiring user-side setup.
  • Limited automation compared to newer legal tech platforms, which frustrates firms seeking workflow-driven efficiency.
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 CosmoLex 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

    CosmoLex: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CosmoLex-to-Twenty migrations complete in 48–72 hours of clock time for firms with fewer than 10,000 client and matter records and clean CSV exports. Firms with 10,000–100,000 records, complex matter hierarchies, or large time-entry histories extend to 7–14 days. The longest planning step is building the custom export pipeline from CosmoLex since no public API is available — FlitStack handles that engineering as part of the scoping phase.

Adjacent paths

Related migrations to explore

Ready when you are

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