CRM migration
Field-level mapping, validation, and rollback between Case.one and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Case.one
Source
Nutshell
Destination
Compatibility
12 of 12
objects map 1:1 between Case.one and Nutshell.
Complexity
BStandard
Timeline
24–72 hours
Overview
Case.one is a legal practice management platform built around cases, parties, time entries, documents, and billing — all structured around the case as the primary entity. Nutshell is a sales CRM organized around People, Companies, Leads, and Deals, with no native case or billing object. Migrating from Case.one to Nutshell means reshaping the source data model into a structure that Nutshell can represent natively, which requires custom fields for all case-related data and file attachments for documents. FlitStack AI connects to Case.one's read-only API, exports all records, and maps person fields, company fields, case custom fields, time entries (stored as JSON), and documents (re-uploaded as Nutshell Files) into your target Nutshell account. Workflows and automations do not migrate — they must be rebuilt in Nutshell's rule engine. During migration, your Case.one account remains fully accessible with scoped API read access. A 24–48 hour delta-pickup window captures records created or modified during cutover. After migration, Nutshell holds every contact, company, case reference, time entry, and document — only the workflow logic requires manual rebuild.
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 Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Case.one
Person
Nutshell
Person
1:1Case.one people map directly to Nutshell Person records. The primary email, phone, address, and custom properties transfer to Nutshell's standard and custom Person fields. A Company must exist in Nutshell before a Person with a primary company can be linked.
Case.one
Company
Nutshell
Company
1:1Case.one companies map 1:1 to Nutshell Company records. Company name, website, industry, address, employee count, and revenue transfer to Nutshell's standard fields. The full address is concatenated into a single address string. Custom properties from Case.one move to Nutshell custom fields on the Company record. A CaseOne_ID__c field preserves the source system identifier for reconciliation.
Case.one
Case
Nutshell
Person (custom fields)
1:1Nutshell has no native case or matter object. Each Case.one case becomes a set of custom fields on the primary Person record (case number, status, priority, description, type). If multiple parties exist for one case, each party Person record references the same case number via a shared custom field.
Case.one
Case Party Role
Nutshell
Person (custom field) + relationship
1:1Case.one supports multiple parties per case (attorney, client, opposing counsel). Nutshell Person-to-Company is 1:N per Person. We create a separate Person record for each case party and use a Party_Role__c custom field to store the role label. Role-to-role reporting requires a custom filter or export.
Case.one
Company-Party Link
Nutshell
Person-Company association
1:1Case.one links companies to cases. In Nutshell, the Person record's primary Company lookup links the party to its organization. If a person represents multiple companies in Case.one, we set the most-recently-used as the primary and surface others in a custom notes field.
Case.one
Time Entry
Nutshell
Person (custom text area)
1:1Case.one time entries are structured records with date, duration, description, and billable flag, nested inside cases. Nutshell has no time-entry object. We serialize all time entries per Person as a JSON array in a Time_Entries_JSON__c custom text area field. Each entry is individually readable but not queryable in Nutshell's standard reports.
Case.one
Document
Nutshell
Nutshell File (attached to Person or Company)
1:1Case.one documents attach to cases. In Nutshell, Files attach to Person or Company records. We re-upload each document to the primary Person record and use a file naming convention (e.g., [Case-2024-001] Contract Draft.pdf) to preserve case context in the absence of case folders.
Case.one
Bill / Invoice
Nutshell
No native equivalent
1:1Case.one generates invoices tied to cases and time entries. Nutshell has no native billing object. Bills and line items are not migrated. Clients who need billing post-migration must use a dedicated accounting tool. We can export bill records as a CSV reference file for import into QuickBooks, Clio, or another billing platform.
Case.one
Custom Property (on Person)
Nutshell
Person custom field
1:1Case.one allows custom properties on people. Each custom property in Case.one maps to a Nutshell custom field on the Person record. Nutshell's per-account limit is 100 custom fields total across all entities — we check the count during scoping and consolidate low-value fields into a text block if needed.
Case.one
Custom Property (on Company)
Nutshell
Company custom field
1:1Case.one custom properties on companies transfer to Nutshell Company custom fields. The same 100-field account ceiling applies across all entity types. Custom fields that store large text blobs (e.g., case notes or lengthy descriptions) are consolidated into a single long-text area field rather than individual fields to conserve the field allotment.
Case.one
User / Attorney
Nutshell
Nutshell Person record + User account
1:1Case.one users (attorneys, paralegals, admins) may appear as Person records. Nutshell user accounts are separate from Person records. We match Case.one users by email to existing or new Nutshell user accounts and link the corresponding Person record. Unmatched users are flagged before migration.
Case.one
Note / Activity Log
Nutshell
Person custom field (text block)
1:1Case.one activity logs and notes are stored per person or per case. Nutshell has no universal activity log per Person equivalent to Case.one's log. We concatenate all notes chronologically into a single Notes_Audit_Log__c text area on the Person record. Individual note timestamps are preserved in the text.
| Case.one | Nutshell | Compatibility | |
|---|---|---|---|
| Person | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Case | Person (custom fields)1:1 | Fully supported | |
| Case Party Role | Person (custom field) + relationship1:1 | Fully supported | |
| Company-Party Link | Person-Company association1:1 | Fully supported | |
| Time Entry | Person (custom text area)1:1 | Fully supported | |
| Document | Nutshell File (attached to Person or Company)1:1 | Fully supported | |
| Bill / Invoice | No native equivalent1:1 | Fully supported | |
| Custom Property (on Person) | Person custom field1:1 | Fully supported | |
| Custom Property (on Company) | Company custom field1:1 | Fully supported | |
| User / Attorney | Nutshell Person record + User account1:1 | Fully supported | |
| Note / Activity Log | Person custom field (text block)1: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
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Configure Nutshell custom fields before data movement
Before any records move, we create the custom fields needed to hold Case.one case data on Person and Company records: Case_Number__c, Case_Status__c, Case_Priority__c, Case_Type__c, Case_Description__c, Case_Opened_Date__c, Case_Closed_Date__c, Assigned_Attorney__c, Party_Role__c, Time_Entries_JSON__c, Notes_Audit_Log__c, and the source-system ID fields. We also verify the custom field count is within Nutshell's 100-field account ceiling and flag any consolidation needed before the migration plan is finalized.
Export and profile Case.one data
We connect to Case.one via API (read-only scoped access) and export all People, Companies, Cases, Time Entries, and Document metadata. During profiling we deduplicate records (matching by email and company name), resolve party-role labels, identify time entry volumes per person, and assess the document library size. A data-quality report identifies records with missing required fields, duplicate entries, and large note fields that need formatting before mapping. This report is reviewed with you before migration logic is written.
Re-upload documents to Nutshell as Files
Case.one documents are downloaded via API and re-uploaded to Nutshell as Files. Each file attaches to the primary Person record for the case's lead party (typically the client). We apply a file naming convention that embeds the case number so the case context is visible in Nutshell's file list. Large document libraries may require a staged upload with retry logic to handle API throttling. Document metadata (original upload date, file type, size) is preserved in the file record.
Run sample migration and field-level diff
A representative slice of 100–200 records migrates first, spanning people, companies, cases, and documents across multiple case types. We generate a field-level diff between the Case.one source values and the Nutshell destination fields so you can verify case custom field mapping, time entry serialization, document attachment, and party-role labeling before the full run commits. Adjustments to mapping logic are made based on your sign-off before the full migration is scheduled.
Execute full migration with delta-pickup and post-migration verification
The full migration runs against Nutshell's API. After completion, a 24–48 hour delta-pickup window captures any Case.one records created or modified during cutover. We perform a record-count reconciliation against the Case.one export totals and a spot-check of field values on critical records (case numbers, time entries, document attachment count). A final CSV reconciliation report is delivered. Once you confirm the data, FlitStack revokes read access from Case.one and the migration is closed.
Platform deep dives
Case.one
Source
Strengths
Weaknesses
Nutshell
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 Nutshell.
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 Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Case.one to Nutshell 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 Nutshell
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.