CRM migration
Field-level mapping, validation, and rollback between RunSensible and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
RunSensible
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 13
objects map 1:1 between RunSensible and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
RunSensible consolidates CRM, case management, billing, and document storage for law firms in a single platform. Its data model centers on Client records, Matter records with statute-of-limitations tracking and court-rules integration, Time Entries with billable-hour capture, Trust Accounts with IOLTA three-way reconciliation, and Documents. Salesforce Sales Cloud uses a separate Account-Contact-Lead-Opportunity model with RecordTypeId for varying page layouts per business unit, custom __c fields, and Opportunities with stage pick-list values scoped by record type. We map RunSensible clients to Salesforce Contacts attached to Accounts, RunSensible matters to Salesforce Opportunities or Cases depending on whether the firm tracks matters as sales pipeline or service cases, time entries to Tasks with billable hours preserved, and billing records to Opportunities with line-item data. RunSensible's custom legal fields (statute of limitations, court rules, practice area) migrate as Salesforce custom fields. Workflows, automations, document templates, and billing rules do not migrate — those require Salesforce-native rebuild using Flow and Salesforce Billing or a connected ERP. Our migration uses the Salesforce Bulk API for large record volumes, with owner resolution by email match to Salesforce users before data lands.
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 Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
RunSensible
Client
Salesforce Sales Cloud
Contact + Account
1:1RunSensible clients contain both individual contact data and organizational information. We split into a Salesforce Contact record attached to an Account record — the primary contact lands on the Account with role assignments for matter associations. RunSensible client IDs are preserved as Source_System_ID__c for delta-run deduplication.
RunSensible
Matter
Salesforce Sales Cloud
Opportunity
1:1RunSensible matters map to Salesforce Opportunities when the firm uses a sales pipeline model for legal engagements. Matter name becomes Opportunity Name, matter status maps to Opportunity Stage via value mapping, and matter close date maps to CloseDate. Each matter requires a RecordType assignment based on practice area or matter type.
RunSensible
Matter
Salesforce Sales Cloud
Case
1:1For firms tracking matters as service cases rather than pipeline opportunities, RunSensible matters map to Salesforce Cases. Case Origin, Case Type, and custom matter-type fields are created in Salesforce. Statute-of-limitations dates migrate as Case custom fields with deadline reminders configured in Salesforce.
RunSensible
Time Entry
Salesforce Sales Cloud
Task
1:1RunSensible billable time entries are mapped to Salesforce Tasks with Type='Billable Time', preserving original duration, billable amount, and attorney owner. Administrative and non-billable time entries use Type='Admin Time'. Each Task is related to its parent Opportunity or Case via WhatId to maintain the matter association. Time entry records are processed in batch via Bulk API for performance.
RunSensible
Billing Record / Invoice
Salesforce Sales Cloud
Opportunity + Custom Invoice Object
many:1RunSensible invoices contain line-item detail and payment status. The invoice header merges into the Opportunity record (Amount, Stage updated to reflect paid/unpaid). Line-item detail migrates to a custom Invoice_Line_Item__c object linked by Opportunity__c lookup. Outstanding balance and payment terms are preserved as custom fields.
RunSensible
Trust Account / IOLTA
Salesforce Sales Cloud
Custom Trust_Account__c + Journal_Entry__c
1:1RunSensible's IOLTA trust accounts have no native Salesforce equivalent. We create a Trust_Account__c custom object with three-way reconciliation fields (client funds, operating account, IOLTA account), journal entry records linked as Trust_Journal_Entry__c, and a reconciliation status field. Salesforce Billing or Revenue Cloud handles future transactions post-migration.
RunSensible
Statute of Limitations
Salesforce Sales Cloud
Custom field on Case or Opportunity
1:1RunSensible tracks statute of limitations dates per matter. We create a Statute_of_Limitations__c custom date field on the Case object with a validation rule triggering a reminder workflow 30 days before the deadline. Firms using Opportunities for matters create the field there instead.
RunSensible
Court Rules / Jurisdiction
Salesforce Sales Cloud
Custom pick-list fields on Matter (Opportunity or Case)
1:1RunSensible court-rules data including filing deadlines, jurisdictional requirements, and court rules sets are migrated as jurisdiction-specific pick-list values on a Court_Rules_Jurisdiction__c custom field. Each RunSensible court-rules value is mapped to its Salesforce pick-list equivalent, with unmapped jurisdictions flagged in a separate review list for admin resolution before final migration.
RunSensible
Lead (RunSensible intake leads)
Salesforce Sales Cloud
Lead
1:1RunSensible intake form submissions transfer to Salesforce Leads using standard fields (Name, Email, Phone, Company) alongside custom fields capturing referral source, intake form identifier, and lead status. RunSensible lead source values are mapped to Salesforce LeadSource via a value-mapping table built during the discovery phase to preserve original attribution data.
RunSensible
Document / Attachment
Salesforce Sales Cloud
Salesforce Files
1:1RunSensible documents and attachments on matters or clients re-upload as Salesforce Files attached to the parent Contact, Account, Opportunity, or Case. File size limits (Salesforce default 25MB per file) apply; documents exceeding this are split or linked via external URL in a custom field. E-signature metadata is preserved in a custom field.
RunSensible
Calendar / Court Date
Salesforce Sales Cloud
Event
1:1RunSensible court dates and calendar events migrate as Salesforce Events with the original start and end times, subject (matter name + event type), and attorney owner preserved. Recurring events are mapped to Salesforce Series where the recurrence pattern is extractable; otherwise they become individual Events.
RunSensible
Custom Object: Practice Area
Salesforce Sales Cloud
Custom Object + pick-list on Matter
1:1Firms using RunSensible custom practice-area objects map those to a custom Practice_Area__c object linked to Matter records via lookup, or as a pick-list value on Practice_Area__c custom field on the Opportunity/Case. We create whichever model the firm's Salesforce admin specifies before migration.
RunSensible
Note
Salesforce Sales Cloud
Note
1:1RunSensible notes on matters or clients are migrated as Salesforce Notes (not the legacy Note object), with rich-text formatting preserved where RunSensible's export format permits. Notes attach to their parent record via WhatId for matters and Cases, or WhoId for Contacts and Leads, maintaining the original context and association within the firm's new Salesforce environment.
| RunSensible | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Client | Contact + Account1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Matter | Case1:1 | Fully supported | |
| Time Entry | Task1:1 | Fully supported | |
| Billing Record / Invoice | Opportunity + Custom Invoice Objectmany:1 | Fully supported | |
| Trust Account / IOLTA | Custom Trust_Account__c + Journal_Entry__c1:1 | Fully supported | |
| Statute of Limitations | Custom field on Case or Opportunity1:1 | Fully supported | |
| Court Rules / Jurisdiction | Custom pick-list fields on Matter (Opportunity or Case)1:1 | Fully supported | |
| Lead (RunSensible intake leads) | Lead1:1 | Fully supported | |
| Document / Attachment | Salesforce Files1:1 | Fully supported | |
| Calendar / Court Date | Event1:1 | Fully supported | |
| Custom Object: Practice Area | Custom Object + pick-list on Matter1:1 | Fully supported | |
| Note | 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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
RunSensible API discovery and schema audit
We connect to the RunSensible API using scoped read access to enumerate all objects — Clients, Matters, Time Entries, Billing Records, Trust Accounts, Documents, Calendar Events, and any custom objects. We produce a schema map showing every field, data type, and record count per object. This discovery run also identifies empty fields, pick-list values that have no mapping candidates, and records with missing required relationships (e.g., matters without an assigned client).
Salesforce custom field and RecordType provisioning
Before any data moves, we deliver a field creation checklist: every RunSensible custom property mapped to a Salesforce __c field with its type, pick-list values, and any validation rules needed. Firms also receive a RecordType mapping plan — each RunSensible matter type mapped to a Salesforce RecordType so Opportunity Stage pick-lists can be scoped correctly. The Salesforce admin creates these fields and RecordTypes in a sandbox first; we validate the schema matches the mapping plan before promoting to production.
Owner and user resolution by email
RunSensible attorney and staff users are resolved to Salesforce users by email match. Unmatched RunSensible owners are flagged with their record count so the firm can either invite them to Salesforce first or assign their records to a designated fallback owner. No Opportunity, Case, or Task lands in Salesforce without an OwnerId — this is validated before the migration run commits any records.
Sample migration with field-level diff
We run a representative slice — typically 200–500 records spanning clients, matters, time entries, billing records, and trust accounts — into the firm's Salesforce sandbox. We generate a field-level diff showing source value, mapped destination value, and any transformation applied. The firm's admin reviews the diff to verify matter-type RecordType assignments, statute-of-limitations date mapping, IOLTA trust-account structure, and billing status updates. We iterate on the mapping until the diff passes before the full migration window opens.
Full migration with delta-pickup window
The full migration runs in production during a scheduled window. Salesforce Bulk API handles high-volume object loads (Contacts, Opportunities, Tasks) while standard API handles lower-volume records. A delta-pickup window of 24–48 hours after the initial load captures any records created or modified in RunSensible during cutover. An audit log records every operation — record count per object, failed records with error reasons, and owner resolution status. One-click rollback reverts the Salesforce org to pre-migration state if reconciliation fails.
Platform deep dives
RunSensible
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your RunSensible to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.