CRM migration
Field-level mapping, validation, and rollback between MerusCase and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
MerusCase
Source
Freshsales
Destination
Compatibility
10 of 10
objects map 1:1 between MerusCase and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
MerusCase organizes law-firm data around Cases, Parties, Activities, and a Case Ledger for time and billing entries. Freshsales is a standard CRM with Leads, Contacts, Accounts, Deals, Tasks, and Events. The migration maps MerusCase's case-centric model to Freshsales's contact-and-opportunity structure: Parties become Contacts (with the firm as an Account), Cases become Deals with custom fields carrying matter-type, case status, and settlement data, and Activities migrate as Tasks and Events with original timestamps preserved. Custom fields (up to 50 in MerusCase, supporting Date, Currency, Text, Numeric, and Yes/No types) convert to Freshsales custom fields, requiring type-aware mapping since Freshsales treats these as generic custom fields without the same legal-domain specificity. We use scoped read access on MerusCase's API to extract data without disrupting daily use. The delta-pickup window captures any records modified during cutover. Workflows, automations, and statutes do not migrate and must be rebuilt manually in Freshsales or exported as reference documentation.
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 MerusCase object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
MerusCase
Party (Contact)
Freshsales
Contact
1:1MerusCase Parties with role 'Client' or 'Contact' map directly to Freshsales Contacts. The party's display name splits into First Name and Last Name fields where available; single-string names populate the Last Name field with First Name left blank as needed.
MerusCase
Party (Attorney/Staff)
Freshsales
User
1:1MerusCase Parties with role 'Attorney', 'Paralegal', or 'Staff' resolve to Freshsales Users by email match. Unmatched staff members are flagged before migration — the firm either invites them to Freshsales or assigns records to a fallback user owner for continuity.
MerusCase
Firm / Organization
Freshsales
Account
1:1The MerusCase firm account (the law firm's own organization) maps to a Freshsales Account record. Client organizations referenced in cases also map to Accounts. Account Name uses the organization legal name; Website is mapped where present, and phone numbers when available.
MerusCase
Case
Freshsales
Deal
1:1MerusCase cases become Freshsales Deals. The case number becomes the Deal name; the case type (Personal Injury, Workers' Comp, Criminal, etc.) migrates as a custom pick-list field. Case status (Open, Closed, Pending) maps to Deal stage values for accurate pipeline reporting.
MerusCase
Case Type Specific Fields (Immigration Tab, Criminal Details)
Freshsales
Custom Fields on Deal
1:1MerusCase case-type-specific tabs (Immigration packets, arrest details, etc.) have no Freshsales equivalent. The fields from these tabs — such as visa type, court jurisdiction, or charge description — are created as Freshsales custom fields on the Deal object and populated from the source data.
MerusCase
Case Ledger (Time Entries, Expenses)
Freshsales
Custom Fields on Deal + Custom Module (Enterprise)
1:1MerusCase ledger entries include billable time with UTBMS task/activity codes and expense items. These do not map to any native Freshsales object. We create custom fields for total billed amount, total hours, and prominent UTBMS codes as pick-list values. On Enterprise plans, a custom ledger module can be created to store line items.
MerusCase
Activity (Call, Email, Meeting, Note)
Freshsales
Task / Event / Note
1:1MerusCase Activities (Telephone Call, Email, Meeting, Note, Statute) map to Freshsales Tasks and Events. The original activity date, description, and associated party are preserved. Task Subject carries the activity type; the full description populates the Task Notes field for complete audit trails.
MerusCase
Document
Freshsales
File Attachment on Contact/Deal
1:1MerusCase documents attached to cases are extracted from the document archive and re-uploaded as Freshsales file attachments on the corresponding Contact and Deal records. File size limits are enforced per Freshsales plan storage allowances, including compression of large PDFs and images to meet upload restrictions.
MerusCase
Custom Fields (Date, Currency, Text, Numeric, Yes/No)
Freshsales
Custom Fields on Contact / Deal / Account
1:1MerusCase custom fields (up to 50, across 5 types) are mapped to Freshsales custom fields on the target object. Date and Numeric types map directly. Currency values map to Freshsales currency fields. Yes/No becomes a pick-list with 'Yes' and 'No' values. Text fields (up to 250 characters) map to Freshsales text custom fields.
MerusCase
Workflow / Automation
Freshsales
N/A — Not Migrated
1:1MerusCase workflows triggered by Activity Tags or description text do not have a Freshsales equivalent. These must be rebuilt as Freshsales workflows or exported as documentation. We provide a workflow audit export from MerusCase to assist the Freshsales admin for future reference.
| MerusCase | Freshsales | Compatibility | |
|---|---|---|---|
| Party (Contact) | Contact1:1 | Fully supported | |
| Party (Attorney/Staff) | User1:1 | Fully supported | |
| Firm / Organization | Account1:1 | Fully supported | |
| Case | Deal1:1 | Fully supported | |
| Case Type Specific Fields (Immigration Tab, Criminal Details) | Custom Fields on Deal1:1 | Fully supported | |
| Case Ledger (Time Entries, Expenses) | Custom Fields on Deal + Custom Module (Enterprise)1:1 | Fully supported | |
| Activity (Call, Email, Meeting, Note) | Task / Event / Note1:1 | Fully supported | |
| Document | File Attachment on Contact/Deal1:1 | Fully supported | |
| Custom Fields (Date, Currency, Text, Numeric, Yes/No) | Custom Fields on Contact / Deal / Account1:1 | Fully supported | |
| Workflow / Automation | N/A — Not Migrated1: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.
MerusCase gotchas
Annual subscription and data access tied together
Outbound migration is not supported by MerusCase
Document Archive exports are per-case, not bulk
Built-in CSV import tools are not easy to use
Custom Fields apply to Cases only and have a 50-field cap
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Extract MerusCase data via scoped API access
We connect to the MerusCase API using scoped read credentials — no write access required. We extract Parties (all roles), Cases (all types and status values), Activities (all types including Statute entries), Documents, Ledger entries, and custom field definitions. The MerusCase API endpoints provide case file activities at GET /activities/index/:case_file_id and ledger entries via the caseLedgers API. We validate record counts against your MerusCase data export before mapping begins. Your team continues working in MerusCase throughout this phase.
Build Freshsales custom field schema
Before data lands in Freshsales, we create the custom fields needed to capture MerusCase-specific data: case_type__c pick-list, case_status__c pick-list, party_role__c pick-list, utbms_task_code__c pick-list, total_billed_amount__c currency field, total_hours__c numeric field, original_create_date__c datetime, and source_system_id__c text field. We also identify which custom fields from MerusCase's 50-field limit need to map into Freshsales. On Enterprise plans, we set up a custom ledger module to store line-item detail if desired.
Resolve MerusCase staff to Freshsales users
MerusCase staff members (attorneys, paralegals, admins) are mapped to Freshsales Users by email address match. Any staff member without a corresponding Freshsales user account is flagged in the pre-migration report. Firms can either invite the unmatched staff to Freshsales before migration or assign their records to a designated fallback user. Contacts (non-staff) are not affected by this resolution step. If multiple staff members share the same email domain but have distinct roles, we recommend creating separate Freshsales User accounts and using the role field to differentiate responsibilities.
Run sample migration with field-level diff
A representative slice migrates first — typically 50–200 records covering a mix of case types, party roles, activities, and custom fields. We generate a field-level diff between the MerusCase source and the Freshsales destination so you can verify case-type mapping, party-role assignment, ledger summarization, and owner resolution before the full run commits. This is the validation checkpoint where adjustments to pick-list values, field mappings, or ledger strategy are made.
Execute full migration with delta-pickup cutover
The full migration runs: Accounts first, then Contacts (resolved by email), then Deals with case data and custom fields, then Activities as Tasks and Events, then Documents as file attachments. A delta-pickup window (24–48 hours) captures any records created or modified in MerusCase during the cutover. Audit logs document every operation. If reconciliation identifies missing or mismatched records, one-click rollback reverts the Freshsales state to the pre-migration snapshot.
Platform deep dives
MerusCase
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 MerusCase and Freshsales.
Object compatibility
2 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
MerusCase: Not publicly documented.
Data volume sensitivity
MerusCase 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 MerusCase to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your MerusCase to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave MerusCase
Other ways to arrive at Freshsales
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.