CRM migration
Field-level mapping, validation, and rollback between Goodlegal and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Goodlegal
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
12 of 12
objects map 1:1 between Goodlegal and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Goodlegal organizes legal work around matters, documents, clients, templates, and clause libraries. Its API exposes these objects as structured records with owner assignments, matter status, billable amounts, and document URLs. Microsoft Dynamics 365 Sales standard model covers Accounts, Contacts, Leads, and Opportunities natively; anything that does not fit — like legal matter records, document metadata, template references, or clause libraries — migrates into custom Dataverse tables or existing SharePoint document libraries linked back to CRM records. We sequence the load so parent objects (Accounts, Contacts) land first, then matter records attach via lookup, then document references surface inside SharePoint folders scoped to each Dynamics 365 record. Goodlegal workflows, clause logic, and template-rendering rules do not migrate — those must be rebuilt in Dynamics 365 Power Automate flows or a companion document-automation tool. Our migration engine uses Goodlegal's REST API for extraction, applies field-level transformation against the Dataverse schema, and loads via Dataverse Bulk API with batched commits to stay within Power Platform request limits. A 24–48 hour delta window captures any matter or document records created or modified during the cutover window so the destination reflects Goodlegal's final state at go-live.
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
Goodlegal platform overview
Scorecard, SWOT, gotchas, and pricing for Goodlegal.
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 Goodlegal 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.
Goodlegal
Client (matters record)
Microsoft Dynamics 365 Sales
Custom Matter (Dataverse)
1:1Goodlegal matter records (name, status, responsible attorney, billable amount, currency, matter type) have no direct Dynamics 365 Sales equivalent. We create a custom Matter Dataverse table with all matter fields as columns, linked to the primary Account or Contact record via a lookup relationship.
Goodlegal
Contact (client party)
Microsoft Dynamics 365 Sales
Contact
1:1Goodlegal party contacts map directly to Dynamics 365 Contact records in a one-to-one relationship. The primary email address on each Goodlegal contact resolves to Contact.Emailaddress1 in Dynamics 365. A Matter lookup field on each Contact links back to the corresponding Goodlegal matter, preserving the association between the client party and their related legal matter throughout migration.
Goodlegal
Company (organization on matter)
Microsoft Dynamics 365 Sales
Account
1:1Goodlegal organization records map directly to Dynamics 365 Account records. Company name maps to Account.Name, website maps to Account.Website, and industry maps to Account.Industry. Multiple contacts belonging to the same company in Goodlegal collapse into a single AccountId lookup on each Contact record, ensuring a clean hierarchical structure in Dynamics 365.
Goodlegal
Matter Document
Microsoft Dynamics 365 Sales
SharePoint Document Location + Note
1:1Goodlegal document metadata (file name, document type, matter association, URL) migrates to a SharePoint document library folder scoped to the Matter Dataverse record. The original document URL is stored as a SharePoint Document Location record linked to the Matter; actual file blobs are re-uploaded into SharePoint as part of the migration.
Goodlegal
Clause Library Entry
Microsoft Dynamics 365 Sales
Custom Clause (Dataverse)
1:1Goodlegal clause-library entries (clause name, clause text, category, usage count) have no native Dynamics 365 Sales equivalent, so we create a custom Clause Dataverse table. Each clause record includes a lookup to the Matter table, enabling clauses to be associated with specific matter records after migration is complete.
Goodlegal
Document Template
Microsoft Dynamics 365 Sales
SharePoint List / Power Automate Template Reference
1:1Goodlegal document templates (with field placeholders and clause insertion logic) are platform-native rendering rules. They do not export as data. We export template metadata (name, description, last-used date) as a custom Power Automate reference record, and your legal-ops team rebuilds the rendering logic in Power Automate using the exported template definitions as a specification.
Goodlegal
Matter Status
Microsoft Dynamics 365 Sales
Custom Picklist on Matter Dataverse table
1:1Goodlegal matter status values (Active, Pending Review, Closed, On Hold) map to a custom Status__c picklist on the Matter custom Dataverse table. Each status value maps explicitly to the corresponding Dynamics 365 custom picklist value so reporting continuity is preserved.
Goodlegal
Billable Amount / Currency
Microsoft Dynamics 365 Sales
Custom Amount fields on Matter + Opportunity Amount
1:1Goodlegal billable_amount and currency_code map to two custom fields on the Matter table: Billable_Amount__c (decimal) and Currency__c (picklist). For matters linked to a sales opportunity, the billable amount can optionally populate the Dynamics 365 Opportunity.Amount field to surface legal revenue inside the pipeline.
Goodlegal
Matter Owner / Responsible Attorney
Microsoft Dynamics 365 Sales
OwnerId on Matter (Dataverse)
1:1Goodlegal attorney owner is resolved by email match to a corresponding Dynamics 365 user. Unmatched attorneys are flagged before migration so your admin can invite them to Dynamics 365 or assign their matters to a fallback owner. The OwnerId field on the Matter table carries the resolved Dynamics 365 user reference.
Goodlegal
Matter Create Date / Modified Date
Microsoft Dynamics 365 Sales
Custom audit datetime fields on Matter
1:1Goodlegal's original create_date and last_modified_date are preserved as custom datetime fields on the Matter table named Matter_Create_Date__c and Matter_Modified_Date__c respectively. Dynamics 365's native CreatedOn and ModifiedOn fields are set to the migration execution timestamp, while the custom fields retain the source system timestamps to maintain full audit continuity and historical reporting accuracy.
Goodlegal
Party / Counterparty
Microsoft Dynamics 365 Sales
Contact (secondary lookup on Matter)
1:1Goodlegal counterparty records on a matter — opposing counsel, co-counsel, or third-party contacts — migrate as additional Contact records linked to the Matter via a secondary N:1 relationship. This lets Dynamics 365 Contact records represent both primary clients and matter-side counterparties.
Goodlegal
Goodlegal Record ID
Microsoft Dynamics 365 Sales
Goodlegal_Source_ID__c (custom field on all records)
1:1Every migrated record — including Matter, Contact, Account, and Document entities — carries its original Goodlegal internal identifier in a Goodlegal_Source_ID__c custom field. This cross-reference field enables delta-run de-duplication, supports cross-system lookups between Goodlegal and Dynamics 365, and provides complete audit traceability back to the source system for compliance and reconciliation purposes.
| Goodlegal | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client (matters record) | Custom Matter (Dataverse)1:1 | Fully supported | |
| Contact (client party) | Contact1:1 | Fully supported | |
| Company (organization on matter) | Account1:1 | Fully supported | |
| Matter Document | SharePoint Document Location + Note1:1 | Fully supported | |
| Clause Library Entry | Custom Clause (Dataverse)1:1 | Fully supported | |
| Document Template | SharePoint List / Power Automate Template Reference1:1 | Fully supported | |
| Matter Status | Custom Picklist on Matter Dataverse table1:1 | Fully supported | |
| Billable Amount / Currency | Custom Amount fields on Matter + Opportunity Amount1:1 | Fully supported | |
| Matter Owner / Responsible Attorney | OwnerId on Matter (Dataverse)1:1 | Fully supported | |
| Matter Create Date / Modified Date | Custom audit datetime fields on Matter1:1 | Fully supported | |
| Party / Counterparty | Contact (secondary lookup on Matter)1:1 | Fully supported | |
| Goodlegal Record ID | Goodlegal_Source_ID__c (custom field on all records)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.
Goodlegal gotchas
Audit logs are not externally accessible
Limited public API documentation
Document creation workflow inconsistencies by type
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
Discovery call and Goodlegal API audit
We connect to Goodlegal via API using read-only credentials and audit every exposed object: matters, contacts, accounts, documents, clause-library entries, templates, and user accounts. We capture field-level schemas, record counts per object, and any null-rate anomalies. We also identify document URL accessibility and flag whether bulk file export is available from your Goodlegal plan. This audit feeds the migration schema plan and identifies any Goodlegal objects with no Dynamics 365 equivalent before any mapping work begins.
Design Dataverse custom tables and SharePoint structure
Based on the Goodlegal API audit, we design the custom Matter Dataverse table, the custom Clause Dataverse table, and the SharePoint document-library folder hierarchy. Each matter gets its own SharePoint folder named with the matter ID and matter name. We define field mappings for every Goodlegal field, set up email-based owner resolution for attorney users, and configure the SharePoint Document Location records that link documents back to matter records. We deliver a schema plan before data extraction so your Dynamics 365 admin can verify the table design against your license tier (Sales Professional vs. Enterprise/Premium).
Sample migration with field-level diff
We run a representative slice of migration — typically 100–300 records covering a cross-section of matter types, document counts, clause-library entries, and attorney owners. The field-level diff compares source Goodlegal values against destination Dynamics 365 values for every mapped field. We surface discrepancies in attorney owner resolution, matter status value mapping, and document URL accessibility. The sample run validates that SharePoint folder creation, Dataverse custom table population, and Contact-to-Account lookups resolve in the correct order before the full run commits any records.
Full migration with delta pickup window
We run the full migration against your Dynamics 365 environment. Contacts and Accounts load first so AccountId and ContactId lookups resolve correctly on Matter records. Documents stream into SharePoint with their Document Location records linking back to each Matter. Clause-library entries populate the custom Clause Dataverse table. A delta-pickup window (24–48 hours) runs concurrently, capturing any matters, contacts, or documents created or modified in Goodlegal during the cutover. All records carry their Goodlegal_Source_ID__c for traceability, and the audit log records every operation for rollback if reconciliation fails.
Reconciliation report and post-migration handoff
We generate a reconciliation report comparing Goodlegal record counts and key field values against Dynamics 365 loaded values. Discrepancies are surfaced with row-level detail so your admin can correct them in Dynamics 365 or back in Goodlegal for a supplemental run. We deliver a clause-library rebuild guide that maps every Goodlegal template definition to a Power Automate flow specification your legal-ops team can implement post-migration. The audit log, rollback script, and delta-pickup summary are handed off in a single migration package.
Platform deep dives
Goodlegal
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 Goodlegal 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
Goodlegal: Not publicly documented.
Data volume sensitivity
Goodlegal 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 Goodlegal to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Goodlegal 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 Goodlegal
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.