CRM migration
Field-level mapping, validation, and rollback between Case.one and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Case.one
Source
Freshsales
Destination
Compatibility
9 of 10
objects map 1:1 between Case.one and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Case.one is legal practice management software built for law firms handling collaborative litigation, document exchange, time tracking, and client billing. Freshsales is a sales CRM built for pipeline management, lead scoring, and sales automation. These platforms share a record-association model but diverge sharply on object semantics — Case.one uses Matters and Time Entries where Freshsales uses Opportunities and Tasks. The migration carries Case.one clients into Freshsales Contacts and Accounts, matters into either Opportunities or a custom Legal_Matter__c object depending on your use case, and time/billing data into custom fields or a separate billing module since Freshsales lacks native invoice generation. We map every standard field directly (name, email, phone), transform platform-specific fields (Case.one case_number becomes a custom field on the Freshsales Opportunity), and surface legal-specific properties as custom fields that your team can extend in Freshsales Admin Settings. Workflows, billing automation, and document management constructs in Case.one do not have equivalents in Freshsales and must be rebuilt using Freshsales Flows or Freshdesk integration post-migration.
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 Case.one 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.
Case.one
Client / Party
Freshsales
Contact + Account
1:1Case.one client records map directly to Freshsales Contacts with Account association. Individual attorney contacts map to Contact records; law firm or corporate client organizations map to Account records. The client_type field in Case.one determines whether the record lands as a primary Contact under an Account or as a standalone Contact.
Case.one
Matter / Case
Freshsales
Opportunity or Legal_Matter__c (custom)
1:1Case.one Matters do not map 1:1 to Freshsales Opportunities because legal matters have billing and milestone semantics that Opportunity Stage does not capture. We create a Legal_Matter__c custom object for matters that need billing history and time tracking, or map simple matters directly to Opportunities with a Matter_Type__c custom field to distinguish practice areas.
Case.one
Time Entry
Freshsales
Task + Custom Fields
1:1Case.one time entries become Freshsales Tasks with custom fields: Time_Entry_Duration__c (decimal hours), Billing_Code__c (text), Billed_Status__c (checkbox), and Matter_Link__c (lookup to Legal_Matter__c or Opportunity). The original time entry date is preserved in the Task Activity Date field. Billed time entries are flagged for reference but not re-created as invoices.
Case.one
Invoice / Bill
Freshsales
Custom Object: Legal_Invoice__c
1:1Case.one invoices map to a Legal_Invoice__c custom object because Freshsales has no native billing module. Each invoice record stores invoice_number, invoice_date, total_amount, balance_due, payment_status, and a lookup to the associated Contact/Account. Outstanding balances and payment history are preserved for reference; the invoice PDF URL is stored as a text field if available via Case.one export.
Case.one
Document / File
Freshsales
Salesforce Files (via Freshsales File Attachments)
1:1Case.one documents attached to matters are downloaded and re-uploaded as Freshsales Files associated with the corresponding Contact, Account, or Legal_Matter__c record. Freshsales 25MB per-file limit applies; files larger than this are flagged for chunked upload or alternative storage. Inline images in notes are extracted and rehosted separately.
Case.one
Attorney / User
Freshsales
Freshsales User
1:1Case.one users (attorneys, paralegals, admins) are resolved by email match against Freshsales User records. Unmatched users are flagged before migration — the team either invites them to Freshsales or assigns their Case.one records to a fallback user. Case.one role (Attorney, Paralegal, Admin) is preserved as a custom field on the Freshsales User record for reporting.
Case.one
Calendar Event / Deadline
Freshsales
Event + Custom Fields
1:1Case.one calendar events and filing deadlines migrate as Freshsales Events with original start/end datetime, subject, and attendee information preserved. A custom Deadline_Type__c field distinguishes filing deadlines from internal meetings. Recurring events are expanded to individual Event records in Freshsales since the native recurring event model differs.
Case.one
Custom Field: Case Type / Practice Area
Freshsales
Custom Field on Legal_Matter__c or Opportunity
1:1Case.one custom fields (practice area, case subtype, jurisdiction, court) migrate as Freshsales custom fields with identical pick-list values where possible. Freshsales field naming conventions apply — spaces become underscores, special characters are stripped (Practice_Area__c, Jurisdiction__c). Value-by-value mapping is applied for pick-list fields to ensure consistent terminology.
Case.one
Trust / Escrow Transaction
Freshsales
Custom Object: Trust_Transaction__c
1:1Case.one trust account transactions do not map to any Freshsales standard object. We create a Trust_Transaction__c custom object with fields: transaction_date, transaction_type (deposit/withdrawal), amount, matter_link, running_balance. The trust accounting ledger is preserved for compliance reference but Freshsales does not enforce trust accounting rules — your team manages compliance separately.
Case.one
Lead / Referral Source
Freshsales
Lead + Custom Field
many:1Case.one referral sources (client referrals, vendor referrals, marketing leads) merge into Freshsales Lead records with a Referral_Source__c custom field preserving the original source label. If the referral already exists as a Case.one Contact, it is merged into the corresponding Freshsales Contact by email match to avoid duplicate records.
| Case.one | Freshsales | Compatibility | |
|---|---|---|---|
| Client / Party | Contact + Account1:1 | Fully supported | |
| Matter / Case | Opportunity or Legal_Matter__c (custom)1:1 | Fully supported | |
| Time Entry | Task + Custom Fields1:1 | Fully supported | |
| Invoice / Bill | Custom Object: Legal_Invoice__c1:1 | Fully supported | |
| Document / File | Salesforce Files (via Freshsales File Attachments)1:1 | Fully supported | |
| Attorney / User | Freshsales User1:1 | Fully supported | |
| Calendar Event / Deadline | Event + Custom Fields1:1 | Fully supported | |
| Custom Field: Case Type / Practice Area | Custom Field on Legal_Matter__c or Opportunity1:1 | Fully supported | |
| Trust / Escrow Transaction | Custom Object: Trust_Transaction__c1:1 | Fully supported | |
| Lead / Referral Source | Lead + Custom Fieldmany: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.
Case.one gotchas
Trust account balance migration requires financial reconciliation
Per-active-case pricing means closed matters do not count toward billing
Custom field schemas are firm-specific and require enumeration
Large document repositories may require chunked export with integrity verification
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
Export Case.one data and map the schema to Freshsales objects
We extract all Case.one records via API export — clients, matters, time entries, invoices, trust transactions, documents, calendar events, and user accounts. We build a schema map that routes each Case.one object to its Freshsales equivalent (standard object, custom object, or custom field). If Legal_Matter__c and Trust_Transaction__c custom objects are needed, we deliver a setup specification for your Freshsales admin to create before migration data lands.
Resolve Case.one attorneys and users to Freshsales User records
We match Case.one user email addresses against Freshsales User records. Unmatched users are flagged in a pre-flight report — your team either provisions Freshsales licenses for them or assigns their records to a fallback attorney user. Owner resolution must complete before matters migrate so every Opportunity has a valid OwnerId and your Freshsales reporting reflects accurate attorney assignments.
Migrate clients, accounts, and contacts before matters
Freshsales requires AccountId on Contact records and Contact associations on Opportunities. We sequence the migration so Client records map to Contacts (with Account association for organizations), then Matter records map to Opportunities or Legal_Matter__c. Time entries and trust transactions migrate after matters so the matter lookups resolve correctly without dangling references.
Run a sample migration with field-level diff for validation
A representative slice — typically 100–500 records spanning clients, matters, time entries, and invoices — migrates first. We generate a field-level diff between the Case.one export and the Freshsales destination so you can verify that practice area pick-lists, billing codes, trust transaction amounts, and matter stage mapping all resolve correctly before the full run commits.
Cut over with delta-pickup window for in-flight changes
The full migration runs against Freshsales with a delta-pickup window (24–48 hours) capturing any Case.one records modified during cutover. Documents re-upload to Freshsales Files. Trust transactions and invoices post to custom objects. An audit log captures every operation, and one-click rollback is available if reconciliation fails. After go-live, Case.one workflows must be rebuilt in Freshsales Flows using the exported definition reference.
Platform deep dives
Case.one
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 Case.one 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
Case.one: Not publicly documented.
Data volume sensitivity
Case.one 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 Case.one to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Case.one 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 Case.one
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.