CRM migration

Migrate from FactBox to Odoo CRM

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

FactBox logo

FactBox

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

91%

10 of 11

objects map 1:1 between FactBox and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

FactBox organizes legal work around cases, facts, witnesses, evidence, and documents — a schema purpose-built for litigation and case management. Odoo CRM structures data around leads, opportunities, contacts, and activities — a commercial-sales framework. These models diverge significantly: a FactBox 'case' maps to an Odoo crm.lead; a 'fact' becomes a scheduled activity or note; a witness becomes a res.partner with a custom witness-type flag; and evidence maps to custom fields or linked attachments. We extract FactBox data via API or structured export, map each entity to its Odoo counterpart, create Odoo custom fields (x_case_id, x_case_type__c, x_judge__c) on the crm.lead model for legal metadata that has no standard CRM equivalent, then sequence the import so relationship IDs resolve correctly. Document and exhibit files are downloaded and re-uploaded into Odoo's ir.attachment table with the correct res_model and res_id linking back to each crm.lead. Workflows, automation rules, and legal-process templates do not transfer — we export FactBox's case structure and activity logs as a rebuild reference for Odoo Studio or a developer. The migration runs in a scoped read session against FactBox; your team continues working during the cutover, and a delta window captures in-flight changes.

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

FactBox logo

FactBox

What's pushing teams away

  • Limited public API documentation makes integration with other legal tech tools difficult and custom automation nearly impossible.
  • The platform appears geared toward smaller cases and solo practitioners; larger litigation teams may find collaboration features insufficient.
  • Reviews note the tool works well for organizing facts but lacks broader practice management capabilities some firms need.
  • Some users may outgrow the platform as case volume and complexity increase beyond what FactBox was designed to handle.

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

Each row shows how a FactBox 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.

FactBox

Case

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Each FactBox case maps to a single Odoo crm.lead record. The case name becomes the lead name, case status maps to lead stage via value mapping, and legal metadata (court, judge, opposing counsel, case type) migrate as Odoo Enterprise custom fields on the lead. Parent-child case hierarchy maps to the crm.lead parent_id self-referential field.

FactBox

Fact

maps to

Odoo CRM

mail.activity / mail.message

1:1
Fully supported

Each FactBox fact becomes either a scheduled Odoo mail.activity (with a due date) or a mail.message note on the parent crm.lead. The fact content maps to the activity's note field. Original create and update timestamps are preserved as custom datetime fields on the activity record for factual chronology continuity.

FactBox

Document / Exhibit

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

FactBox documents and exhibits download from FactBox's storage and re-upload into Odoo's ir.attachment table. Each attachment sets res_model='crm.lead' and res_id pointing to the mapped case's lead ID. Exhibit numbers and document-type metadata map to ir.attachment custom fields (x_exhibit_number, x_document_type) on the attachment record.

FactBox

Witness

maps to

Odoo CRM

res.partner

1:1
Fully supported

Each FactBox witness record creates a res.partner in Odoo with type='contact' and a custom field x_contact_role='Witness'. The witness name maps to partner name, contact details map to standard address and phone fields. Testimony text maps to a custom long-text field on the partner for reference — linked to the parent case via a many2one on the crm.lead.

FactBox

Evidence

maps to

Odoo CRM

crm.lead (custom field) / ir.attachment

many:1
Mapping required

Evidence items with text content merge into a custom Evidence_Summary__c long-text field on the parent crm.lead. Evidence items with file attachments map to ir.attachment records linked to the parent crm.lead. Exhibit tag and evidence type values map via value_mapping to a custom pick-list on the lead.

FactBox

Issue / Legal Claim

maps to

Odoo CRM

crm.lead.tag / mail.message

1:1
Fully supported

FactBox issues and legal claims map to Odoo CRM tags (crm.tag) created dynamically from source issue names, linked to the crm.lead via crm.lead.resolver.tag_ids. Longer issue narratives migrate as mail.message notes on the lead for auditability. We also map each issue's status to the tag's active flag, preserving its open or closed state in Odoo.

