CRM migration

Migrate from Legal Case Tracker to Odoo CRM

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

Legal Case Tracker logo

Legal Case Tracker

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between Legal Case Tracker and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legal Case Tracker organizes work around matters (cases), clients, documents, time entries, and billing line items tied to legal workflows. Odoo CRM models the same universe as Leads, Opportunities, and Contacts (res.partner) with an optional Project or Timesheet module for billable tracking. The migration carries every case, contact, document attachment, and time record into Odoo CRM using Odoo's XML-RPC API, creating crm.lead records for new intake and crm.opportunity records for active matters with stage names matching your Legal Case Tracker status labels. Custom fields on cases map to Odoo custom Char, Selection, or Many2one fields depending on datatype. Odoo has no native legal billing construct—trust account ledgers, client retainers, and billing invoices must be rebuilt in Odoo Accounting. Automation rules, template documents, and matter-specific workflow triggers do not migrate and need manual reconstruction in Odoo's Studio or server actions. The migration also preserves original creation timestamps, assignment histories, and any linked notes so that reporting continuity is maintained. Additionally, Odoo CRM's built-in email integration can be configured to automatically log client communications against each opportunity, replacing Legal Case Tracker's email tie functionality.

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 Case Tracker logo

Legal Case Tracker

What's pushing teams away

  • Limited advanced features as firms scale — analytics, AI automation, and workflow customisation are minimal compared to mid-market alternatives, prompting migration when firms grow beyond basic case tracking.
  • Reporting and customisation gaps frustrate users who need firm-wide dashboards, custom fields, or deeper customisation; some resort to third-party tools that the platform does not integrate with cleanly.
  • Customer support responsiveness is inconsistent according to user reports, with some issues requiring extended ticket queues rather than direct resolution.
  • Document export and API access are restricted on lower tiers, limiting data portability and making migrations harder when firms decide to switch platforms.

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

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

Case/Matter

maps to

Odoo CRM

crm.lead / crm.opportunity

1:1
Fully supported

Legal Case Tracker matters map to crm.lead for new-intake cases and crm.opportunity for active matters in the pipeline. Odoo requires a crm.lead to be converted to crm.opportunity via the Convert to Opportunity wizard, which creates the opportunity and links it to a res.partner contact. The mapping plan defines which Legal Case Tracker status values route to lead versus opportunity.

Legal Case Tracker

Client/Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Client records in Legal Case Tracker map directly to res.partner in Odoo. Odoo res.partner serves both the CRM and the accounting modules, so contacts created here are immediately available for invoicing and purchase workflows. Legal Case Tracker contact roles (Attorney, Client, Opposing Counsel) map to res.partner categories or custom tags in Odoo.

Legal Case Tracker

Document/Attachment

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Document files attached to Legal Case Tracker matters are downloaded and re-uploaded as ir.attachment records in Odoo. The res_model field is set to crm.lead or crm.opportunity depending on the target object, and res_id references the migrated record's integer ID. Files are stored in Odoo's filestore directory; large documents (over 25MB) may require Odoo Document module or external storage configuration.

Legal Case Tracker

Time Entry

maps to

Odoo CRM

account.analytic.line

1:1
Fully supported

Billable hours logged against Legal Case Tracker matters map to account.analytic.line records when Odoo Timesheet module is active. Each time entry becomes a timesheet line linked to the migrated crm.opportunity via the project_id and task_id context. Non-billable entries map to internal notes or tasks. Original date, duration, description, and user reference are preserved.

Legal Case Tracker

Expense

maps to

Odoo CRM

hr.expense

1:1
Fully supported

Expenses incurred against Legal Case Tracker matters map to hr.expense records linked to the corresponding opportunity. Vendor name, amount, date, and description transfer directly. Odoo Expense approval workflow must be configured separately to route expenses through your firm's approval chain.

Legal Case Tracker

Status/Stage

maps to

Odoo CRM

crm.stage

1:1
Fully supported

Legal Case Tracker status labels (Open, Pending Review, Closed Won, Closed Lost) map value-by-value to crm.stage records. Each stage in Odoo has a sequence integer and a probability percentage that applies to the opportunity's forecast. Stage-entered timestamps from Legal Case Tracker are preserved as custom datetime fields on the opportunity.

Legal Case Tracker

Custom Field (Text/Number/Date)

maps to

Odoo CRM

ir.model.fields (Char/Integer/Float/Date)

1:1
Fully supported

Legal Case Tracker custom fields on matters map to Odoo custom fields created via Settings > Technical > Custom Fields. Field type determines the Odoo field_type: short text maps to Char, long text to Text, numbers to Integer or Float, dates to Date. A migration-time script creates each custom field on the crm.lead or crm.opportunity model before data loads.

