CRM migration
Field-level mapping, validation, and rollback between Goodlegal and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Goodlegal
Source
Nutshell
Destination
Compatibility
10 of 10
objects map 1:1 between Goodlegal and Nutshell.
Complexity
BStandard
Timeline
48–72 hours
Overview
Goodlegal organizes legal-service data around document templates, matter records, and client profiles with custom properties tied to contract lifecycle stages. Nutshell is a sales CRM built around People, Companies, Leads, and Deals with a visual pipeline view and tier-gated features starting at the Foundation plan ($13/user/month). The migration carries all standard CRM objects — contacts, companies, deals, activities, tasks, and custom fields — directly into Nutshell's schema. Legal-specific Goodlegal fields (matter type, contract stage, renewal date, billing arrangement) become Nutshell custom fields on the Person and Company records. We use Nutshell's JSON-RPC API over HTTPS with basic-auth API keys to write records. Automations, document templates, and matter workflows do not migrate; we deliver an export-of-logic brief for your Nutshell admin to rebuild as Nutshell Sequences or Workflow Rules. A sample migration runs first with a field-level diff; a delta-pickup window (24–48 hours) captures in-flight changes during cutover. All records retain their original creation timestamps, last-modified dates, and owner IDs; the audit log tracks each write operation and enables one-click rollback if needed.
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 Goodlegal 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.
Goodlegal
Contact / Client Profile
Nutshell
Person
1:1Goodlegal contact records map to Nutshell Person records. Nutshell Person holds name, email, phone, job title, address, and social URLs. Goodlegal contact roles per matter are preserved as a custom Person field (Client_Role__c) for reference. This mapping also preserves the original creation date and source system ID as custom fields for audit and reconciliation.
Goodlegal
Company / Firm
Nutshell
Company
1:1Goodlegal company/firm records map 1:1 to Nutshell Company records. Fields including name, domain, industry, employee count, and billing address map to their Nutshell equivalents. Nutshell Company supports custom fields for legal-specific attributes. All imported companies retain their original website URL and any assigned tags, which are stored in a custom text field for reporting.
Goodlegal
Matter / Case Record
Nutshell
Lead / Deal
1:1Goodlegal matter records do not have a direct Nutshell equivalent. Matters with an active billing relationship map to Nutshell Leads (for prospective clients) or Deals (for active client engagements). The matter name becomes the Lead/Deal name; matter stage maps to a custom pick-list field (Matter_Stage__c).
Goodlegal
Custom Fields (Matter)
Nutshell
Custom Fields (Company / Person / Lead)
1:1Goodlegal custom fields on matter records (contract type, billing arrangement, renewal date, practice area, jurisdiction) require new Nutshell custom fields. Multi-select pick-list values in Goodlegal are stored as comma-separated strings in Nutshell custom text fields or as custom pick-lists if value lists are known.
Goodlegal
Document / Contract File
Nutshell
Activity Attachment (Company / Person / Lead)
1:1Goodlegal documents are re-hosted as file attachments on the mapped Nutshell Company or Person record. Nutshell attaches files to any CRM record via its Activity model. File size limits and supported formats are applied per Nutshell's attachment constraints. During migration, each file is verified for size compliance, and oversized files are flagged for manual upload.
Goodlegal
Activity / Time Entry
Nutshell
Activity / Task
1:1Goodlegal time entries and activity logs map to Nutshell Activities (calls, emails, meetings) and Tasks. Original timestamps and owner assignments are preserved. Billable time amounts map to a custom number field (Billable_Hours__c) on the Activity record. If a Goodlegal activity lacks a direct Nutshell type, it is stored as a generic Task with a type label in a custom field for later review.
Goodlegal
User / Attorney
Nutshell
User
1:1Goodlegal user accounts are resolved by email match against Nutshell users. Unmatched users are flagged before migration; your Nutshell admin invites them first or assigns records to a fallback owner. Goodlegal role-based permissions do not transfer. All resolved owners retain their original Goodlegal display names in a custom field for reference.
Goodlegal
Billing Record / Invoice
Nutshell
Custom Field on Company
1:1Goodlegal invoices and billing records have no Nutshell equivalent. Outstanding balance, billing arrangement type, and last invoice date migrate as read-only custom fields on the Company record for reference. Financial transaction history is preserved in Goodlegal's export. These fields appear in the Company detail view but do not trigger any Nutshell automations or workflow rules.
Goodlegal
Tag / Practice Area Label
Nutshell
Custom Field (Person / Company)
1:1Goodlegal practice-area tags and matter labels are collected and mapped to a custom pick-list field (Practice_Area__c) on Person and Company records. Duplicate tags are deduplicated; values with no Nutshell equivalent are preserved in a custom text field. During import, each distinct tag is validated against the allowed pick-list values; any overflow is stored in the fallback text field for later cleanup.
Goodlegal
Opposing Counsel / Third-Party Contact
Nutshell
Person (unlinked)
1:1Opposing counsel and third-party contacts from Goodlegal matter records migrate as Nutshell Person records without a primary Company link. The source matter reference is stored in a custom field (Source_Matter__c) for traceability. These contacts can be linked later to a placeholder ThirdParty Company record if your team wants to maintain a grouped view in the CRM.
| Goodlegal | Nutshell | Compatibility | |
|---|---|---|---|
| Contact / Client Profile | Person1:1 | Fully supported | |
| Company / Firm | Company1:1 | Fully supported | |
| Matter / Case Record | Lead / Deal1:1 | Fully supported | |
| Custom Fields (Matter) | Custom Fields (Company / Person / Lead)1:1 | Fully supported | |
| Document / Contract File | Activity Attachment (Company / Person / Lead)1:1 | Fully supported | |
| Activity / Time Entry | Activity / Task1:1 | Fully supported | |
| User / Attorney | User1:1 | Fully supported | |
| Billing Record / Invoice | Custom Field on Company1:1 | Fully supported | |
| Tag / Practice Area Label | Custom Field (Person / Company)1:1 | Fully supported | |
| Opposing Counsel / Third-Party Contact | Person (unlinked)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
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
Extract full Goodlegal dataset via REST API
FlitStack AI authenticates to Goodlegal using OAuth 2.0 and exports all contacts, companies, matters, custom field definitions, activity records, and user accounts. We pull field metadata including pick-list values, required flags, and custom field types to build the complete schema map before writing to Nutshell. Any attachment URLs are identified for re-hosting. A pre-migration audit report is delivered showing record counts per object, custom field inventory, and data-quality flags (missing email, duplicate records, null required fields).
Configure Nutshell custom fields and plan the object hierarchy
Before data lands, your Nutshell admin creates the custom fields identified in the audit (Matter_Stage__c, Practice_Area__c, Billing_Arrangement__c, Client_Role__c, Source_Matter__c, Renewal_Date__c, Contract_Value__c, Billable_Hours__c, Jurisdiction__c, Original_Create_Date__c, Source_System_ID__c). We deliver a setup checklist with field names, types, and pick-list values so the Nutshell side is ready before validation runs. Nutshell's Company must exist before Person records that reference it, and Person must exist before Deals that reference contacts — we define the load order from this dependency chain.
Resolve users and owners by email match
Goodlegal attorney and user accounts are matched against Nutshell users by email address. Unmatched users are flagged with a resolution list — either invite them to Nutshell first or assign their records to a designated fallback owner before migration. No record lands in Nutshell without a valid userId. Goodlegal role-based permissions and matter-assignment rules are not transferable and are documented in the rebuild brief instead.
Run sample migration with field-level diff
A representative slice of 100–500 records — spanning contacts, companies, matters, and activities — migrates to Nutshell first. We generate a field-level diff comparing source values to destination values for every mapped field, including custom fields, pick-list values, and attachment URLs. You review the diff and confirm that matter-stage mapping, company-person linking, and owner resolution meet expectations before the full run is scheduled.
Execute full migration with delta-pickup window
The full dataset loads into Nutshell via the JSON-RPC API. A delta-pickup window (typically 24–48 hours after the primary load) captures any records created or modified in Goodlegal during the cutover period. Nutshell's API rate limits are managed via retry logic with exponential back-off. An audit log records every operation — create, update, attach — with source record ID and timestamp. If reconciliation identifies discrepancies, one-click rollback reverts the Nutshell instance to its pre-migration state.
Platform deep dives
Goodlegal
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 Goodlegal 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
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 Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Goodlegal 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 Goodlegal
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.