CRM migration

Migrate from CASEpeer to Twenty CRM

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

CASEpeer logo

CASEpeer

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between CASEpeer and Twenty CRM.

Complexity

BStandard

Timeline

72–96 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CASEpeer is a cloud-based case management system built exclusively for personal injury plaintiffs' attorneys — it combines CRM contact management with practice management features like medical records ordering, statute-of-limitations tracking, case status workflows, and integrated billing. Data lives in CASEpeer objects for Clients, Cases, Contacts, Companies, Calendar Events, Tasks, and Notes, plus custom fields scoped per case type. Moving to Twenty CRM means re-mapping that domain-specific schema onto a horizontal CRM that models People, Companies, Opportunities, Notes, and Tasks, with custom objects available on paid tiers. We extract CASEpeer data via their managed data transfer team using a custom CSV export, then transform and load records into Twenty through its REST and GraphQL batch API or CSV import UI, respecting Twenty's import-order constraint (Companies → People → Opportunities → Custom objects). Workflows, automations, and calendar-rule configurations do not migrate — FlitStack provides an export of CASEpeer workflow definitions as a rebuild reference for Twenty's workflow builder. Integration connections (LawPay, CalendarRules, Dropbox) must be re-established in Twenty individually.

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

CASEpeer logo

CASEpeer

What's pushing teams away

  • Dropbox integration breaks persist without resolution — at least one firm reported a custom folder creation bug lasting five months with no fix, blocking document access for newer client files and forcing workarounds.
  • Texting limitations frustrate communication-heavy workflows — users report lack of mass texting capability, no attachment support in messages, and cluttered in-app notifications that require external tools to replace.
  • Missing features force reliance on external software — essential tasks such as certain document workflows, client intake, and reporting require external actions or third-party integrations that CASEpeer does not natively cover.
  • Document management inconsistencies — folder structures and document naming conventions do not always behave predictably, with one reviewer noting lawyers cannot refer to files that should exist in CASEpeer-hosted folders.
  • Reporting is tier-gated — the Data Sync feature (S3 + Athena + BI tool connectivity) is restricted to the Advanced tier, leaving Basic and Pro users without a native path to operational analytics.

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

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

CASEpeer

Client

maps to

Twenty CRM

Person

1:1
Fully supported

CASEpeer Clients map directly to Twenty People records. The Client's full name splits into Twenty's firstName and lastName fields. Email, phone, address, and job title map directly. The primary Company link in CASEpeer becomes the companyId relation in Twenty. Multi-party clients (multiple plaintiffs on one case) require custom Person records or a custom CoPlaintiff object.

CASEpeer

Contact (firm staff)

maps to

Twenty CRM

Person (Workspace Member)

1:1
Fully supported

Attorney, paralegal, and staff records in CASEpeer map to Twenty People. FlitStack resolves each CASEpeer contact by email address against Twenty's workspace users. Unmatched contacts migrate as non-user Person records. CASEpeer user-role distinctions (Attorney vs. Paralegal vs. Admin) are preserved as a custom role pick-list field.

CASEpeer

Insurance Carrier / Opposing Party

maps to

Twenty CRM

Company

1:1
Fully supported

CASEpeer stores opposing insurance carriers and employer entities as Contacts linked to Cases. These map to Twenty Companies records with the company name, address, and type preserved. Carrier-specific fields (policy number, policy limits) migrate as custom text fields on the Company record for reference.

CASEpeer

Case

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Each CASEpeer Case becomes a Twenty Opportunity. The CASEpeer case status (Intake, Under Investigation, Filed Litigation, Settlement, Closed) maps to a Twenty Opportunity stage set created specifically for PI case tracking. Stage transition timestamps are preserved as custom datetime fields. The Opportunity is linked to the primary Plaintiff (Person) and the primary Insurance Carrier (Company).

CASEpeer

Case Type (MVA, SLF, MM)

maps to

Twenty CRM

Opportunity Stage or Custom Field

1:1
Fully supported

CASEpeer case types are stored as pick-list values on each Case. These map to Twenty as a custom pick-list field (Case_Type__c) on the Opportunity. The case type label is preserved exactly. If multiple case types drive different workflow triggers in CASEpeer, those are documented for rebuild in Twenty's workflow builder.

CASEpeer

Medical Provider (linked to Case)

maps to

Twenty CRM

Company

1:1
Fully supported

Medical providers stored as CASEpeer Contacts on a Case map to Twenty Companies with a Provider_Type__c custom field set to 'Medical'. The provider's name, address, and specialty are preserved. The link between the Case (Opportunity) and the Provider (Company) is maintained using Twenty's Opportunity-Company relation.

CASEpeer

Case Note / Attorney Note

maps to

Twenty CRM

Note

1:1
Fully supported

CASEpeer case notes and attorney notes map to Twenty Notes attached to the relevant Opportunity (Case) or Person (Client). Original author, create date, and note body are preserved. Rich-text formatting is rendered as plain text in Twenty's Note body field.

CASEpeer

Task / Court Deadline

maps to

Twenty CRM

Task

1:1
Fully supported