Legal Case Tracker

Custom Field (Dropdown/Picklist)

maps to

Odoo CRM

ir.model.fields (Selection)

1:1
Fully supported

Legal Case Tracker picklist custom fields with defined value options map to Odoo Selection fields. The selection options are encoded as a Python list of tuples in the field definition: [('value1','Label 1'),('value2','Label 2')]. If a picklist value has no Odoo counterpart, it is preserved as-is and a note is added to the migration plan for manual review.

Legal Case Tracker

Custom Field (Contact Lookup)

maps to

Odoo CRM

ir.model.fields (Many2one)

1:1
Fully supported

Legal Case Tracker lookup fields referencing contacts map to Odoo Many2one fields pointing to res.partner. The field definition requires the comodel_name set to 'res.partner'. During migration, the contact ID from Legal Case Tracker is translated to the corresponding res.partner ID generated in Odoo.

Legal Case Tracker

Practice Area / Category

maps to

Odoo CRM

crm.tag / crm.team

many:1
Fully supported

Legal Case Tracker practice-area tags and matter categories merge into Odoo's tag system (crm.tag) and sales team assignments (crm.team). Multiple Legal Case Tracker categories on one matter become multiple crm.tag records on the opportunity. Team assignment maps based on attorney owner in Legal Case Tracker—each unique owner becomes a crm.team or is assigned as the opportunity's user_id.

Legal Case Tracker

Billing Invoice Line

maps to

Odoo CRM

account.move.line (future)

1:1
Fully supported

Legal Case Tracker invoice line items tied to matters have no Odoo CRM equivalent. These records must be rebuilt using Odoo Accounting (account.move) once the CRM migration is complete. FlitStack preserves the invoice data as reference records in a holding table so your accounting team can reconstruct invoices in Odoo.

Legal Case Tracker

User / Attorney

maps to

Odoo CRM

res.users

1:1
Fully supported

Legal Case Tracker users (attorneys, paralegals, staff) map to res.users records in Odoo. User matching is done by email address. If a Legal Case Tracker user has no corresponding Odoo user, they are flagged in the migration plan—their cases are assigned to a fallback user (typically the admin) and their name is stored in a custom x_original_owner field for reference.

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 Case Tracker logo

Legal Case Tracker gotchas

High

Time entries may use non-standard duration formats

High

No native document export endpoint exists

Medium

Role-based access flags may disrupt user assignment after migration

Medium

Calendar events without a parent-case link import as orphaned records

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

  • Odoo requires crm.lead-to-opportunity conversion for active matters

    Legal Case Tracker matters with status Active or Open must land as crm.opportunity in Odoo, but Odoo's native flow creates opportunities from leads via the Convert to Opportunity wizard. FlitStack AI creates all migrated matters as crm.lead records first, then runs a bulk conversion script that calls the convert_opportunity() method on each record, assigning the res.partner link and creating the opportunity in the correct pipeline stage. Without this step, matters appear as unconvertable leads in Odoo CRM's kanban view, breaking the pipeline visualization your team expects after go-live.

  • Odoo ir.attachment res_model must be set correctly to survive record deletion

    When migrating document attachments from Legal Case Tracker, FlitStack sets ir.attachment.res_model to 'crm.lead' or 'crm.opportunity' and res_id to the migrated record's integer ID. If the target record is deleted in Odoo after migration, orphaned attachments enter a dangling state. We preserve the original Legal Case Tracker file URLs in a reference field so attachments can be re-linked if a record is inadvertently deleted and restored from a backup. Odoo's document module or external DMS should be configured before heavy document loads to avoid filestore bloat.

  • Custom fields on crm.lead require model definition before bulk record creation

    Odoo's ir.model.fields must exist on the target model before records referencing those fields can be saved. FlitStack creates all custom fields (Char, Selection, Integer, Date, Many2one) on the crm.lead model during the pre-migration schema phase. For Many2one custom fields pointing to res.partner, the field definition must include comodel_name='res.partner' and ondelete='set null' to avoid constraint violations if a referenced contact is deleted. Fields created after data loads require a full data reload for those columns to populate.

  • Odoo timesheet module must be installed for billable hour migration

    Legal Case Tracker time entries map to account.analytic.line records, but this table only exists when the Odoo Timesheet module (hr_timesheet) is installed and active. If the Timesheet module is not enabled in your Odoo instance, FlitStack stores time entry data in a holding table (x_lct_time_entry) as JSON and provides a SQL migration script to convert those records into account.analytic.line rows once the Timesheet module is activated. Activating the module post-migration requires Odoo Enterprise or a partner-assisted Community installation.

  • Odoo stage probabilities affect forecast reporting but Legal Case Tracker has no equivalent

    Each crm.stage record in Odoo carries a probability percentage that feeds the Forecast widget in the pipeline view. Legal Case Tracker does not store probability by status. FlitStack assigns default probabilities based on industry-standard stage progressions (New 10%, Qualified 20%, Proposal 50%, Negotiation 80%, Won 100%, Lost 0%) and stores the original Legal Case Tracker stage name in a custom field for reporting continuity. These values are adjustable in Odoo Settings > CRM > Stages before or after migration without affecting the underlying data.

