CRM migration

Migrate from Legal Files to Odoo CRM

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

Legal Files logo

Legal Files

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

12 of 12

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

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legal Files is a matter-centric case management platform built around legal matters, parties (clients and opposing counsel), document storage, calendar events, and time/billing entries. Odoo CRM uses a unified crm.lead model for both leads and opportunities, res.partner for contacts and companies, sale.order for quotations, and ir.attachment for documents. The two platforms share a relational structure but differ in how they handle case status, billing, and user ownership. We map Legal Files matters directly to Odoo crm.lead records, Parties to res.partner records, documents to Odoo attachments, and billable hours to sale.order lines. Legal Files custom fields become Odoo custom fields on their respective models. We use Odoo's XML-RPC API for all write operations and export Legal Files data via its SQL Server backend when available. Workflows, document templates, matter-type-specific rules, and Outlook/Gmail email integrations do not migrate — we export their definitions as a rebuild reference for your Odoo admin. Our approach runs a sample migration of 50–100 records first, generates a field-level diff, then executes the full run with a 24–48 hour delta-pickup window to capture in-flight changes during cutover. All timestamps, owner assignments, and relationship links are preserved in the migration.

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 Files logo

Legal Files

What's pushing teams away

  • Reviewer feedback consistently flags the UI as 'outdated' and notes the platform 'may work better with Windows than Mac' — modern Mac-first in-house teams find this friction-heavy.
  • Initial learning curve is described as tricky; onboarding new users takes more time than reviewers expect from a 2020s SaaS product.
  • Enterprise pricing model ($100/user/month + $49/month base fee, billed annually) becomes expensive at scale and lacks transparent lower tiers for smaller teams.
  • Modern integration ecosystem is narrower than newer competitors — packaged connectors to popular SaaS tools are limited compared to native cloud-first platforms.
  • Primary value proposition skews to centralized matter management rather than collaborative or AI-driven workflows, so teams chasing AI demand drafting or generative review features migrate away.

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 Files objects map to Odoo CRM

Each row shows how a Legal Files 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 Files

Matter

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Legal Files matters map directly to Odoo crm.lead records. The crm.lead model serves as both lead and opportunity in Odoo — matter status maps to crm.stage per pipeline. Matter name becomes the opportunity name; original matter open date is preserved as a custom create_date field since Odoo sets CreatedDate at migration time.

Legal Files

Party

maps to

Odoo CRM

res.partner

1:1
Fully supported

Legal Files parties (clients, opposing counsel, witnesses, and other contacts) map to Odoo res.partner records. res.partner handles both individuals and organizations — the party type field determines whether partner is a company or person in Odoo's is_company flag. Multiple addresses per party are handled via res.partner's address fields.

Legal Files

Document

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Legal Files document records (file name, description, file type, create date, uploaded by) map to Odoo ir.attachment records linked to the corresponding crm.lead via res_model='crm.lead' and res_id=matter_id. File binary content is downloaded and re-uploaded to Odoo's filestore. Version history in Legal Files becomes separate attachment records in Odoo.

Legal Files

Billable Entry / Time Record

maps to

Odoo CRM

sale.order.line

1:1
Fully supported

Legal Files time entries (hours, description, billing rate, attorney) map to Odoo sale.order.line records under a sale.order quotation linked to the crm.lead. Each time entry becomes a separate order line with the attorney name stored in a custom field. If Legal Files tracks fixed billing amounts per matter, those map to sale.order.amount_total on the quotation.

Legal Files

Calendar Event

maps to

Odoo CRM

calendar.event

1:1
Fully supported

Legal Files calendar entries (event title, start datetime, end datetime, attendees, linked matter) map to Odoo calendar.event records. The linked crm.lead is connected via the many2many relationship in calendar.event.res_partner_rel. Deadline-type events without a specific time map as all-day calendar.event records in Odoo.

Legal Files

Activity / Task

maps to

Odoo CRM

mail.activity

1:1
Fully supported

Legal Files tasks (to-do items, internal notes, assignments) map to Odoo mail.activity records linked to the crm.lead. Task description becomes the activity note; assigned staff maps to user_id on the activity. Status (pending/complete) maps to the activity's done flag in Odoo.

Legal Files

Custom Field (Matter-level)

maps to

Odoo CRM

Custom Field on crm.lead

1:1
Fully supported

Legal Files user-defined fields per matter type require Odoo custom fields on crm.lead. We use ir.model.fields to create the field with the matching data type (char, selection, float, date, etc.). Selection-type custom fields map value-by-value; date fields map directly. The Legal Files custom field API name is stored as a reference note for your Odoo admin.

Legal Files

