CRM migration
Field-level mapping, validation, and rollback between Legl and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Legl
Source
HubSpot
Destination
Compatibility
10 of 10
objects map 1:1 between Legl and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
Legl is a legal-operations platform built around law-firm compliance workflows: client onboarding, AML risk assessments, sanctions screening, matter management, and internal escalation workflows. Its REST API exposes businesses, contacts, engage requests, risk assessments, payments, and organization-level settings as discrete endpoints. HubSpot models client relationships as contacts and accounts, matters as deals with pipeline stages, and compliance history as custom properties on those objects or as HubSpot custom objects (available on Sales Hub Pro and Enterprise tiers). The migration extracts records from Legl's API endpoints, maps each Legl entity to its nearest HubSpot equivalent, creates HubSpot custom properties for Legl-specific fields (risk level, assessment status, reviewer assignments), and writes records in HubSpot's bulk import format. Workflow definitions from Legl — including AML escalation triggers, onboarding state machines, and CDD review sequences — do not move; we export their JSON structure as a rebuild reference for HubSpot Workflows. Our extraction uses Legl's sandbox environment first to validate field coverage before the production export runs.
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 HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Legl
Legl Business
HubSpot
HubSpot Company
1:1Legl Business maps directly to HubSpot Company. Business name becomes Company name, domain maps to website, and Legl address fields map to HubSpot address properties. Legl business IDs are stored in a custom field on the HubSpot Company for traceability and delta-run de-duplication.
Legl
Legl Contact
HubSpot
HubSpot Contact
1:1Legl Contact maps to HubSpot Contact. The contact's associated Legl Business ID resolves to a HubSpot Company lookup by matching the Legl business_id to the stored Source_System_ID__c on the HubSpot Company record. Legl's legal-specific contact properties (bar_license, jurisdiction_codes) migrate as HubSpot custom properties.
Legl
Legl EngageRequest
HubSpot
HubSpot Deal
1:1Legl EngageRequest represents a matter or client engagement with its own status, type, and reviewer assignment. We map EngageRequest to HubSpot Deal, using Legl's request_name as the deal name, Legl status as a custom deal property, and the reviewer_id as a HubSpot owner lookup by email match against HubSpot users.
Legl
Legl RiskAssessment
HubSpot
HubSpot Company (custom properties)
1:1Legl RiskAssessment is a compliance record linked to a Legl Business. The assessment status, risk level, assessment date, and reviewer are stored as custom properties on the associated HubSpot Company. The Legl risk_assessment_id is preserved as Source_System_ID__c for audit purposes.
Legl
Legl Payment
HubSpot
HubSpot Company (custom properties)
1:1Legl Payment records — payment ID, amount, currency, status, and payment date — are written as custom properties on the HubSpot Company linked to the Legl Business. Multiple payments per business are stored as comma-separated values or as a separate Payment custom object on Enterprise-tier HubSpot accounts.
Legl
Legl Workflow
HubSpot
No equivalent in HubSpot
1:1Legl Workflows (internal escalations, onboarding state machines, CDD review sequences) have no direct HubSpot equivalent. We export the workflow definitions as JSON and deliver a workflow-definition export as a rebuild reference for HubSpot Workflows. The workflow logic itself is not migrated automatically.
Legl
Legl Organisation
HubSpot
HubSpot Company (firm-level properties)
1:1Legl Organisation is a firm-level entity storing the law firm's name, industry, employee count, and AML policy configuration. These map as custom properties on the HubSpot Company representing the firm itself. Legl Organisation ID is stored as Source_System_ID__c on the firm-level Company record.
Legl
Legl EngageRequest reviewer assignment
HubSpot
HubSpot Deal Owner (user lookup)
1:1Legl stores a reviewer_id on EngageRequest. We resolve reviewer_id to a HubSpot user by matching the reviewer's email (retrieved via a Legl User or Organisation endpoint lookup) against HubSpot users. Unmatched reviewers are flagged before migration so the team can invite them to HubSpot or assign a fallback owner.
Legl
Legl SanctionsReport
HubSpot
HubSpot Company (custom properties)
1:1Legl SanctionsReport records store sanctions‑screening outcomes for a business, including the check date, overall status (cleared or flagged), and a unique report ID. These fields migrate as custom properties on the linked HubSpot Company — for example, sanctions_check_date__c, sanctions_status__c, and sanctions_report_id__c — so compliance history is visible to any HubSpot user with company access. The Legl sanctions_report_id is kept as a reference field for audits and delta sync.
Legl
Legl BankAccount
HubSpot
HubSpot Company (custom properties)
1:1Legl BankAccount stores a business's payment bank account details. These migrate as custom properties on the HubSpot Company. HubSpot has no native bank account object, so Legl bank account data is stored in a dedicated set of custom fields (account_number masked, bank_name, account_type) flagged as sensitive.
| Legl | HubSpot | Compatibility | |
|---|---|---|---|
| Legl Business | HubSpot Company1:1 | Fully supported | |
| Legl Contact | HubSpot Contact1:1 | Fully supported | |
| Legl EngageRequest | HubSpot Deal1:1 | Fully supported | |
| Legl RiskAssessment | HubSpot Company (custom properties)1:1 | Fully supported | |
| Legl Payment | HubSpot Company (custom properties)1:1 | Fully supported | |
| Legl Workflow | No equivalent in HubSpot1:1 | Fully supported | |
| Legl Organisation | HubSpot Company (firm-level properties)1:1 | Fully supported | |
| Legl EngageRequest reviewer assignment | HubSpot Deal Owner (user lookup)1:1 | Fully supported | |
| Legl SanctionsReport | HubSpot Company (custom properties)1:1 | Fully supported | |
| Legl BankAccount | HubSpot Company (custom properties)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.
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
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Validate Legl API coverage and extract schema in sandbox
Before any production data moves, we connect to Legl's sandbox environment at api.sandbox.legl.com using your Legl API credentials. We enumerate all accessible endpoints — businesses, contacts, engage_requests, risk_assessments, payments, workflows, and organisation — and pull a representative record sample from each. This validates that the Legl API returns all expected fields and confirms the pagination strategy needed for large result sets under the 3,600 req/hour rate limit.
Design HubSpot schema for Legl compliance data
We create the HubSpot custom properties required for Legl data on the Contact, Company, and Deal objects, and create any HubSpot custom objects if your HubSpot tier supports them. Custom property names follow HubSpot's camelCase convention (risk_assessment_status__c, payment_amount__c, onboarding_history__c). We document each property's data type, pick-list values, and field-level visibility settings, and we confirm your HubSpot tier before committing to the custom-object vs. custom-property approach.
Resolve Legl reviewer and user IDs to HubSpot owners
Legl stores a reviewer_id on EngageRequests and an organisation_id on the Organisation record. We resolve these to HubSpot users by matching reviewer email addresses (retrieved via a Legl user lookup) against HubSpot user emails. Unresolved reviewers are flagged with a fallback owner assignment before migration so no HubSpot Deal lands without an owner. This step prevents orphaned records and ensures your HubSpot pipeline is fully assignable after cutover.
Run sample migration with field-level diff
A representative slice of Legl records — typically 100–500 across contacts, companies, engage requests, and risk assessments — migrates first. We generate a field-level diff showing each Legl source field alongside the mapped HubSpot field and its destination value. You verify that Legl risk assessment statuses, engage request types, payment amounts, and onboarding history land correctly in HubSpot before we commit to the full run.
Execute full migration with delta-pickup window
The full Legl export runs against production, respecting the API rate limit with throttling. A delta-pickup window of 24–48 hours captures any Legl records modified or created during the cutover period. All operations are logged in an audit trail, and one-click rollback is available if reconciliation against the Legl source data reveals discrepancies. We deliver the workflow-definition JSON export as a separate file for your HubSpot admin to use as a rebuild reference.
Platform deep dives
Legl
Source
Strengths
Weaknesses
HubSpot
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 HubSpot.
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 HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Legl to HubSpot 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 HubSpot
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.