Migration approach

Six steps for a successful Legal Case Tracker to Odoo CRM data migration

  1. Audit Legal Case Tracker data model and extract records via API

    FlitStack AI connects to Legal Case Tracker's REST API using OAuth 2.0 credentials provided during onboarding. We export all cases, contacts, documents, time entries, and custom field definitions in a single pass. The export script logs the total record count per object, identifies records with missing required fields, and flags custom field definitions with non-standard datatypes for mapping review before the Odoo schema is built.

  2. Create Odoo custom fields and pipeline stages

    Before any data moves, FlitStack creates all required custom fields on the crm.lead and crm.opportunity models using Odoo's ir.model.fields API via XML-RPC. Each Legal Case Tracker custom field generates a corresponding Odoo field with the correct field_type and, for Selection fields, the full list of options. crm.stage records are created to match Legal Case Tracker status labels, with sequence numbers and probability values assigned. The Odoo schema plan is shared with your admin for review before step three begins.

  3. Create Odoo users and map attorneys by email

    Legal Case Tracker users are matched to Odoo res.users by email address. For each user, FlitStack verifies the res.users record exists; if not, the case owner is set to the migration admin and the original Legal Case Tracker owner ID is stored in a custom reference field. Sales teams (crm.team) are created based on Legal Case Tracker practice-area groupings or department assignments, and team members are linked to corresponding Odoo users.

  4. Migrate contacts to res.partner and cases to crm.lead

    Client contacts load into res.partner first since crm.lead records depend on the partner_id foreign key. Cases load as crm.lead records with all standard fields (name, description, stage_id, user_id) and custom fields populated from Legal Case Tracker. Document attachments download from Legal Case Tracker and re-upload to Odoo as ir.attachment records with the correct res_model and res_id set. Time entries are written to a holding table or directly to account.analytic.line if the Timesheet module is active.

  5. Run field-level diff on sample and convert leads to opportunities

    FlitStack runs a sample migration on a representative slice of 100–500 records covering contacts, cases, documents, and time entries. A field-level diff report compares source values against destination field contents so you can verify custom field mapping, stage name resolution, and owner assignment before the full run. After sample approval, a bulk conversion script calls convert_opportunity() on all active cases to create crm.opportunity records in the correct pipeline stages.

  6. Cut over with delta pickup and post-migration audit

    The full migration runs against Odoo with a 24–48 hour delta-pickup window capturing any records modified in Legal Case Tracker during cutover. FlitStack logs every API operation in an audit table. A post-migration reconciliation report compares record counts by object and flags any records that failed to insert due to constraint errors. One-click rollback reverts the Odoo database to its pre-migration state if reconciliation uncovers critical data integrity issues.

Platform deep dives

Context on both ends of the pair

Legal Case Tracker logo

Legal Case Tracker

Source

Strengths

  • Dynamic dashboard provides at-a-glance view of active cases, pending tasks, and upcoming hearings for daily practice management.
  • Time tracking and expense logging are natively integrated, keeping billable hours and cost records attached to the relevant matter.
  • Role-based access control enables basic confidentiality by restricting sensitive case information to authorised users.
  • Document hub centralises case-related files with contacts and calendar integration to Outlook for email attachment linking.
  • Low-friction onboarding for small teams with straightforward interface and no enterprise configuration overhead.

Weaknesses

  • Minimal analytics and reporting beyond standard dashboards limits data-driven insights for firm growth and performance review.
  • API documentation is not publicly available, restricting programmatic access and custom integrations.
  • Advanced AI automation and workflow features are absent or limited compared to mid-market legal CRM alternatives.
  • Document export capabilities are restricted, making bulk data portability difficult when migrating off the platform.
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 Case Tracker and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Legal Case Tracker 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 Case Tracker: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Legal Case Tracker to Odoo CRM migrations complete within 48–72 hours of clock time for under 25,000 records across cases, contacts, and time entries. Larger setups with 100,000+ records or extensive custom field definitions extend to 7–12 days. The longest planning step is mapping custom field datatypes to Odoo ir.model.fields definitions and configuring the crm.stage pipeline structure before data loads begin.

Adjacent paths

Related migrations to explore

Ready when you are

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