CRM migration

Migrate from MerusCase to Salesforce Sales Cloud

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

MerusCase logo

MerusCase

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

100%

12 of 12

objects map 1:1 between MerusCase and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

MerusCase stores legal case files as a top-level object with embedded parties, calendar events, activities, billing ledger entries, and document references — a flat-to-relational translation is the core challenge when moving to Salesforce Sales Cloud. Salesforce has no native legal-case equivalent: Cases sit alongside Accounts and Contacts in a standard CRM object graph, requiring a custom Case object or Salesforce-native Cases with a practice-area record-type configuration. We map MerusCase case files to Salesforce Cases, parties to Contacts (or Leads for opposing-counsel records), calendar events to Events, and activities to Tasks — preserving original create dates, assigned staff, and activity timestamps throughout. Billing ledger entries (time entries, expenses, damages, settlements) have no Salesforce equivalent and migrate as a custom Case_Ledger__c object with UTBMS task and activity codes intact. Document archives are re-hosted to Salesforce Files attached to the Case record. Workflows, statutes, and automation rules are not migratable — we export MerusCase workflow definitions as a rebuild reference for Salesforce Flow. We use a scoped MerusCase API read token for extraction, then load into Salesforce via Bulk API, running a delta pickup window after the cutover to capture any records modified during the transition.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How MerusCase objects map to Salesforce Sales Cloud

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

MerusCase

Case / Case File

maps to

Salesforce Sales Cloud

Case

1:1
Fully supported

MerusCase case files map to Salesforce native Case records. Salesforce Case.Number becomes the legacy case identifier; the original MerusCase case number is stored in Legacy_Case_Number__c. Practice area maps to Salesforce Case RecordTypeId per firm-defined record types (Criminal, Personal Injury, Employment, etc.).

MerusCase

Party (role = Client)

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

MerusCase parties with role Client map to Salesforce Contact. Each Contact gets the Case record as its primary case association via a custom Case_Party__c junction object or the native Case Contact Role. The Contact.AccountId is resolved by matching the party's firm name to a Salesforce Account.

MerusCase

Party (role = Opposing Counsel / Third Party)

maps to

Salesforce Sales Cloud

Lead

1:1
Fully supported

Parties with roles outside the firm (Opposing Counsel, Expert Witness, Insurer) lack a Salesforce Account relationship and map to Lead instead of Contact. The Lead.Company field stores the party's firm name; role is preserved in Party_Role__c for reference. Additionally, Lead.Status can be set to a custom value like 'External Party' to distinguish these records from marketing leads, and contact details are mapped to standard Lead fields.

MerusCase

Calendar Event

maps to

Salesforce Sales Cloud

Event

1:1
Fully supported

MerusCase calendar events map to Salesforce Events with original start/end datetimes, assigned staff (OwnerId resolved by email match), and the linked case as WhatId. Event.Subject carries the MerusCase event title. Recurring event series are expanded into individual Event records. Time zones are preserved as entered; if the source stores UTC offset, we store it in a custom Timezone__c field and apply it when displaying the event in Salesforce.

MerusCase

Activity

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

MerusCase activities map to Salesforce Tasks. Original activity dates become Task.ActivityDate; staff assignment becomes OwnerId via email match. The UTBMS task_code and activity_code from MerusCase are stored in Task.Task_Code__c and Activity_Code__c custom fields. Task.Priority is set based on the MerusCase urgency flag, and Task.Status defaults to 'Completed' for historical entries; open activities retain their original status for reconciliation.

MerusCase

Case Ledger

maps to

Salesforce Sales Cloud

Case_Ledger__c (custom object)

1:1
Fully supported

MerusCase billing ledger entries (charges, payments, damages, settlements) have no Salesforce standard equivalent and migrate as a Salesforce custom object. The Case_Ledger__c custom object links to the Case via Case__c lookup and stores all financial amounts, UTBMS codes, and status values as custom fields.

MerusCase

Document Archive

maps to

Salesforce Sales Cloud

ContentDocument / Salesforce Files

1:1
Fully supported

