CRM migration

Migrate from RunSensible to Twenty CRM

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

RunSensible logo

RunSensible

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

14 of 14

objects map 1:1 between RunSensible and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

RunSensible is a legal practice management platform built for law firms — it combines client management, case/matter handling, time tracking, IOLTA trust accounting, and document automation in one tool. Twenty CRM is a general-purpose open-source CRM built on TypeScript and PostgreSQL with People, Companies, Opportunities, Notes, and Tasks as its core objects. The migration is fundamentally a specialization-to-generic-CRM transition: your law-firm-specific constructs (matters, statutes of limitations, trust accounts, court rules) have no direct Twenty equivalents and must be evaluated for manual rebuild or custom-field preservation. We map RunSensible clients to Twenty People (with company linkage via the Companies object), matters to Twenty Opportunities (using the stage field to represent matter status), contacts and relationships to people records, and time entries to Notes or Tasks with original timestamps. RunSensible custom fields on clients and matters surface as Twenty custom fields on People and Opportunities respectively. The legal-specific data — IOLTA trust balances, court rules, statute of limitations dates, and automated workflow sequences — does not migrate and must be rebuilt manually in Twenty's workflow builder or noted for your admin. Our migration mechanism uses RunSensible's API export to pull records in structured JSON, transforms the payload against a migration manifest, and loads into Twenty via their GraphQL API (Pro tier: 100 req/min, Organization tier: 200 req/min). A 24–48 hour delta-pickup window captures any client or matter changes made 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

RunSensible logo

RunSensible

What's pushing teams away

  • Support response times frustrate firms with urgent billing or compliance questions, particularly during month-end invoice runs
  • The mid-tier plans limit API access and custom reporting, pushing growing firms toward enterprise pricing or alternative platforms
  • Users report that the calendar and scheduling features lack the granular conflict checking needed for multi-attorney practice management
  • Firms with complex multi-state compliance needs find RunSensible's court rules integration limited to specific jurisdictions rather than comprehensive
  • Some firms outgrow the platform when they require advanced analytics or custom integrations not available without a dedicated implementation

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

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

RunSensible

Client

maps to

Twenty CRM

Person

1:1
Fully supported

RunSensible clients map directly to Twenty People. The primary contact name, email, phone, and address fields migrate as-is. A company linkage is created in Twenty's Companies object if the RunSensible client record contains an organization name, preserving the client-to-organization relationship.

RunSensible

Client Organization

maps to

Twenty CRM

Company

1:1
Fully supported

When RunSensible clients represent law firms or corporate legal departments, their organization name, domain, industry classification, and employee count migrate to Twenty's Companies object. This enables the people-within-companies data model Twenty uses for B2B relationship tracking, preserving firm-level details while adapting to Twenty's standardized company object structure.

RunSensible

Matter

maps to

Twenty CRM

Opportunity

1:1
Fully supported

RunSensible matters (cases) map to Twenty Opportunities using the matter name as the opportunity name, the matter's status or practice area as the opportunity stage, and the matter's case number as a custom field. Matter-type distinctions (litigation, corporate, real estate) require a custom opportunity stage setup in Twenty to preserve this classification.

RunSensible

Matter Status

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

RunSensible matter statuses (Active, Pending, Closed, Archived) map to Twenty opportunity stages. Each status value requires explicit value-by-value mapping to the stage names your Twenty workspace uses. Active matters become open pipeline stages; closed matters become won or lost based on outcome in RunSensible.

RunSensible

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

RunSensible contact records for opposing counsel, partners, and third parties migrate as Twenty People. They link to the primary client Person record via Twenty's relation field. Email, phone, and role fields migrate as custom fields or standard fields where field names align.

RunSensible

Time Entry

maps to

Twenty CRM

Note / Task

1:1
Fully supported

RunSensible time entries (billable hours linked to matters) migrate as Twenty Notes with original timestamps, attorney name, and duration preserved. The note body contains the time entry description and hours logged. This preserves historical billing context without requiring a dedicated billing module in Twenty.

RunSensible

Document

maps to

Twenty CRM

Note

1:1
Fully supported

RunSensible documents attached to clients and matters migrate as Twenty Notes with a reference to the original file. We download the files from RunSensible's storage and re-upload them to Twenty's file storage, attaching each document to the corresponding Person or Opportunity record for complete file preservation and accessibility.

RunSensible

IOLTA Trust Account

maps to

Twenty CRM

No equivalent

1:1
Fully supported

