CRM migration
Field-level mapping, validation, and rollback between CosmoLex and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
CosmoLex
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 10
objects map 1:1 between CosmoLex and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
CosmoLex is a practice-management platform built for law firms — it combines client/matter tracking, legal billing, and trust accounting in a single workflow-optimized system. Dynamics 365 Sales is a general-purpose CRM on Microsoft Dataverse that stores leads, accounts, contacts, and opportunities with a relational table model, custom-column prefixes, and pipeline-stage automation. The two platforms share a client-centric data model (client → account, matter → opportunity or custom table) but diverge sharply on billing, trust accounting, and legal-specific fields that have no native equivalent in Dataverse. FlitStack AI extracts CosmoLex data via its export API and import templates, transforms it through a field-level mapping against Dynamics 365 Sales Dataverse tables, and loads via Bulk API or single-record POST. We map Client records to Account entities, Matter records to custom Matter tables or Opportunity entities, time entries to Task entities, and billing/financial fields to custom decimal columns on the Matter table. Trust account identifiers and operating balances surface as custom fields — your law firm finance team reviews those manually post-migration. Workflows, billing rules, and trust-account reconciliation logic in CosmoLex do not migrate; we export definitions as JSON for your Dynamics admin to rebuild in Power Automate or model-driven apps.
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
CosmoLex platform overview
Scorecard, SWOT, gotchas, and pricing for CosmoLex.
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 CosmoLex 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.
CosmoLex
Client
Microsoft Dynamics 365 Sales
Account
1:1CosmoLex Client records map 1:1 to Dynamics 365 Sales Account entities. Client name becomes Account Name; client address fields map to the address composite on Account. We flag clients without an email address for Dynamics admin review before load.
CosmoLex
Matter
Microsoft Dynamics 365 Sales
Custom Matter Table (new_matter)
1:1CosmoLex Matter has no native Dynamics 365 Sales equivalent. We create a custom Matter table (new_matter) on Dataverse keyed to the AccountId of the parent Client. Matter number, type, status, and responsible attorney fields become columns on new_matter.
CosmoLex
Matter
Microsoft Dynamics 365 Sales
Opportunity
1:1For matters with a revenue or fee component (contingency, flat-fee, or hourly), we create a Dynamics 365 Sales Opportunity linked to new_matter via a lookup. The Opportunity StageName reflects the matter status; EstimatedCloseDate maps to the matter close date if applicable.
CosmoLex
Time Entry
Microsoft Dynamics 365 Sales
Task
1:1CosmoLex time entries map to Dynamics 365 Sales Task entities. Task.Subject carries the billing description; actual hours and billing rate become custom fields on Task (new_timehours, new_billingrate). OwnerId is resolved by email match against Dynamics users.
CosmoLex
Invoice / Billing Record
Microsoft Dynamics 365 Sales
Custom Invoice Table (new_invoice)
1:1CosmoLex invoice headers and line items are not standard Dynamics 365 Sales objects. We create a new_invoice custom table linked to new_matter, storing invoice number, date, total amount, balance due, and status as custom columns. Invoice PDFs are re-uploaded to SharePoint and linked via URL column.
CosmoLex
Trust Account
Microsoft Dynamics 365 Sales
Custom Trust Table (new_trustaccount)
1:1Trust account balances, operating balances, and retainer balances in CosmoLex have no Dynamics 365 Sales equivalent. We create a new_trustaccount custom table linked to the Account, storing the trust account identifier, current balance, account type, and last reconcile date as custom fields.
CosmoLex
Contact (Billing Contact)
Microsoft Dynamics 365 Sales
Contact
1:1CosmoLex contact records associated with a Client map to Dynamics 365 Sales Contact. Primary email, phone, job title, and mailing address transfer directly. Multiple contacts per Client map to multiple Contact records sharing the same AccountId.
CosmoLex
CosmoLex User / Attorney
Microsoft Dynamics 365 Sales
SystemUser
1:1CosmoLex users and matter owners are matched to Dynamics 365 Sales SystemUser records by email address. Unmatched users are flagged with their CosmoLex user ID stored in a new_externalattorneyid custom field for manual assignment post-migration.
CosmoLex
Document / File Attachment
Microsoft Dynamics 365 Sales
SharePoint Document Location
1:1CosmoLex documents attached to matters are re-uploaded to a SharePoint document library provisioned in the Dynamics 365 Sales environment. A new_documentsURL custom column on new_matter stores the SharePoint folder path for each matter.
CosmoLex
Custom Property / Field
Microsoft Dynamics 365 Sales
Custom Column (new_*)
1:1CosmoLex custom fields (e.g., case type, court jurisdiction, referral source) map to new_ prefixed columns on the appropriate Dataverse table. We create each custom column in the Dynamics 365 maker portal before bulk load and map the field data type from CosmoLex (text, number, pick-list, date) to the corresponding Dataverse column type.
| CosmoLex | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client | Account1:1 | Fully supported | |
| Matter | Custom Matter Table (new_matter)1:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Time Entry | Task1:1 | Fully supported | |
| Invoice / Billing Record | Custom Invoice Table (new_invoice)1:1 | Fully supported | |
| Trust Account | Custom Trust Table (new_trustaccount)1:1 | Fully supported | |
| Contact (Billing Contact) | Contact1:1 | Fully supported | |
| CosmoLex User / Attorney | SystemUser1:1 | Fully supported | |
| Document / File Attachment | SharePoint Document Location1:1 | Fully supported | |
| Custom Property / Field | Custom Column (new_*)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.
CosmoLex gotchas
Financial migration is balances-forward only, not historical
Two-phase migration sequencing is mandatory
Hard costs must be imported as soft costs
No public API for automated bulk export
Chart of Accounts is user-setup after import, not migrated
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
Map CosmoLex schema to Dataverse custom tables
FlitStack AI reads the CosmoLex export file (NFD export from CosmoLex's import templates) and compares it against the Dynamics 365 Sales target environment. We identify the standard entities (Account, Contact, Task) and create the custom tables (new_matter, new_invoice, new_trustaccount) with all required columns and pick-list option sets in the Dynamics 365 maker portal. Column type mapping from CosmoLex field types (text, number, date, pick-list) to Dataverse column types (SingleLineOfText, Whole Number, Date and Time, Choice) is documented in the field-mapping plan before any data is extracted.
Extract non-financial data from CosmoLex
CosmoLex provides an Excel template export for Client, Matter, and time-entry records. FlitStack AI downloads the export, applies a pre-validation pass (duplicate detection on matter number and client email, null-check on required fields), and stages the clean dataset for transformation. For records with missing required fields we flag them in the reconciliation report and apply your specified fallback rules before mapping.
Match CosmoLex users to Dynamics 365 Sales system users
We query Dynamics 365 Sales SystemUser table via the Dataverse Web API, match each CosmoLex user by email address, and build an owner-resolution lookup table. Users with no match are written to the unmatched-users report with their CosmoLex role and matter count. We do not assign a fallback owner without your explicit instruction — this prevents records landing under the wrong attorney and creating reporting errors in Dynamics pipeline dashboards.
Load accounts and contacts first
Dynamics 365 Sales requires Account to exist before Contact (via AccountId lookup) and requires both before Opportunity or custom table records can reference them. FlitStack AI sequences the migration: Client → Account, then CosmoLex contact records → Contact with AccountId populated from the resolved Account lookup. This ensures foreign-key integrity and prevents the 'lookup reference is invalid' errors that stop Dataverse bulk imports mid-run.
Run sample migration and field-level diff
A representative slice of 100–300 records (mix of clients, matters, time entries, and invoices) migrates against the live Dynamics 365 Sales environment. FlitStack AI generates a field-level diff report comparing source values against destination field values — you verify matter type mapping, billing method pick-list values, trust account balance precision, and owner resolution before the full migration commits.
Full migration with delta pickup and rollback hold
The full dataset loads via the Dataverse Bulk API in batches. After the initial load, a 24–48 hour delta pickup window captures any CosmoLex records created or modified during the cutover window. FlitStack AI holds a migration checkpoint snapshot before commit — if reconciliation shows record counts off by more than 0.5% or key fields are missing, one-click rollback reverts the Dataverse environment to the pre-migration state. All operations are logged in the audit trail.
Platform deep dives
CosmoLex
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between CosmoLex and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across CosmoLex and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between CosmoLex and Microsoft Dynamics 365 Sales .
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
CosmoLex: Not publicly documented.
Data volume sensitivity
CosmoLex 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 CosmoLex to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your CosmoLex 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 CosmoLex
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.