Custom Field (Party-level)

maps to

Odoo CRM

Custom Field on res.partner

1:1
Fully supported

Legal Files party custom fields (e.g., bar number, client classification, billing tier) map to res.partner custom fields created via ir.model.fields. Multi-value selection fields in Legal Files become Odoo many2many tags on res.partner. Custom field values are validated against Legal Files' pick-list constraints before insertion.

Legal Files

Matter Responsible Party

maps to

Odoo CRM

crm.lead.user_id

1:1
Fully supported

Legal Files assigns a responsible attorney or staff member per matter. We map this to crm.lead.user_id by resolving the Legal Files user email against Odoo res.users.email. Unmatched attorneys are flagged before migration; you can assign them to an Odoo user or map them to a fallback salesperson in your Odoo team.

Legal Files

Matter-Party Relationship

maps to

Odoo CRM

crm.lead.partner_id / crm.lead.partner_assigned_id

1:1
Fully supported

Legal Files links parties to matters via a many-to-many relationship (a matter has multiple parties: client, opposing counsel, expert). The primary client party maps to crm.lead.partner_id (the contact on the opportunity). Additional parties are recorded in a custom partner_matter_rel table or as crm.lead.partner_assigned_id for the primary assigned contact.

Legal Files

Billing / Invoice Record

maps to

Odoo CRM

account.move

1:1
Fully supported

If Legal Files generates invoices or cost records, those map to Odoo account.move records in the 'out_invoice' type. Legal Files invoice line items (description, quantity, rate) become account.move.line entries. Odoo Accounting module must be installed for this mapping — if not present, billing data is stored as sale.order records for later conversion.

Legal Files

Email Thread

maps to

Odoo CRM

mail.message

1:1
Fully supported

Legal Files email threads linked to a matter map to Odoo mail.message records on the crm.lead chatter. The sender email address, subject, body (HTML preserved), and timestamp are stored. Attachments within threads become ir.attachment records linked to the mail.message. Inbound mail servers in Odoo can continue threading emails after migration.

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 Files logo

Legal Files gotchas

High

No API — migration requires direct SQL Server database access

High

Document file transfer is separate from database migration

Medium

Email routing rules do not auto-migrate

Medium

Custom field discovery requires schema inspection

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 status to crm.stage mapping requires pipeline configuration before data lands

    Legal Files uses custom status pick-lists per matter type — a litigation matter may use Open/Pending/Trial/Closed while a corporate matter uses Open/In Progress/Closed. Odoo CRM uses crm.stage records scoped to a sales team pipeline. We cannot map matter statuses to Odoo stages until your admin creates the matching stage records in the Odoo CRM pipeline view. If stages are not pre-created, Legal Files status values are stored as a custom field (x_matter_status_raw) and stage mapping runs after your admin confirms the pipeline structure. This sequencing step is the most common cause of delays in Legal Files to Odoo migrations and must be resolved before the full data load runs.

  • Documents require separate filestore handling — binary blobs do not export cleanly

    Legal Files stores documents as binary blobs in its SQL Server backend. Unlike CRM records, document files cannot be queried via a simple field export — they require binary extraction from the database with correct MIME type encoding and file extension preservation. Odoo stores attachments in its filestore directory with a UUID-based naming scheme (ir_attachment.store_fname). We handle this by extracting Legal Files document blobs with their original file names, uploading them to Odoo's filestore via XML-RPC with the correct res_model and res_id references, and regenerating the ir_attachment record for each document. Filestore size must be accounted for in Odoo's storage plan.

  • Responsible attorney resolution by email may fail for inactive Legal Files users

    Legal Files matter records assign a responsible attorney who may be a former employee or an external counsel without an Odoo user account. Owner resolution in our migration works by matching the Legal Files user email to res.users.email in Odoo. If the email does not match an active Odoo user, the crm.lead.user_id is set to a configurable fallback owner (often the admin or a designated migration user). We surface all unresolved owners in a pre-migration report so you can either invite them to Odoo before migration or confirm the fallback assignment policy.

  • Legal Files email-to-matter linking is not a native Odoo feature

    Legal Files' Outlook and Gmail plugins save sent and received emails directly to a matter record with full thread integrity. In Odoo CRM, email threading relies on the incoming mail server configuration (IMAP/SMTP) and the mail.thread model on crm.lead. Emails that exist inside Legal Files as attachment-linked messages will migrate as mail.message records on the crm.lead chatter, but Odoo's inbound mail server cannot automatically thread future emails to those migrated matters unless your admin configures incoming mail servers and the Discuss module for the migrated crm.lead records. Email threading continuity requires post-migration configuration of Odoo's incoming mail server.

  • Billing entries map to sale.order but require Odoo Sales module

    Legal Files billable hours, expense entries, and invoice records map to Odoo sale.order and account.move records. However, these mappings require the Odoo Sales (sale) module and optionally the Odoo Accounting module to be installed in your Odoo instance. If your Odoo deployment is CRM-only without Sales or Accounting, billing data is stored as custom fields on the crm.lead record (x_billable_hours, x_billing_amount) and can be converted to sale.order records later when the Sales module is activated. We confirm module availability during discovery and adjust the mapping accordingly.

