CRM migration

Migrate from Legal Workspace to Odoo CRM

Field-level mapping, validation, and rollback between Legal Workspace and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Legal Workspace logo

Legal Workspace

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between Legal Workspace and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legal Workspace organizes legal practice data around matters, clients, and documents, with contacts linked to client organizations and time entries attached to matters. Odoo CRM uses res.partner for both individuals and organizations (with a company_type field distinguishing them) and crm.lead for leads and opportunities that can be converted to partner records. The migration maps Legal Workspace client contacts to res.partner records, client organizations to res.partner records with company_type set to 'company', and matters to crm.lead opportunities with stage values that correspond to matter status. We preserve original creation timestamps, assigned attorneys (mapped by email to Odoo users), and document attachments re-uploaded to Odoo attachments. Workflows, document templates, billing rules, and automation triggers do not migrate — these require Odoo-side configuration using Odoo's built-in studio, automated actions, or server actions. The migration runs via Odoo's xmlrpc API with batched imports for large datasets. During migration, we also validate data integrity by cross-checking field lengths, required constraints, and unique identifiers before committing each batch.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Legal Workspace logo

Legal Workspace

What's pushing teams away

  • Single-tier pricing means small firms with junior fee-earners or part-time staff pay full price per seat with no entry tier.
  • UK-centric — features and compliance posture target UK firms; multi-jurisdiction firms may need a more international product.
  • Cannysoft is a smaller vendor — partner/consultant ecosystem is narrower than mainstream legal CRMs (Clio, LEAP, Actionstep).
  • No public API documentation — custom integrations require Cannysoft engagement.
  • Customers needing trust accounting at scale typically combine Legal Workspace with a separate ledger tool, since the platform's billing module focuses on time and fees rather than client account compliance.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Legal Workspace objects map to Odoo CRM

Each row shows how a Legal Workspace object lands in Odoo CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Legal Workspace

Contact (individual)

maps to

Odoo CRM

res.partner

1:1
Fully supported

Legal Workspace individual contacts migrate to Odoo res.partner records with company_type set to 'person'. The email field maps directly to partner email; phone and address fields map to Odoo's standard contact fields. Multiple addresses per contact collapse to the primary address unless child_ids relationships are configured.

Legal Workspace

Client Organization

maps to

Odoo CRM

res.partner

1:1
Fully supported

Legal Workspace client organizations map to res.partner with company_type set to 'company'. The organization name becomes the partner name; industry and employee count map to custom fields or Odoo's industry_id if the selection list is configured. Parent-child organizational hierarchies use Odoo's parent_id field on res.partner.

Legal Workspace

Matter

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Each Legal Workspace matter becomes an Odoo crm.lead opportunity. Matter title maps to crm.lead name; matter description maps to crm.lead description. The assigned attorney maps via email lookup to res.users.id and populates crm.lead user_id. Matter status values map to Odoo CRM stage_id values using a value_mapping table.

Legal Workspace

Matter Status

maps to

Odoo CRM

crm.stage

1:1
Fully supported

Legal Workspace matter status values ('Open', 'Pending Review', 'Closed Won', 'Closed Lost') map to Odoo CRM stage records. Stages are created in Odoo under CRM > Configuration > Stages if they do not exist. Each stage has a name, sequence, and fold flag controlling whether the stage appears collapsed in pipeline view.

Legal Workspace

Time Entry

maps to

Odoo CRM

account.analytic.line

1:1
Fully supported

Legal Workspace billable hours map to Odoo timesheet entries (account.analytic.line) linked to the migrated matter via project_id and task_id if Odoo's timesheet app is active. If the timesheet module is not in use, time entries migrate as custom fields on the crm.lead record for reference and reporting continuity.

Legal Workspace

Document / Attachment

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Documents attached to Legal Workspace matters are downloaded and re-uploaded to Odoo's ir.attachment table. Each attachment stores res_model ('crm.lead') and res_id referencing the migrated matter record. Original filenames and MIME types are preserved; create_date from the source record transfers as attachment create_date.

Legal Workspace

Billing / Invoice Record

maps to

Odoo CRM

account.move

1:1
Fully supported

Legal Workspace invoice records migrate to Odoo account.move entries with move_type='out_invoice' for client invoices. Invoice line items map to account.move.line records linked via product_id. If Odoo accounting is not active, invoice metadata migrates as custom fields on the crm.lead for financial reference.

Legal Workspace

User / Attorney

maps to

Odoo CRM

res.users

1:1
Fully supported

Legal Workspace attorney and staff user records are matched to Odoo res.users by email address. Fields like bar_number, practice_area, and billing_rate migrate as custom fields on res.users since Odoo's standard user model does not include these legal-specific attributes. They preserve historical user data for reporting continuity.

Legal Workspace

Custom Matter Field

maps to

Odoo CRM

ir.model.field (custom)

1:1
Fully supported

Legal Workspace custom fields on matters (e.g., case_number, court_location, opposing_counsel) require pre-creation in Odoo under Settings > Technical > Database Structure > Models before migration. We map each custom field to the corresponding custom field on crm.lead, using field type matching (char, text, date, selection, many2one) from the source schema.

Legal Workspace

Activity Log

maps to

Odoo CRM

mail.message

1:1
Fully supported

Legal Workspace activity entries (calls logged, emails sent, notes added) migrate as Odoo mail.message records linked to the crm.lead via res_model and res_id. Activity type distinguishes between call, email, meeting, and note — mapped to Odoo's mail.activity.type taxonomy for reporting parity.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Legal Workspace logo

Legal Workspace gotchas

Medium

Document templates and custom fields are configuration data, not matter data

Medium

Integrated timer entries and manual time records use different storage paths

High