MerusCase documents are downloaded from the Document Archive and re-uploaded as "Salesforce Files" attached to the Case record via ContentDocumentLink. Large multi-document zips are split; individual files under 25 MB are uploaded via the Salesforce File object. Each file receives a ContentVersion entry with the file name, type, and creation timestamp, and is shared with the case's Salesforce group via a ContentDocumentLink with Visibility set to 'AllUsers' or 'InternalUsers'.

MerusCase

Custom Field (Date)

maps to

Salesforce Sales Cloud

CustomField__c (API name ends in __c)

1:1
Fully supported

MerusCase Date-type custom fields become Salesforce Date custom fields on the Case object. Field labels are preserved; API names are sanitized (spaces removed, special characters stripped). Up to 50 custom fields per firm map across this pattern. Help text and description strings from MerusCase are copied to the Salesforce field-level help text, and any default date values are set in the field definition if present.

MerusCase

Custom Field (Currency)

maps to

Salesforce Sales Cloud

CustomField__c (Currency type)

1:1
Fully supported

MerusCase Currency custom fields become Salesforce Currency custom fields on Case. The ISO currency code is stored alongside the value. Firms billing in multiple currencies should flag this during discovery for multi-currency org configuration. The decimal precision and scale of each Salesforce Currency field are set to match the MerusCase field definition, and if the org's default currency differs, a conversion formula or Salesforce Currency Management can be applied post‑migration.

MerusCase

Custom Field (Numeric / Text / Yes-No)

maps to

Salesforce Sales Cloud

CustomField__c (Number / Text / Picklist)

1:1
Fully supported

MerusCase Numeric fields map to Salesforce Number; Text fields (≤250 chars) map to Text; Yes/No dropdowns map to Salesforce Checkbox or a custom pick-list depending on whether the field is multi-valued. Field-level validation rules can be applied post-migration. The Text field length is set to the lesser of 250 characters or the MerusCase defined length, and any picklist values are transferred as Salesforce picklist options for consistency.

MerusCase

MerusCase User / Staff

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

MerusCase staff records resolve to Salesforce Users by email address. Unmatched staff are flagged before migration; your team either creates Salesforce users or assigns records to a fallback OwnerId. Staff role and practice-area assignments are stored in a custom User field.

MerusCase

MerusCase Workflow

maps to

Salesforce Sales Cloud

Salesforce Flow

1:1
Fully supported

MerusCase Workflows are not migratable to Salesforce. We export the workflow definitions (trigger types, conditions, resulting tasks) as a structured JSON reference document your Salesforce admin uses to rebuild equivalent Flows in Flow Builder or Process Builder post-migration. The export includes the original workflow name, activation criteria, step sequence, assigned staff roles, and any conditional branching logic, providing a clear blueprint for re‑creating each automation in Salesforce.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • MerusCase Workflows do not migrate — they must be rebuilt in Salesforce Flow

    MerusCase Automation Settings drive task creation and reminders based on activity tags and descriptions. Salesforce has no equivalent workflow importer — the MerusCase workflow definitions (trigger conditions, resulting task assignments, staff routing) must be rebuilt in Flow Builder or migrated manually using our exported workflow JSON reference. This is the most frequently underestimated manual effort in a MerusCase migration and should be scoped as a separate workstream from the data migration.

  • Case numbering requires a new convention in Salesforce

    MerusCase generates sequential case numbers internally and exposes them as case_number. Salesforce auto-generates Case.Number as a system ID that does not preserve the original sequence. We store the original MerusCase case number in Legacy_Case_Number__c, but your firm needs to decide whether to use Salesforce's auto-number field going forward or create a custom auto-number field that continues the MerusCase sequence. This decision affects report URLs, court filings that reference case numbers, and any integrations that reference the legacy ID.

  • UTBMS task and activity codes have no Salesforce standard — they need custom fields on every activity record

    MerusCase records UTBMS L-codes (task), A-codes (activity), and E-codes (expense) against every billable time entry. Salesforce Tasks have no native UTBMS fields — we create Task_Code__c and Activity_Code__c custom fields on Task and Case_Ledger__c to preserve them. If your firm bills against UTBMS codes in e-billing portals (court e-filing systems, insurance matter management), those portals may need to be reconfigured to read the Salesforce custom field API names instead of MerusCase field references.

  • Billing ledgers and MerusPay fee schedules require a custom Case_Ledger__c object — financial reporting is manual post-migration

    MerusCase tracks charges, payments, damages, and settlements in the CaseLedger object with a status workflow (Open, Reviewed, Rejected, Exported) tied to MerusPay's fee-batch processing. Salesforce has no standard object for legal billing ledgers. We create Case_Ledger__c as a custom object with all ledger fields, but revenue recognition, trust accounting, and billing report generation require Salesforce financial reporting configuration (native reports, Salesforce Revenue Intelligence, or a third-party legal billing integration) after migration.

  • Document re-hosting from MerusCase Document Archive to Salesforce Files requires file size management

    MerusCase Document Archive delivers a zip per case plus a CSV of case activities. Files must be extracted, split where they exceed Salesforce's 25 MB per-File limit, and uploaded via Salesforce ContentVersion API. Cases with hundreds of documents (exhibit batches, discovery sets) need a staged upload plan to avoid Bulk API queue congestion. Inline images embedded in MerusCase notes are extracted and re-hosted as Salesforce Files with the note re-linked to the new file URL.

