CRM migration
Field-level mapping, validation, and rollback between Legl and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Legl
Source
Nutshell
Destination
Compatibility
10 of 12
objects map 1:1 between Legl and Nutshell.
Complexity
BStandard
Timeline
24–48 hours
Overview
Legl is a legal-practice management platform centered on businesses, contacts, matters, documents, payments, and risk assessments — with a JSON-RPC API that returns structured data at endpoints like /listBusinesses, /listContacts, and /listMatters. Nutshell is an SMB CRM that organizes records into People, Companies, Leads, Deals, and Activities with custom fields available per entity type. The two platforms share no native equivalent for Legl's matter lifecycle stages, document repositories, payment ledgers, or risk-assessment objects. We map Legl's Business and Contact records to Nutshell's Company and Person objects respectively; Legl matters map to Nutshell Deals with a custom matter-type field; documents and payments are stored as custom fields and Activity notes; risk assessments are preserved as custom fields on the relevant Deal. Workflows, automations, and document templates in Legl do not migrate — they must be rebuilt in Nutshell or handled outside the CRM. Our migration engine reads from Legl's REST API under a scoped token and writes to Nutshell via its JSON-RPC API, respecting Legl's 3,600 requests-per-hour sustained rate limit by batching reads. A sample migration of 100–300 records runs first with field-level diff output before the full run commits.
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 Legl 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.
Legl
Business
Nutshell
Company
1:1Legl Business maps to Nutshell Company. The Legl /listBusinesses endpoint returns name, domain, address, and contact count. We map name to Nutshell's name field, domain to website, and the Legl business ID to a custom external_id field for traceability. Primary address components split into Nutshell's address fields.
Legl
Contact
Nutshell
Person
1:1Legl Contact maps to Nutshell Person. First name, last name, email, phone, and job title transfer directly. Nutshell Persons link to the parent Company record via a company association field — we resolve this by matching on the Legl business_id that owns each contact. Unmatched contacts land as Leads in Nutshell pending resolution.
Legl
Matter
Nutshell
Deal
1:1Legl Matters have no direct Nutshell equivalent — Nutshell Deals track sales opportunities, not legal matters. We map matters to Nutshell Deals, preserving the matter name as Deal name, the matter amount or estimated value as Deal amount, and the matter stage (open, in-progress, closed) as Deal stage. A custom pick-list field (Matter_Type__c) identifies which Nutshell Deals originated from Legl matters.
Legl
Matter Stage
Nutshell
Deal Stage
1:1Legl matter lifecycle stages (Intake, Active, Awaiting-Info, Closed-Won, Closed-Lost) map value-by-value to Nutshell Deal stage names. We define the stage mapping at migration time based on the firm's current stage labels in Legl. Stage-transition timestamps from Legl are stored as custom datetime fields on the Nutshell Deal for audit continuity.
Legl
Document
Nutshell
Activity + Custom Field
many:1Legl documents (metadata + binary URL) merge into two Nutshell destinations: document name and Legl storage URL go into a custom URL field (Document_Link__c) on the linked Deal; a Nutshell Activity of type Note records the document type, upload date, and uploader name. Large document archives are exported to a ZIP with folder structure matching the Legl matter tree and stored externally, with the archive link captured in Nutshell.
Legl
Payment
Nutshell
Activity
many:1Legl payment records from /listPayments — amount, date, payment method, status — are written as Nutshell Activity notes on the related Deal. The note format is 'PAYMENT: [amount] [currency] on [date] via [method] — [status]'. Full payment history for a client is also aggregated into a custom text area field (Payment_Summary__c) on the parent Company record.
Legl
RiskAssessment
Nutshell
Custom Field on Deal
1:1Legl RiskAssessments are legal-compliance records with templates, statuses, and PDF outputs. Nutshell has no native equivalent. We create a custom multi-select field (Risk_Assessment_Status__c) on the Deal and store the latest assessment date, template name, and status. The PDF is re-uploaded as a Nutshell file attachment and linked via a custom URL field (Risk_Assessment_PDF__c).
Legl
BankAccount
Nutshell
Custom Field on Company
1:1Legl /listBankAccounts exposes client or firm bank account records. Nutshell has no native banking field. Bank account references are stored as a custom text field (Bank_Account_Ref__c) on the Company record for reference — actual banking integrations are handled outside Nutshell.
Legl
EngageRequest
Nutshell
Activity
1:1Legl EngageRequests from the /listEngageRequests endpoint represent compliance or onboarding workflow instances. These map to Nutshell Activities with type Note, capturing the request type, status, reviewer, and timestamps. The activity is linked to the parent Business or Matter Deal. This includes compliance approvals, client onboarding steps, and other workflow-driven requests from Legl.
Legl
Custom Fields on Business
Nutshell
Custom Fields on Company
1:1Any Legl Business custom fields not covered by standard mappings require Nutshell custom fields created before migration. We generate a custom-field creation plan per Legl field type — text, number, date, pick-list — and map the field values during the migration run. Fields with pick-list values in Legl are recreated as pick-lists in Nutshell.
Legl
Custom Fields on Contact
Nutshell
Custom Fields on Person
1:1Legl contact custom properties (beyond name, email, phone) map to Nutshell Person custom fields. Type-aware mapping applies: Legl text fields become Nutshell text fields, numeric properties become number fields, and date fields are preserved as date fields. Multi-select properties map to Nutshell multi-select where supported.
Legl
Owner / User
Nutshell
User
1:1Legl stores an owner_id on matters and contacts. Owner resolution is by email match against Nutshell users. If a Legl owner email has no matching Nutshell user account, the record is assigned to a fallback Nutshell user designated by the firm, and the original owner ID is preserved in a custom text field (Original_Owner_ID__c).
| Legl | Nutshell | Compatibility | |
|---|---|---|---|
| Business | Company1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Matter | Deal1:1 | Fully supported | |
| Matter Stage | Deal Stage1:1 | Fully supported | |
| Document | Activity + Custom Fieldmany:1 | Fully supported | |
| Payment | Activitymany:1 | Fully supported | |
| RiskAssessment | Custom Field on Deal1:1 | Fully supported | |
| BankAccount | Custom Field on Company1:1 | Fully supported | |
| EngageRequest | Activity1:1 | Fully supported | |
| Custom Fields on Business | Custom Fields on Company1:1 | Fully supported | |
| Custom Fields on Contact | Custom Fields on Person1:1 | Fully supported | |
| Owner / User | User1: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.
Legl gotchas
Beta API endpoints carry schema stability risk
Sandbox access requires direct support contact
Payment checkout URLs reference external Stripe sessions
AML audit dashboards require real-time data from connected PMS
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
Audit Legl API data and design Nutshell custom fields
FlitStack AI connects to Legl under a scoped read token and walks the API endpoints — /listBusinesses, /listContacts, /listMatters, /listDocuments, /listPayments, /listRiskAssessments — to build a data inventory. We count records per object type, identify custom fields on each entity, and assess document volume. Simultaneously, we design the Nutshell custom fields required to carry over legal-matter attributes: Matter_Type__c, Billing_Rate__c, Risk_Assessment_Status__c, Document_Link__c, Payment_Summary__c, and others. We deliver a custom-field creation plan for your Nutshell admin to execute before the migration run.
Resolve Legl owners to Nutshell users by email
Legl stores an owner_id on matters and contacts. We extract all unique owner emails from Legl and match them against Nutshell user accounts. Owners with no matching Nutshell email are flagged before migration — your team either creates Nutshell accounts for them or designates a fallback owner. No record migrates without a resolved Nutshell owner, and the original Legl owner ID is preserved in Original_Owner_ID__c for audit purposes.
Run a sample migration with field-level diff
A representative sample of 200–500 records — spanning Business, Contact, Matter, Payment, and RiskAssessment objects — migrates first. We generate a field-level diff showing the source value from Legl and the destination value written to Nutshell for every mapped field. You verify that matter stages map correctly to Nutshell Deal stages, document links resolve, and owner resolution is accurate before the full run commits. This is also when you confirm which Nutshell fallback owner receives unresolved records.
Execute full migration with batched Legl API reads and delta window
The full migration runs in phases: Businesses → Companies first (to satisfy Nutshell's parent-company dependency), then Contacts → Persons, then Matters → Deals with stage and matter-type mapping applied per value map. Document metadata migrates as Activity notes with Document_Link__c populated; document binaries re-upload as Nutshell file attachments. Payments write as Activity notes with payment-summary fields updated on the Deal. A 24–48 hour delta window follows the initial load, capturing any Legl records modified during cutover. All operations are logged in an audit trail, and one-click rollback is available if reconciliation fails.
Platform deep dives
Legl
Source
Strengths
Weaknesses
Nutshell
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 Legl and Nutshell.
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
Legl: 3600 requests per hour sustained, burst rate of 120 requests per minute.
Data volume sensitivity
Legl 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 Legl to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Legl 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 Legl
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.