Migration approach

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

  1. Discover Legal Files schema and Odoo target configuration

    Before any data moves, we connect to the Legal Files SQL Server database (or export via Legal Files' native export tools) to inventory all matter types, custom field definitions, party roles, document metadata, and billing entry structures. Simultaneously, we inspect your Odoo instance — installed modules, existing crm.lead fields, crm.stage pipeline configuration, and res.partner fields. This produces a schema delta report: what Legal Files fields have direct Odoo equivalents, what requires custom field creation via ir.model.fields, what must be stored as tags or notes, and which Legal Files entities have no Odoo equivalent and will be preserved as custom fields for reference.

  2. Resolve owner and user assignments by email

    Legal Files assigns a responsible attorney and other staff to each matter. We extract all Legal Files user records with email addresses and match them against Odoo res.users.email. Matched users receive their assigned crm.lead records directly. Unmatched users are listed in a pre-migration resolution report — you can invite them to Odoo before migration or designate a fallback user. No record is loaded without a confirmed Odoo owner, preventing orphaned matter assignments in the CRM.

  3. Load parties to res.partner, then matters to crm.lead, then documents to ir.attachment

    We sequence the migration in dependency order: res.partner records (parties) load first since crm.lead records reference them via partner_id. Matters load next as crm.lead records, with stage_id mapped from Legal Files matter_status against your pre-configured crm.stage pipeline. Documents load as ir.attachment records linked to the corresponding crm.lead via res_model='crm.lead' and res_id. Billable entries load as sale.order.line records under sale.order quotations linked to each crm.lead. Each batch is validated for foreign-key integrity and row counts before the next begins.

  4. Run a sample migration with field-level diff

    A representative slice of 50–200 records — spanning different matter types, parties with multiple addresses, documents, and billable entries — migrates first. We generate a field-level diff comparing source Legal Files field values against the destination Odoo record fields. You review the diff to confirm that matter status mapping is correct, custom fields landed in the right places, owner assignments resolved as expected, and document filenames are intact. We iterate the mapping configuration based on your feedback before committing the full migration.

  5. Execute full migration with delta-pickup and one-click rollback

    The full record set loads into your Odoo instance via XML-RPC with batch commits and error logging per record. A delta-pickup window of 24–48 hours runs simultaneously — capturing any Legal Files records created or modified during the migration window so your Odoo CRM reflects the final state at cutover. Our audit log records every insert, update, and skip. If reconciliation fails, one-click rollback removes all migrated records and attachments, returning Odoo to its pre-migration state. We deliver a post-migration reconciliation report showing record counts by entity, skipped records with reasons, and delta records loaded during the pickup window.

Platform deep dives

Context on both ends of the pair

Legal Files logo

Legal Files

Source

Strengths

  • Fully on-premise with data stored directly in Microsoft SQL Server, giving firms complete control over their database
  • Highly customizable by firm administrators without requiring developer assistance
  • Direct Microsoft Outlook email saving into case files is a workflow feature praised across reviews
  • iPad app available for attorneys working outside the office
  • Supports complex litigation case structures with deep matter hierarchies

Weaknesses

  • No public REST API — all data access requires direct SQL Server database queries
  • Desktop-first architecture means no native cloud sync or SaaS deployment model
  • Limited modern integrations compared to cloud-first competitors like Clio
  • Legacy UI is cited less favorably than newer alternatives on modern review platforms
  • Pricing is opaque and requires direct vendor contact, suggesting enterprise-level cost
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. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • 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 Files: Not applicable — no public API exposed.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Legal Files 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 Files to Odoo CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Legal Files to Odoo CRM migrations complete within 48–72 hours of clock time for datasets under 25,000 records across matters, parties, and documents. Complex setups with over 100,000 records, multiple matter types, extensive document versioning, or billing history spanning multiple years extend the timeline to 5–10 days. The longest planning step is configuring the crm.stage pipeline to match your Legal Files matter status pick-lists — this must be done before the data load to avoid post-migration status remapping. A sample migration of 50–100 records runs first and typically takes 2–4 hours for validation before the full run commits.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Legal Files.
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