CASEpeer tasks and court deadlines map to Twenty Tasks linked to the corresponding Opportunity (Case). Due dates, assignees, and task status are preserved. CASEpeer's CalendarRules-driven court deadline entries are exported as Tasks with the deadline date and assigned attorney. All task metadata including priority levels and related party information transfers as custom fields to maintain complete audit trails in Twenty.

CASEpeer

Custom Intake Field (Advanced tier)

maps to

Twenty CRM

Custom Field on Person or Opportunity

1:1
Fully supported

CASEpeer Advanced tier custom intake fields (e.g., injury description, police report number, wage loss details) migrate as custom fields in Twenty. Fields are created via the Twenty metadata API or Settings UI before the migration run. Field type is inferred from the CASEpeer field definition (text, number, date, select, multi-select).

CASEpeer

Document / File Attachment

maps to

Twenty CRM

Not migrated

1:1
Fully supported

CASEpeer files stored in Dropbox folders linked to cases do not migrate via data export. We document every linked file URL and its parent Case record as a reference file for manual re-upload. Dropbox folder structure is preserved as a list of URLs mapped to case identifiers for the firm's admin to re-link.

CASEpeer

CASEpeer Workflow / Automation

maps to

Twenty CRM

No equivalent — rebuild required

1:1
Fully supported

CASEpeer automations (case status change triggers, intake routing rules, deadline reminders) have no exportable definition. FlitStack exports a textual summary of each workflow's triggers and actions as a reference document. Twenty's workflow builder (Pro/Organization tier) is used to recreate these in the destination platform.

CASEpeer

CASEpeer Integration (LawPay, CalendarRules, Dropbox)

maps to

Twenty CRM

No equivalent — must be reconnected

1:1
Fully supported

CASEpeer's native integrations (LawPay for payments, CalendarRules for court deadlines, Dropbox for document storage) are proprietary connections that terminate when the CASEpeer account closes. These must be researched and re-connected in Twenty independently. FlitStack documents the active integrations as a re-connection checklist.

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.

CASEpeer logo

CASEpeer gotchas

High

Dropbox custom folder creation fails silently for extended periods

Medium

Custom fields unavailable on the Client Intake Form

Medium

Data Sync is a daily batch export, not a live data feed

Low

Mass texting and attachment-in-text unavailable across all tiers

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

  • CASEpeer has no public API — data extraction requires the managed data transfer team

    CASEpeer does not expose a REST or GraphQL API for self-service data export. Firms must engage CASEpeer's data implementation team to generate a custom CSV export matched to your destination schema. This introduces a review-and-approval cycle (Stages 1–4 in CASEpeer's data transfer process) that adds 5–10 business days to the project timeline before FlitStack receives a usable data file. We coordinate directly with CASEpeer's team on your behalf, but the export cadence is controlled by their schedule. Firms should initiate the CASEpeer data transfer request early to avoid blocking the migration start date.

  • Multi-party plaintiffs require a custom mapping strategy that Twenty's standard schema doesn't handle natively

    Personal injury cases frequently involve multiple plaintiffs (spouses, family members, multiple defendants) each represented as a separate CASEpeer Client record linked to one Case. Twenty CRM's People-to-Companies model enforces a single primary companyId per Person record, and the Opportunity (Case) object links to one primary Person. When migrating multi-plaintiff cases, we create separate Opportunity records for each plaintiff and preserve the case grouping via a custom Parent_Case_Reference__c field. The firm's attorneys need to decide whether to consolidate all plaintiffs into one Twenty Opportunity or maintain separate Opportunity records — this decision is made during the pre-migration schema planning session.

  • CASEpeer Advanced tier custom intake fields need a schema design session before migration

    CASEpeer Advanced tier's custom intake forms generate per-case-type field groups that are structured differently from standard CRM fields. A motor vehicle accident intake form might have 30 custom fields (impact details, vehicle information, injury specifics) while a medical malpractice form has an entirely different set. Twenty CRM supports unlimited custom fields, but each custom field must be created individually in Twenty's Settings before migration runs. The migration plan must include a schema design session that maps every CASEpeer custom intake field to a Twenty custom field, defines the field type (text, number, date, select), and identifies which Twenty object (Person or Opportunity) each field belongs to. Fields on the wrong object cause mapping failures at migration time.

  • Twenty's CSV import order constraint requires Companies before People before Opportunities

    Twenty's import system enforces referential integrity at load time: Companies must be created before People (since People link to a companyId), and People must be created before Opportunities (since Opportunities link to People as contacts). CASEpeer does not export data in this dependency order — its export follows CASEpeer object structure. FlitStack re-sequences the CASEpeer export into Three CSV batches: Companies first (insurance carriers, medical providers, employer entities), then People (clients, contacts), then Opportunities (cases linked to the migrated people and companies). Skipping or reordering these batches causes import failures because Twenty's UI will reject Person records with invalid companyId values and Opportunity records with non-existent Person links.

  • Workflows, automations, and CalendarRules-driven deadline tracking do not migrate

    CASEpeer automations — including case status change rules, SOL countdown alerts, intake form routing, and attorney task assignments — are stored in CASEpeer's proprietary automation engine and are not exportable as portable definition files. Twenty's workflow builder (available on Pro and Organization tiers) provides trigger-based automation but does not have a CASEpeer automation importer. FlitStack documents every CASEpeer automation as a textual specification describing the trigger condition, the rule logic, and the resulting action. The firm's admin uses this specification to rebuild automations in Twenty's workflow builder after go-live. Statute of limitations countdown reminders and court deadline CalendarRules integration must be rebuilt as Twenty Tasks with manual due dates or via a third-party calendar integration.