Migration approach

Six steps for a successful MerusCase to Salesforce Sales Cloud data migration

  1. Audit MerusCase data and configure Salesforce schema

    FlitStack AI extracts a full inventory of MerusCase objects via CSV export and API: case files, parties, activities, calendar events, case ledgers, documents, and custom field definitions. We compare this inventory against your Salesforce org and deliver a schema setup plan: custom Case object fields (__c), Case RecordTypeIds per practice area, the Case_Ledger__c custom object, and custom fields on Task for UTBMS codes. Your Salesforce admin creates the schema before data loads begin.

  2. Resolve owners and contacts by email

    MerusCase staff and party email addresses are matched against Salesforce Users and Contacts by email. Unmatched staff are flagged for Salesforce user provisioning before migration; unmatched party contacts are flagged for a decision on whether they become Leads (for outside parties) or Contacts (for firm-affiliated parties). No record lands in Salesforce without a resolved OwnerId or ContactId, and any duplicate email matches generate a warning for admin review before the load proceeds.

  3. Sequence the migration in dependency order

    Salesforce requires parent records to exist before child records load: Accounts first, then Contacts/Leads, then Cases, then Tasks and Events linked to Cases, then ContentDocumentLinks for files, then Case_Ledger__c entries. We extract and stage each object in this sequence, validate foreign key integrity at each stage, and flag circular or missing references before they block the load. To optimize throughput, we group records into Bulk API batches of up to 10,000 rows and run dependent objects in parallel where foreign‑key dependencies allow, while preserving the dependency order for all lookup relationships.

  4. Run a sample migration with field-level diff

    A representative slice of 50–200 records (spanning multiple practice areas, party roles, activity types, and ledger statuses) migrates first. We generate a field-level diff between the MerusCase source values and the Salesforce destination values so you can verify case status mapping, UTBMS code preservation, billing ledger amount accuracy, and document attachment completeness before the full run commits. The diff report highlights any truncated text fields, missing picklist values, and unexpected nulls, enabling you to adjust field mappings or data‑prep steps before the bulk load.

  5. Execute full migration with delta-pickup cutover

    The full migration loads all objects in sequence via Salesforce Bulk API, respecting API rate limits and batch sizing. A delta-pickup window (typically 24–48 hours after the full load) captures any records created or modified in MerusCase during the cutover. FlitStack AI generates an audit log of every record operation and provides a one-click rollback to the pre-migration state if reconciliation uncovers data integrity issues.

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.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

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 Salesforce Sales Cloud.

  • 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 Salesforce Sales Cloud 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 Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during MerusCase to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most MerusCase-to-Salesforce migrations complete in 48–72 hours of clock time for firms with under 25,000 case file records. Larger firms with billing ledger histories, large document archives, or multiple practice-area record types extend to 5–7 days. The longest single step is Salesforce schema setup (custom Case object, Case_Ledger__c, RecordTypes per practice area) which runs in parallel with data extraction and typically takes 3–5 business days before the load begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from MerusCase.
Land in Salesforce Sales Cloud, 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