RunSensible's three-way reconciliation IOLTA trust accounting has no Twenty CRM equivalent. Trust balances, client trust records, and reconciliation history cannot migrate. We export the trust account data as a CSV reference file for your new accounting platform (Clio Manage, CosmoLex).

RunSensible

Statute of Limitations

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

RunSensible statute of limitations dates on matters migrate to a custom date field (SOL_Date__c) on the corresponding Twenty Opportunity record. This preserves the critical legal deadline information and ensures your team can track filing windows without relying on a native legal construct in Twenty's standard Opportunity object.

RunSensible

Custom Field (Client)

maps to

Twenty CRM

Custom field on Person

1:1
Fully supported

RunSensible custom fields on client records — such as referral source, bar number, or billing arrangement — migrate to Twenty custom fields on the Person object. Field type mapping handles text, number, date, and pick-list types individually, ensuring data integrity and proper field formatting during the migration.

RunSensible

Custom Field (Matter)

maps to

Twenty CRM

Custom field on Opportunity

1:1
Fully supported

RunSensible custom fields on matter records — court division, assigned judge, practice area — migrate to Twenty custom fields on the Opportunity object. Multi-select pick-list values in RunSensible map to Twenty multi-select fields with the same value options, preserving all categorization and metadata across platforms.

RunSensible

Workflow / Automation

maps to

Twenty CRM

No equivalent

1:1
Fully supported

RunSensible sequences, triggers, and email automations do not migrate. These must be rebuilt in Twenty's workflow builder (limited on Pro tier, full on Organization). We export the RunSensible workflow definitions as a JSON reference file for your Twenty admin to use as a rebuild guide.

RunSensible

Billing / Invoice

maps to

Twenty CRM

No equivalent

1:1
Fully supported

RunSensible's native invoicing and trust accounting module has no Twenty CRM equivalent. Invoices, payments, and disbursement records cannot migrate automatically into Twenty. We export the full billing history as a CSV reference file and recommend connecting a dedicated legal accounting platform post-migration for complete financial record preservation.

RunSensible

Calendar / Scheduling

maps to

Twenty CRM

Task / Note

1:1
Fully supported

RunSensible calendar events and court date reminders migrate as Twenty Tasks with the original date, time, and description preserved. Court appearance dates and filing deadlines that were scheduled in RunSensible become Tasks with due dates attached to the corresponding Opportunity, maintaining all scheduling context in the new CRM.

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.

RunSensible logo

RunSensible gotchas

High

Trust account balance migration requires three-way reconciliation

High

Invoice-to-matter linkage is required for billable entries

Medium

API access is tier-gated and not available on Essential plan

Medium

AI Forms and Execute modules are separate paid add-ons

Low

Client intake forms use conditional logic not preserved in standard export

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

  • IOLTA trust accounting has no Twenty CRM equivalent — billing data cannot migrate

    RunSensible's three-way reconciliation IOLTA trust accounting module tracks client trust balances, operating account transfers, and reconciliation status. Twenty CRM has no accounting module whatsoever — trust balances, outstanding invoices, and disbursement records have no destination object to receive them. We export the full trust account history as a CSV reference file, but the financial records must be migrated separately into a dedicated legal accounting platform (Clio Manage, CosmoLex, or QuickBooks). Firms that rely heavily on RunSensible's billing module should plan for a parallel accounting migration separate from the CRM migration.

  • RunSensible's matter-to-Twenty-Opportunity stage mapping requires custom setup

    Twenty CRM's Opportunity object uses a single stage field for all opportunities, with stage values scoped per workspace. RunSensible matter statuses (Active, Pending, Archived, Closed) and practice-area distinctions (Litigation vs. Corporate vs. Real Estate) require you to pre-create Twenty opportunity stages that match your firm's legal workflow before data lands. We deliver a stage-mapping plan as part of the migration manifest so your Twenty admin can configure stages before the full run. If stages aren't pre-created, migrated matters land with blank stage values.

  • RunSensible's statute-of-limitations and court-date fields need custom fields in Twenty

    RunSensible natively tracks statute of limitations dates and court appearance dates directly on matter records without requiring custom field configuration. Twenty CRM's standard Opportunity object has no equivalent fields built in — these must be manually created as custom date fields (SOL_Date__c, Court_Appearance_Date__c) in your Twenty workspace before migration begins. We include custom field creation specifications in the migration plan, but the fields must exist in Twenty first. Failing to pre-create them means these legal-critical dates cannot be preserved during the migration run.

  • RunSensible API rate limits and export constraints affect migration volume

    RunSensible's Advanced and Elite tiers include API access, but export capabilities are tier-restricted. Large firms with hundreds of thousands of time entries may hit export size limits requiring multiple API pulls. Additionally, RunSensible does not expose the full audit history of matter status changes through its standard export — we can preserve the current matter status but not the complete status-transition timeline unless the data is available via the API.

  • Workflow automations and sequences do not migrate — manual rebuild required in Twenty

    RunSensible sequences (automated email drips, task triggers, deadline reminders) and workflow automations have no equivalent in Twenty's workflow builder that can receive a direct import. These must be rebuilt manually in Twenty's workflow builder — limited to 6 workflows on the Pro tier, full workflow capabilities on Organization and Enterprise tiers. We export the RunSensible workflow definitions as JSON so your admin has a rebuild reference, but the actual sequence logic requires manual configuration in Twenty's automation interface.