Migration approach

Six steps for a successful CASEpeer to Twenty CRM data migration

  1. Initiate CASEpeer data transfer request and coordinate export delivery

    FlitStack submits a managed data transfer request to CASEpeer's implementation team on your behalf. We provide CASEpeer with the destination schema (Twenty's People, Companies, Opportunities fields) so their team can match CASEpeer fields to target fields during the export. Your firm continues operating in CASEpeer during this stage — CASEpeer processes the export, sets up a temporary review account, and schedules a screen-share review meeting (CASEpeer Stage 2). We participate in the review call, verify record counts, and confirm field mapping completeness before approving the final export file.

  2. Design Twenty CRM schema for PI case management

    Before data lands, we design Twenty's schema based on the CASEpeer export. This includes creating the PI-specific Opportunity stage set (Intake → Under Investigation → Filed Litigation → Settlement → Closed), creating all custom fields (Case_Type__c, Statute_of_Limitations__c, Policy_Limits__c, Injury_Description__c, etc.), and establishing the Company records for insurance carriers and medical providers that People and Opportunities will link to. For firms on the CASEpeer Advanced tier, we map every custom intake field to a Twenty custom field with the correct type and object assignment.

  3. Re-sequence CASEpeer export into Twenty's import-order batches

    CASEpeer's export file does not follow Twenty's import-order dependency. FlitStack's ETL layer re-structures the export into three ordered CSV batches: (1) Companies — all insurance carriers, medical providers, and employer entities; (2) People — all clients, contacts, and staff with companyId links to batch 1 records; (3) Opportunities — all cases linked to the People and Companies created in batches 1 and 2. Multi-party plaintiff cases are handled with separate Opportunity records linked by a custom Parent_Case_Reference__c field. We run deduplication against any pre-existing Twenty records and flag duplicates before each batch is loaded.

  4. Run sample migration with field-level diff and attorney review

    A representative sample (typically 100–300 records spanning clients, cases, and activities) migrates into Twenty first. We generate a field-level diff comparing source values against destination field values for every mapped column. The firm's attorneys and case managers review the migrated records in Twenty — checking case status mapping, attorney assignments, SOL dates, and custom field completeness. We adjust field mappings and re-run the sample until the review team approves the data fidelity before committing to the full migration.

  5. Execute full migration with delta-pickup window and audit log

    The full CASEpeer export loads into Twenty across the three ordered batches. During the cutover window, CASEpeer remains fully operational — FlitStack uses scoped read access to capture any records created or modified between the initial export snapshot and go-live. A delta-pickup pass (typically 24–48 hours) applies those in-flight changes to Twenty so the destination reflects CASEpeer's final state at the moment of go-live. Every operation is logged in our audit trail, and one-click rollback is available if reconciliation reveals unexpected data divergences. We deliver a re-connection checklist for LawPay, CalendarRules, Dropbox, and any other integrations the firm needs to rebuild in Twenty.

Platform deep dives

Context on both ends of the pair

CASEpeer logo

CASEpeer

Source

Strengths

  • Purpose-built for personal injury — case stages, medical treatment tracking, and settlement workflows reflect deep domain knowledge.
  • Per-user monthly pricing is transparent and predictable across all three tiers.
  • Firm-assisted onboarding data transfer process reduces risk during initial setup.
  • Texting is native with permission controls and scheduling, reducing reliance on separate communication tools.
  • Legal-specific integrations with LawPay, CalendarRules, and Records On Time are available out of the box.

Weaknesses

  • Dropbox custom folder creation has a documented bug persisting months without resolution.
  • Text messaging lacks mass texting and attachment support, limiting communication workflow depth.
  • Custom fields are restricted to intake forms and cannot be added to the base Client Intake Form.
  • Document management is inconsistent, with folder and file behavior varying unpredictably.
  • Reporting and analytics require the top-tier Advanced plan and additional BI tooling.
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 CASEpeer 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

    CASEpeer: Not publicly documented — CASEpeer does not publish a general developer portal with limits. Partner integrations operate under contractually defined thresholds..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CASEpeer to Twenty migrations complete within 2–4 weeks of clock time after CASEpeer delivers the export file. The CASEpeer data transfer team's review-and-approval process (Stages 1–4 in their process) typically adds 5–10 business days before we receive the export, so the total project from initiation to go-live is usually 4–6 weeks. Firms with fewer than 5,000 total records and minimal custom fields can sometimes compress this to 1–2 weeks if CASEpeer expedites the data export. Large firms with 100,000+ records, multiple case types, and extensive Advanced-tier custom fields extend to 6–8 weeks.

Adjacent paths

Related migrations to explore

Ready when you are

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