CRM migration

Migrate from MerusCase to Twenty CRM

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

MerusCase logo

MerusCase

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between MerusCase and Twenty CRM.

Complexity

BStandard

Timeline

3–6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

MerusCase organizes law-firm data around cases, parties, and case-type-specific fields like UTBMS codes and statute references. Twenty CRM uses a generalized CRM model: People for contacts, Companies for organizations, Opportunities for deals, and Tasks or Notes for activities. FlitStack AI extracts MerusCase data via its REST API (contacts, activities, case ledgers, custom fields) and transforms it into Twenty's object structure — mapping party records to People with name fields split, firm records to Companies, case records to Opportunities or a custom Case object, and case activities to Tasks with original timestamps and assigned staff preserved. MerusCase workflows, automations, and statute-triggered reminders do not migrate; these must be rebuilt in Twenty's workflow builder. The migration runs against Twenty's CSV import API and bulk API, with a delta-pickup window capturing any in-flight records created or modified during the cutover window. The biggest migration risk is the object-model divergence: MerusCase's case-centric design has no direct equivalent in Twenty's standard CRM schema, so a custom object strategy and careful field mapping are required before data lands.

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

MerusCase logo

MerusCase

What's pushing teams away

  • Annual subscription required — payments must be made annually in advance unless a separate Order Form is negotiated.
  • Per-case Document Archive is the primary data export path; there is no one-click full firm data dump, making migrations out manual and time-consuming.
  • Credit card payments incur a 3% transaction fee plus variable network fees deducted monthly, adding cost for high-volume billing firms.
  • Third-party migrations (moving away from MerusCase) are not supported by MerusCase's own migration team — the firm must handle or hire independently.
  • Built-in CSV import tools are documented as not easy to use, pushing firms toward paid white-glove onboarding for any data loading.

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

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

MerusCase

Party

maps to

Twenty CRM

People

1:1
Fully supported

MerusCase Party records map directly to Twenty People. Each Party has first name, last name, email, phone, and firm association. We split full-name Party records into FirstName and LastName fields on Twenty People. Parties without an email receive a placeholder identifier for import validation. Primary firm association maps to the companyId relation on the People record.

MerusCase

Firm / Company

maps to

Twenty CRM

Companies

1:1
Fully supported

MerusCase stores the law firm itself as the primary organization — this maps to Twenty Companies. Domain, address fields, industry (Legal Services), and employee count migrate as Company fields. Multi-party associations to the same firm collapse to one Company record with multiple People linked via companyId.

MerusCase

Case

maps to

Twenty CRM

Custom Object: Case

1:1
Fully supported

MerusCase Case records have no standard equivalent in Twenty CRM. We create a custom Case object in Twenty (or map to Opportunities with a case-type field) to preserve case number, case status, jurisdiction, assigned staff, and case-type. Case records must exist before importing related Activities and Party-Case associations.

MerusCase

CaseType

maps to

Twenty CRM

Custom Field: Case.CaseType

1:1
Fully supported