FactBox

Timeline Event

maps to

Odoo CRM

mail.message

1:1
Fully supported

FactBox timeline entries — hearing dates, filing dates, deposition dates — map directly to Odoo's mail.message records on the crm.lead. Each message preserves the original event date as message_date and adds a custom field x_event_type to distinguish hearing, filing, and deposition events.

FactBox

Owner / Assignee

maps to

Odoo CRM

res.users

1:1
Fully supported

FactBox owner resolved by email match against Odoo's res.users table. Unmatched owners flagged before migration; records assigned to a fallback Odoo user or held for admin assignment. FactBox does not have a separate user-object table — owner ID maps via the user's email in the export.

FactBox

Custom Property (Case-level)

maps to

Odoo CRM

crm.lead custom fields

1:1
Fully supported

FactBox custom properties at the case level (e.g., x_case_number, x_case_type, x_judge, x_opposing_counsel, x_court) require Odoo Enterprise custom fields on crm.lead. Odoo Community does not support Studio-based field creation — Enterprise plan or direct PostgreSQL field addition is required for these mappings.

FactBox

Custom Property (Witness / Fact-level)

maps to

Odoo CRM

res.partner / mail.activity custom fields

1:1
Fully supported

Witness-specific and fact-specific custom properties migrate as custom fields on the respective target objects. These require Odoo Enterprise custom field support on res.partner and mail.activity models. We surface all required custom fields in the pre-migration schema plan before data moves.

FactBox

Attachments / Files

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

All FactBox file attachments — correspondence, court filings, discovery documents — download and re-upload to Odoo's ir.attachment table. Each record stores the original filename, file size, and MIME type. The migration tool sets res_model='crm.lead' and res_id to the mapped case lead ID, preserving the link to the originating case.

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.

FactBox logo

FactBox gotchas

Medium

Annual subscription does not auto-renew

High

Limited public API documentation

Medium

File attachment handling requires separate migration

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 Community edition blocks custom field creation without manual PostgreSQL work

    FactBox migrations with legal metadata fields (case type, judge, opposing counsel, exhibit numbers) require custom fields on the crm.lead model. Odoo Community edition does not include Studio for visual field creation — these custom fields either require an Enterprise subscription or direct PostgreSQL ALTER TABLE and ir.model.fields INSERT statements. We surface this requirement in the pre-migration schema plan and will not attempt to add fields that your Odoo plan cannot support.

  • FactBox custom workflows and automation sequences do not transfer and cannot be rebuilt from export

    FactBox case workflows, automated task sequences, and fact-linking automation rules live inside FactBox's application logic and are not exposed via its API or export. Odoo CRM automation rules (lead assignment, stage-based activities, SLA escalation) must be rebuilt in Odoo Studio or written as Python server actions. We export the full FactBox case activity log and sequence structure as a reference document so your Odoo developer or admin can rebuild the automation logic on the correct Odoo model.

  • FactBox document re-upload requires filestore migration overhead and Odoo attachment linking

    FactBox stores files in its own document management system. Odoo stores attachments in its filestore directory with database records in ir.attachment linking to the target model (res_model) and record ID (res_id). There is no direct filestore migration path — files must be downloaded from FactBox, uploaded into Odoo with the correct res_model='crm.lead' and res_id pointing to the mapped lead, and the original filename and MIME type preserved. Exhibits and correspondence with specific numbering must have exhibit_number and document_type preserved as custom fields on each ir.attachment.

  • Odoo version upgrades break custom modules and view customizations — including any custom case models

    If your Odoo instance is on a recent version (17, 18, or 19), upgrading to a newer major version after migration may break any custom fields or models added to crm.lead. Odoo's view architecture changed from <tree> to <list> and XPath expressions for inherited views behave differently across major versions. We recommend locking your Odoo version at migration time and planning version upgrades separately from the data migration project. This ensures that any customizations you depend on remain functional after the upgrade.

  • FactBox owner-to-Odoo user resolution requires email match and may leave records unassigned

    FactBox does not expose a users table with Odoo-compatible IDs. We match FactBox case owners by email against Odoo res.users. Cases whose owner email has no matching Odoo user are flagged before migration and assigned to a fallback user or held for admin review. This is particularly common when FactBox is used by external consultants or co-counsel who will not be Odoo users. This may affect downstream reporting and case responsibility tracking.