Migration approach

Six steps for a successful RunSensible to Twenty CRM data migration

  1. Audit RunSensible data export and plan Twenty workspace structure

    We connect to RunSensible's API using your Advanced or Elite tier credentials and pull a full export of all clients, matters, contacts, time entries, documents, and calendar events. We audit record counts, custom field definitions, and matter status values. Simultaneously, we assess your Twenty workspace — reviewing your stage configuration, existing custom fields, and user list. We deliver a migration manifest documenting the exact object mapping, field mapping, and value mappings before any data moves.

  2. Create custom fields in Twenty and resolve user mappings

    Before migration runs, your Twenty admin (or our team acting with workspace admin credentials) creates the custom fields identified in the migration manifest — SOL_Date__c, Practice_Area__c, Bar_Number__c, and any other RunSensible custom fields mapped to Twenty custom fields. We simultaneously resolve RunSensible assigned attorneys against Twenty Workspace Members by email match, flagging any unmatched users for manual assignment before migration commits records.

  3. Migrate Companies and People first, then Opportunities

    Following Twenty's import order requirement, we migrate Companies first (organization-level records from RunSensible client organizations), then People (clients and contacts linked to those companies), then Opportunities (matters mapped to opportunity stage values). Time entries and documents migrate as Notes attached to the corresponding Person or Opportunity. This sequence ensures foreign key relationships resolve correctly — a Person cannot link to a Company that hasn't been created yet.

  4. Run sample migration with field-level diff and validate

    We run a sample migration using 50–200 representative records spanning clients, matters, contacts, and time entries. We generate a field-level diff comparing source values against destination field values so you can verify that statute-of-limitations dates, practice-area classifications, and time entry timestamps arrived correctly in Twenty. You must approve the sample validation before we commit the full migration run against your production workspace.

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

    The full migration loads all RunSensible records into Twenty. A delta-pickup window of 24–48 hours captures any new clients, updated matters, or modified time entries created in RunSensible during the cutover. We deliver a post-migration audit log documenting record counts by object, any records that failed to migrate, and a reconciliation report comparing RunSensible totals against Twenty totals. One-click rollback is available if reconciliation reveals data integrity issues.

Platform deep dives

Context on both ends of the pair

RunSensible logo

RunSensible

Source

Strengths

  • Combines CRM, matter management, trust accounting, and client portal in one platform without requiring third-party integrations
  • AI-powered form library with 54,000+ court documents for U.S. and Canadian jurisdictions reduces manual drafting
  • IOLTA-compliant three-way reconciliation built into trust accounting satisfies bar association audit requirements
  • Competitive per-seat pricing starting at $39/user/month with transparent annual billing and a 60-day money-back guarantee
  • Workflow automation and email templates streamline client onboarding and reduce repetitive administrative tasks

Weaknesses

  • API access and custom reporting are gated behind higher pricing tiers, limiting data portability for mid-market firms
  • Calendar and scheduling conflict checking is basic, requiring manual oversight in multi-attorney practices
  • Court rules integration covers limited jurisdictions, creating gaps for firms operating across multiple states or provinces
  • Support response times during critical periods such as month-end billing receive mixed reviews from users
  • Enterprise pricing requires a custom quote with implementation costs of $10,000+, making total cost opaque until late in the sales cycle
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. 3 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 RunSensible and Twenty CRM.

  • Object compatibility

    B

    3 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

    RunSensible: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most RunSensible-to-Twenty migrations complete in 48–72 hours for setups under 25,000 records total. Larger firms with 25,000–200,000 records including extensive time-tracking history typically need 7–14 days for completion. The longest phase is planning the matter-to-opportunity stage mapping and pre-creating Twenty custom fields — that preparatory work runs in parallel with data extraction and doesn't add to the overall timeline.

Adjacent paths

Related migrations to explore

Ready when you are

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