CRM migration
Field-level mapping, validation, and rollback between Case.one and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Case.one
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 10
objects map 1:1 between Case.one and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2–4 weeks
Overview
Case.one structures its data around legal case management — Cases, Contacts, Companies, Time Entries, and Bills with a per-active-case pricing model. Dynamics 365 Sales structures its data around the sales cycle — Accounts, Contacts, Leads, Opportunities, and Cases with per-user monthly licensing (Sales Professional at $65/user/month, Sales Enterprise at $105/user/month). The migration carries every Case.one record into the appropriate Dynamics 365 table: Cases → Dynamics Cases with custom fields for legal-specific attributes; Companies → Accounts; Contacts → Contacts with primary Account lookups resolved; Time Entries → custom Time_Entry__c table linked to Case; Bills → custom Billing_Invoice__c table. Custom fields created in Case.one (practice area, billing rate, jurisdiction, opposing counsel) migrate as custom columns on the respective Dynamics 365 table. Relationships between cases and parties require connection or lookup resolution post-migration. Workflows, billing automation rules, and document templates do not migrate — we export them as reference documentation for your Dynamics 365 admin to rebuild in Power Automate and the Dynamics 365 form designer. We use the Case.one REST API for extraction, apply field-level transformation, and load via the Dynamics 365 Web API (Dataverse), respecting Power Platform request quotas. A delta-pickup window captures any Case.one records modified during the cutover window.
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.
Source platform
Case.one platform overview
Scorecard, SWOT, gotchas, and pricing for Case.one.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Case.one
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Direct map. Case.one contacts migrate as Dynamics 365 Contacts with primary Company lookup resolved by matching company name to a pre-migrated Account. Email and name fields map directly; address fields map field-by-field. Owners resolved by email match against Dynamics 365 users.
Case.one
Company
Microsoft Dynamics 365 Sales
Account
1:1Direct map. Case.one companies migrate as Dynamics 365 Accounts. Company name maps to Account Name; website maps to Website URL; industry maps via value mapping to the Dynamics 365 Industry picklist. Employee count and revenue map directly where present. These fields are migrated using direct column mappings and standard Dataverse conventions.
Case.one
Case
Microsoft Dynamics 365 Sales
Incident (Case)
1:1Transformed map. Case.one Cases become Dynamics 365 Cases (Incident table). Standard fields — case title, description, status — map directly. Legal-specific attributes (practice area, responsible attorney, jurisdiction, opposing counsel) migrate as custom fields on the Incident table. Case number from Case.one preserved as a custom text field for traceability.
Case.one
Time Entry
Microsoft Dynamics 365 Sales
Custom Table (Time_Entry__c)
1:1No native Dynamics 365 Sales equivalent for time entries. We create a custom Time_Entry__c table in Dataverse with columns for Hours, Rate, Billable_Flag, and Case_Lookup linking back to the migrated Case.one case. Attorney and date fields migrate as custom datetime and lookup columns.
Case.one
Bill / Invoice
Microsoft Dynamics 365 Sales
Custom Table (Billing_Invoice__c)
1:1No native Dynamics 365 Sales equivalent for billing or invoicing. We create a custom Billing_Invoice__c table with Invoice_Number, Amount, Status, and Case_Lookup columns. Payment history migrates as a separate custom table linked to the invoice record. Dynamics 365 Business Central integration can be configured separately for full accounting.
Case.one
Custom Object (Case.one)
Microsoft Dynamics 365 Sales
Custom Table (Dataverse)
1:1Case.one custom objects (custom fields on Cases, Contacts, or Companies) map to Dataverse custom columns on the corresponding standard table. N:N relationships in Case.one require connection tables or lookup columns in Dynamics 365 — we surface the required schema in the migration plan before execution.
Case.one
Case-Party Relationship
Microsoft Dynamics 365 Sales
Contact (Primary) + Connection
many:1Case.one allows multiple contacts and companies per case. We migrate the primary (primary_contact flag) party as the direct Contact lookup on the Case. Secondary parties migrate as Dynamics 365 Connections on the Case record with a role value matching the Case.one relationship type (e.g., Opposing Counsel, Expert Witness).
Case.one
Document / Attachment
Microsoft Dynamics 365 Sales
SharePoint (via Dynamics 365)
1:1Case.one document attachments migrate to the SharePoint document library associated with the Case record in Dynamics 365. Original file names and timestamps are preserved. File size limits follow SharePoint Online constraints. Inline images in notes are downloaded and re-hosted in the SharePoint library.
Case.one
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Case.one users are resolved by email match against Dynamics 365 SystemUser records. Unmatched users are flagged before migration; you either provision them in Dynamics 365 first or assign their records to a fallback owner. Active/inactive status from Case.one is preserved in a custom field.
Case.one
Case Status (Open/Closed/Pending)
Microsoft Dynamics 365 Sales
statecode + statuscode
1:1Case.one case status values map to Dynamics 365 statecode and statuscode combinations. Each Case.one status value requires a corresponding statuscode defined under the appropriate statecode in Dynamics 365 before migration. Status reason labels from Case.one migrate as statuscode display names.
| Case.one | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Case | Incident (Case)1:1 | Fully supported | |
| Time Entry | Custom Table (Time_Entry__c)1:1 | Fully supported | |
| Bill / Invoice | Custom Table (Billing_Invoice__c)1:1 | Fully supported | |
| Custom Object (Case.one) | Custom Table (Dataverse)1:1 | Fully supported | |
| Case-Party Relationship | Contact (Primary) + Connectionmany:1 | Fully supported | |
| Document / Attachment | SharePoint (via Dynamics 365)1:1 | Fully supported | |
| User / Owner | SystemUser1:1 | Fully supported | |
| Case Status (Open/Closed/Pending) | statecode + statuscode1: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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Audit Case.one data model and custom fields
We extract the full Case.one schema — all standard and custom fields on Cases, Contacts, Companies, Time Entries, and Bills — via the Case.one API. We inventory custom field data types, pick-list values, and relationship structures. We compare the Case.one custom field inventory against Dynamics 365 Sales table limits (15 tables for Professional; unlimited for Enterprise) and deliver a schema setup plan specifying the exact custom column names, data types, and pick-list values to pre-create in Dataverse before migration validation runs.
Pre-create Dynamics 365 custom tables and resolve users
We create all required Dataverse custom tables (Time_Entry__c, Billing_Invoice__c) and custom columns referenced in the field mapping plan. We resolve Case.one users by email match against Dynamics 365 SystemUser records — unmatched users are flagged so your team can provision them in Dynamics 365 or assign a fallback owner before migration. We also pre-create Dynamics 365 Connection roles to match Case.one party relationship labels (Opposing Counsel, Expert Witness, etc.).
Sequence migration: Accounts → Contacts → Cases → Time Entries → Billing
Dynamics 365 requires foreign key dependencies to resolve before dependent records load. We sequence the migration so Accounts are created first, then Contacts with primary Account lookups resolved, then Cases with attorney and party lookups resolved, then Time Entries linked to Cases, and finally Billing Records linked to Cases and Contacts. Case-party relationships map to Dynamics 365 Connections on the Case record. We run dependency validation at each stage before proceeding to the next.
Run sample migration with field-level diff
A representative slice of records (typically 100–500 covering cases, contacts, companies, time entries, and billing records) migrates first. We generate a field-level diff between the Case.one source record and the Dynamics 365 destination record, verifying that case status mapping, custom field values, attorney lookups, and time entry linkages are correct. You review the sample diff before the full run commits. This step catches mapping errors at a recoverable scale.
Execute full migration with delta-pickup and audit log
The full migration runs via the Dynamics 365 Web API (Dataverse) with batch operations and request pacing. A delta-pickup window (typically 24–48 hours after the full run completes) captures any Case.one records created or modified during the cutover. Every operation is logged in an audit trail. One-click rollback reverts the Dynamics 365 environment to its pre-migration state if reconciliation uncovers critical mapping failures. We deliver a final reconciliation report comparing record counts and field values between Case.one and Dynamics 365.
Platform deep dives
Case.one
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Microsoft Dynamics 365 Sales .
Object compatibility
1 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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Case.one to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.