No public API or developer portal

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • Matter hierarchies and nested relationships do not auto-migrate

    Legal Workspace stores matters with parent-child relationships (related matters, linked cases) that use a recursive structure. Odoo CRM's crm.lead model does not have a native parent_id field for opportunities — hierarchical matter structures collapse to flat opportunity records. We surface all nested matter relationships in the migration plan and recreate them using crm.lead tags or a custom parent_matter_id field that your Odoo admin can configure before the migration runs. This prevents loss of case linkage context.

  • Legal Workspace custom fields require Odoo-side pre-creation

    Odoo requires custom fields to exist on a model before data can populate them. Legal Workspace custom fields on contacts, organizations, and matters (case_number, billing_rate, practice_area, opposing_counsel) must be created in Odoo under Settings > Technical > Database Structure > Models before the migration imports data. We provide a field creation checklist as part of the migration plan so Odoo admins can pre-create the schema. Fields left uncreated in Odoo are skipped and flagged in the migration report.

  • Time entries and billing records need Odoo Accounting active

    Legal Workspace billable time entries map to Odoo's account.analytic.line timesheet model, and invoices map to account.move. These mappings only produce live records if Odoo's Accounting app is installed and configured in your Odoo instance. If the Accounting app is not active, time entries and invoice metadata migrate as custom fields on crm.lead for reference — they do not become functional accounting records and will not appear in Odoo financial reports.

  • Document attachments re-upload to Odoo filestore

    Legal Workspace stores documents in its own file repository. Documents migrate by downloading from Legal Workspace and re-uploading to Odoo's ir.attachment table via the xmlrpc API. File size limits apply (Odoo default 25MB per file; larger files require chunked upload configuration). Inline images in matter notes are extracted and re-hosted as separate attachments with parent_id linking them to the primary document record.

  • Owner and attorney resolution by email is one-directional

    Legal Workspace assigns attorneys and staff to matters by user record. Odoo crm.lead requires a user_id that matches res.users.id. We resolve assignments by matching Legal Workspace user email to Odoo user email. If a Legal Workspace user has no corresponding Odoo account, their assignments are flagged and the matter is assigned to a fallback user you designate. Odoo accounts created after the migration will not retroactively resolve past assignments. This ensures proper responsibility tracking.

Migration approach

Six steps for a successful Legal Workspace to Odoo CRM data migration

  1. Audit Legal Workspace schema and custom fields

    We export the full Legal Workspace object schema — contacts, organizations, matters, custom fields, and document metadata — to identify every field that needs mapping. Custom fields are flagged for Odoo-side pre-creation. The audit report includes field type, pick-list values for selection fields, and relationship cardinality (N:1, N:N) for review before mapping logic is written. We also provide a data sample for manual validation before coding begins.

  2. Create Odoo custom fields and CRM pipeline stages

    Based on the schema audit, we deliver a custom field creation checklist for your Odoo admin. Each custom field on crm.lead and res.partner (case_number, practice_area, billing_rate, etc.) is listed with the target field name, type, and selection values. We also provide stage name mappings for matter status values so your admin can configure the CRM pipeline stages in Odoo before data lands.

  3. Resolve user and attorney assignments by email

    Legal Workspace user records are matched against Odoo res.users by email address. Unmatched users are listed in a pre-migration report with the option to invite them to Odoo first or designate a fallback user. No matter record migrates without a resolved crm.lead user_id — orphan assignments are blocked before the migration run to prevent downstream reporting gaps. This step ensures every opportunity owner is assigned before data is loaded.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–300 records spanning contacts, client organizations, and matters — migrates first. We generate a field-level diff comparing Legal Workspace field values to Odoo field values so you can verify attorney resolution, stage mapping, custom field population, and document attachment count before committing to the full run. This validation step reduces risk of data mismatches and ensures stakeholder confidence before the final load.

  5. Execute full migration with delta-pickup window

    The full dataset migrates in API-batched loads, with parent objects (organizations, contacts) migrating before child objects (matters, time entries) to satisfy Odoo's foreign key constraints. A delta-pickup window captures any records created or modified in Legal Workspace during cutover. All operations are logged in an audit table; one-click rollback reverts Odoo to pre-migration state if reconciliation reveals unexpected gaps. This ensures data completeness and allows a smooth transition without prolonged downtime.

Platform deep dives

Context on both ends of the pair

Legal Workspace logo

Legal Workspace

Source

Strengths

  • Predictable single-price model with all features included.
  • UK-specific GDPR posture and SRA-aligned workflows.
  • Customisable templates, fields, and user permissions out of the box.
  • Integrated time tracking and billing reduce tool sprawl for small firms.
  • Mobile app plus modern browser access for remote work.

Weaknesses

  • Single flat tier — no junior or part-time discount.
  • Smaller vendor; narrower consultant/partner ecosystem.
  • No public API documentation.
  • UK-centric — limited fit for cross-jurisdictional firms.
  • Trust accounting depth is limited versus dedicated legal accounting tools.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Legal Workspace and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Legal Workspace and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Legal Workspace and Odoo CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Legal Workspace: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.

  • Data volume sensitivity

    B

    Legal Workspace doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Legal Workspace to Odoo CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Legal Workspace to Odoo CRM data migrations

Answers to the questions buyers ask most during Legal Workspace to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Legal Workspace to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Legal Workspace to Odoo CRM migrations complete within 48–72 hours of clock time for setups under 25,000 records. Firms with 250,000+ matter and contact records, multiple custom field types, and active document attachment libraries extend to 5–10 days. The longest planning step is Odoo-side custom field creation — if your admin pre-builds the schema before data lands, the import phase runs without pause.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Legal Workspace.
Land in Odoo CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day