Migration approach

Six steps for a successful FactBox to Odoo CRM data migration

  1. Audit FactBox data model and Odoo target schema

    We read your FactBox export or connect via API to enumerate every case, fact, document, witness, evidence, and custom property. We simultaneously inspect your Odoo database (or fresh Odoo instance) to identify installed modules, existing custom fields on crm.lead and res.partner, and which Odoo edition (Community or Enterprise) is active. This produces the data map — the authoritative record of what goes where before any data moves.

  2. Create Odoo custom fields and resolve owner mapping

    We create the required Odoo Enterprise custom fields on crm.lead (x_case_id, x_case_type__c, x_court__c, x_judge__c, x_opposing_counsel__c, x_evidence_summary__c, x_original_open_date__c) and on res.partner (x_contact_role__c). If Odoo Community is in use, we surface this and recommend upgrading before migration. We run the email-based owner resolution against res.users and flag any unmatched owners with the record IDs affected. All custom fields are added using Odoo Studio or direct PostgreSQL commands, depending on your edition, to ensure schema consistency before data import.

  3. Migrate parent cases first, then facts, witnesses, and documents

    We sequence the import so foreign keys resolve correctly: crm.lead parent_id self-references require parent leads to land first. Witness res.partner records create before document and evidence links. FactBox documents download to a staging directory, then bulk-upload to ir.attachment with the correct res_model and res_id. Each batch commits after validation so a failed batch does not corrupt the prior state and ensures referential integrity across all object types.

  4. Run sample migration with field-level diff and validate linkages

    A representative slice of cases (typically 50–200 records including cases with documents, witnesses, facts, and timeline events) migrates first. We generate a field-level diff comparing source FactBox values against the destination Odoo records. You verify custom field values on crm.lead, ir.attachment linking, and witness contact roles before the full run commits. Exhibit numbers and document-type metadata are spot-checked against the source.

  5. Full migration with delta-pickup and one-click rollback

    Full data migration runs against Odoo. A delta-pickup window (24–48 hours) captures any cases, facts, or documents created or modified in FactBox during the cutover. All operations are logged to an audit table. If reconciliation fails, one-click rollback reverts the Odoo database to its pre-migration state. Post-migration, we deliver a reconciliation report showing record counts by object, attachment count, and any records that landed with a fallback owner.

Platform deep dives

Context on both ends of the pair

FactBox logo

FactBox

Source

Strengths

  • Fact-centric data model directly supports litigation workflow from document intake to trial preparation.
  • Automatic fact extraction from uploaded documents speeds up case organization significantly.
  • Physical data security with biometric readers, 2-factor access, and armed guards protects sensitive case data.
  • Immediate productivity—attorneys report being productive on day one without training or technical support.

Weaknesses

  • Minimal public API documentation limits integration options and custom automation capabilities.
  • Collaboration features may be insufficient for large litigation teams handling complex, multi-party cases.
  • The platform appears optimized for smaller matters; enterprise-scale case management features may be limited.
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. 1 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 FactBox and Odoo CRM.

  • Object compatibility

    B

    1 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

    FactBox: Not applicable — no public API endpoints are published..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most FactBox-to-Odoo CRM migrations complete in 48–72 hours of clock time for under 25,000 records. Larger setups with 25,000+ records, extensive document volumes, or legal metadata requiring Enterprise custom fields extend to 5–10 business days. The longest planning step is Odoo Enterprise edition confirmation and custom field schema setup before data begins moving. After schema creation, we run a sample migration of 50–200 records to validate field mapping, attachment linking, and owner resolution, then proceed to the full run with a delta-pickup window of 24–48 hours to capture any in-flight changes.

Adjacent paths

Related migrations to explore

Ready when you are

Move from FactBox.
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