MerusCase CaseType (personal injury, workers' comp, criminal, family law) determines which specialty tabs and fields appear. We map CaseType as a select field on the custom Case object. Each case type value creates a corresponding option in Twenty's field configuration before import.

MerusCase

CaseLedger (time entries)

maps to

Twenty CRM

Custom Object: CaseLedger

1:1
Fully supported

MerusCase CaseLedger stores billable time with task codes (UTBMS L-Codes) and expense codes (E-Codes). Twenty has no native ledger — we create a CaseLedger custom object with fields for hours, rate, amount, task_code, expense_code, and a relation to the Case object. Bill-to contact resolves to a People record.

MerusCase

Activity (calls, emails, filings)

maps to

Twenty CRM

Task

1:1
Fully supported

MerusCase Activity records (with activity_type, description, date, contact_id, staff_id) map to Twenty Tasks. Activity type determines Task status and type field. Original activity date and assigned staff map to dueDate and assigneeId respectively. Filing-related activities preserve the activity_type value in a custom field.

MerusCase

Statute (deadline/filing triggers)

maps to

Twenty CRM

Custom Field: Case.StatuteDate

1:1
Fully supported

MerusCase Statute records auto-generate calendar entries and filing reminders. Statute dates migrate as a date field on the custom Case object. Statute-triggered workflow reminders must be rebuilt in Twenty's workflow builder — we export the statute configuration as a reference document for your Twenty admin.

MerusCase

Document (file attachments)

maps to

Twenty CRM

Note (with file attachment)

1:1
Fully supported

MerusCase Document Archive (per case) includes case documents and a CSV of case activities. We download document files and re-upload them as Note attachments linked to the corresponding Case record in Twenty. File size limits apply — documents over Twenty's attachment size cap are noted for manual retrieval.

MerusCase

Custom Field (firm-wide)

maps to

Twenty CRM

Custom Field (on relevant object)

1:1
Fully supported

MerusCase supports up to 50 firm-wide custom fields (Date, Currency, Text, Numeric, Yes/No). We map each to a Twenty custom field with matching type on the relevant object (Case, People, or Companies). Text fields capped at 250 characters map to Twenty Text fields without truncation.

MerusCase

Staff / User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

MerusCase staff records (name, email, role) map to Twenty WorkspaceMembers. Owner resolution uses email match — each MerusCase staff_id on activities and cases resolves to the corresponding WorkspaceMember by email. Unmatched staff are flagged before migration for manual user provisioning.

MerusCase

Workflow (automated task triggers)

maps to

Twenty CRM

Workflow (in Twenty)

1:1
Fully supported

MerusCase Workflows trigger on Activity Tags or descriptions (e.g., statute filing reminders). Twenty's workflow builder handles automation differently — event-based triggers, field-update actions, and task creation. We export MerusCase workflow definitions as a reference JSON so your Twenty admin can rebuild them. This is not a data migration; it is a configuration-rebuild task.

MerusCase

MerusPay billing configuration

maps to

Twenty CRM

No equivalent

1:1
Fully supported

MerusCase's MerusPay (3% credit card transaction fee, 1.3% eCheck) is a payment-processing configuration with no Twenty CRM equivalent. Payment processing must be handled by an external payment tool integrated via Twenty's API or webhook system. We preserve the MerusPay fee structure as a reference note.

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.

MerusCase logo

MerusCase gotchas

High

Annual subscription and data access tied together

High

Outbound migration is not supported by MerusCase

High

Document Archive exports are per-case, not bulk

Medium

Built-in CSV import tools are not easy to use

Medium

Custom Fields apply to Cases only and have a 50-field cap

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

  • Case-centric data model requires custom object strategy before import

    MerusCase organizes all data around the Case record — contacts, activities, documents, and billing all link to a case. Twenty CRM has no standard Case object; cases are typically tracked as Opportunities or custom objects. Before any data lands, your Twenty admin (or our team) must create a Case custom object with all case-type-specific fields (jurisdiction, statute dates, case type select, damages). If the Case custom object does not exist before import, all case-linked records will fail to map their foreign keys. We deliver a Case-object schema plan based on your MerusCase case types before the migration runs.

  • MerusCase workflows do not transfer — statute-triggered automations need full rebuild

    MerusCase Workflows trigger on Activity Tags or descriptions to auto-generate calendar entries, filing reminders, and statute-set tasks. Twenty's workflow builder operates on event-based triggers (record creation, field change, date condition) and does not natively understand MerusCase's statute-triggered logic. Statute-of-limitations reminders that worked in MerusCase's automation model will not replicate in Twenty without manual rebuild. We export your MerusCase workflow definitions as a structured reference JSON so your Twenty admin can configure equivalent automations. Budget 1–2 weeks of admin time for this rebuild.

  • Import sequence order is mandatory — Companies before People before Cases

    Twenty's CSV import requires referential integrity: Companies must exist before People (via companyId), and Cases must exist before Activities (via caseId). MerusCase exports each object type separately, so the import sequence must match Twenty's dependency order. MerusCase case-ledger records additionally require People and Cases to exist first (for billto_contact and case references). We sequence the migration as: (1) Companies, (2) People, (3) Cases, (4) CaseLedger, (5) Activities, (6) Documents. Skipping this order causes foreign-key validation failures in Twenty's import UI.

  • Document Archive export is per-case — bulk document migration requires scripted download

    MerusCase's Document Archive exports documents on a per-case basis (zipped documents plus a CSV of case activities). There is no single bulk export of all firm documents. For firms with hundreds of cases, downloading each Document Archive individually is impractical. We use MerusCase's API to enumerate all case document URLs and script a bulk download, then re-upload files as Note attachments on the corresponding Case records in Twenty. Large documents exceeding Twenty's attachment size limit are flagged for manual retrieval post-migration.

  • MerusCase UTBMS codes have no native mapping in Twenty — billing reports require custom fields

    MerusCase CaseLedger uses UTBMS task codes (L-Codes) and expense codes (E-Codes) for legal billing classification. Twenty has no native understanding of UTBMS taxonomy — these codes migrate as plain-text custom fields on the CaseLedger custom object. Your firm's standard billing reports that referenced UTBMS codes in MerusCase will need to be rebuilt as custom Twenty reports or exported to a BI tool. We preserve the full UTBMS code list from MerusCase as a reference import so the codes are available for report configuration.

Migration approach

Six steps for a successful MerusCase to Twenty CRM data migration

  1. Audit MerusCase data volume and case-type schema

    FlitStack AI connects to your MerusCase account via API read access and enumerates all record types: Party counts, Case counts by type, Activity volumes per case, and Custom Field usage. We identify which MerusCase case types map to which Twenty object structures and deliver a pre-migration data audit report. This step identifies duplicate Party records (same person across multiple cases), orphaned Activities with no case link, and custom fields that exceed Twenty's text-length constraints.

  2. Design Twenty CRM schema: Case custom object and custom fields

    Before any data moves, your Twenty admin (guided by FlitStack's schema plan) creates the Case custom object, adds all case-type-specific fields (CaseType__c select, Jurisdiction__c, StatuteDate__c, SettlementAmount__c, etc.), and configures UTBMS fields on the CaseLedger custom object. We deliver a step-by-step schema setup checklist based on your MerusCase custom field count and case type inventory. All custom fields must exist in Twenty before the import step runs.

  3. Provision Twenty users and resolve owner assignments by email

    FlitStack AI matches MerusCase staff records to Twenty WorkspaceMembers by email address. All MerusCase staff who appear as activity owners or case assignees must have a corresponding Twenty user account before the migration. We flag any MerusCase staff without a matching Twenty account and provide a CSV of unmatched owner IDs so your admin can invite or create the corresponding users. No record lands in Twenty without a resolved assignee.

  4. Run a sample migration: Companies → People → Cases → CaseLedger → Activities

    FlitStack AI executes the migration in the correct dependency order: Companies first (as the one-side of the relationship), then People with companyId lookups resolved, then Cases linked to People, then CaseLedger records linked to Cases and People, then Activities linked to Cases and People. A representative slice of 200–500 records migrates first, generating a field-level diff report so you can verify case-type mapping, UTBMS code migration, and owner resolution before the full run commits.

  5. Full migration with delta-pickup and rollback verification

    The full dataset migrates against Twenty CRM. A delta-pickup window (24–48 hours after the main run) captures any records created or modified in MerusCase during the cutover period. FlitStack AI generates an audit log of every record migrated, the field mappings applied, and any records that failed validation. One-click rollback reverts the Twenty workspace to its pre-migration state if reconciliation reveals data integrity issues. After rollback verification, the migration is considered complete and MerusCase read access is revoked.

Platform deep dives

Context on both ends of the pair

MerusCase logo

MerusCase

Source

Strengths

  • Fully HIPAA-compliant cloud platform with bank-grade encryption across all stored firm data.
  • Integrated billing ledger with UTBMS task, activity, and expense code support out of the box.
  • Document automation, batch scanning, and EAMS integration built into the core platform.
  • Dedicated migration coordinator assigned to each firm transitioning from another system.
  • Monthly product updates with new features and refinements across case types.

Weaknesses

  • Annual subscription model requires prepayment; no month-to-month flexibility for smaller firms.
  • Primary data export is per-case Document Archive — no single full-firm export without contacting support and paying a manual processing fee.
  • MerusCase's own migration team only supports inbound migrations, not outbound.
  • Built-in CSV import tools are explicitly documented as not easy to use, requiring white-glove service for most data loading tasks.
  • Workflows and Statutes cannot be exported or migrated programmatically — they are platform-native and must be rebuilt from scratch.
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. 2 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 MerusCase and Twenty CRM.

  • Object compatibility

    B

    2 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

    MerusCase: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most MerusCase-to-Twenty migrations complete in 3–6 weeks of project time for firms with under 25,000 records and fewer than 30 custom fields. The longest phase is schema design — building the Case custom object with all case-type-specific fields in Twenty before import can begin. Firms with 25,000+ records, multiple case types, or heavy case-ledger volume extend to 6–10 weeks. The actual data movement (API extraction and CSV import) runs within 48–72 hours of clock time.

Adjacent paths

Related migrations to explore

Ready when you are

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