CRM migration
Field-level mapping, validation, and rollback between RunSensible and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
RunSensible
Source
Twenty CRM
Destination
Compatibility
14 of 14
objects map 1:1 between RunSensible and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Twenty CRM
Person
1:1RunSensible 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
Twenty CRM
Company
1:1When 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
Twenty CRM
Opportunity
1:1RunSensible 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
Twenty CRM
Opportunity Stage
1:1RunSensible 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
Twenty CRM
Person
1:1RunSensible 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
Twenty CRM
Note / Task
1:1RunSensible 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
Twenty CRM
Note
1:1RunSensible 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
Twenty CRM
No equivalent
1:1RunSensible'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
Twenty CRM
Custom field on Opportunity
1:1RunSensible 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)
Twenty CRM
Custom field on Person
1:1RunSensible 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)
Twenty CRM
Custom field on Opportunity
1:1RunSensible 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
Twenty CRM
No equivalent
1:1RunSensible 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
Twenty CRM
No equivalent
1:1RunSensible'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
Twenty CRM
Task / Note
1:1RunSensible 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.
| RunSensible | Twenty CRM | Compatibility | |
|---|---|---|---|
| Client | Person1:1 | Fully supported | |
| Client Organization | Company1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Matter Status | Opportunity Stage1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Time Entry | Note / Task1:1 | Fully supported | |
| Document | Note1:1 | Fully supported | |
| IOLTA Trust Account | No equivalent1:1 | Fully supported | |
| Statute of Limitations | Custom field on Opportunity1:1 | Fully supported | |
| Custom Field (Client) | Custom field on Person1:1 | Fully supported | |
| Custom Field (Matter) | Custom field on Opportunity1:1 | Fully supported | |
| Workflow / Automation | No equivalent1:1 | Fully supported | |
| Billing / Invoice | No equivalent1:1 | Fully supported | |
| Calendar / Scheduling | Task / Note1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Trust account balance migration requires three-way reconciliation
Invoice-to-matter linkage is required for billable entries
API access is tier-gated and not available on Essential plan
AI Forms and Execute modules are separate paid add-ons
Client intake forms use conditional logic not preserved in standard export
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
RunSensible
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across RunSensible and Twenty CRM.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
RunSensible: Not publicly documented.
Data volume sensitivity
RunSensible doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during RunSensible to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave RunSensible
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.