CRM migration

Migrate from FilePro to Odoo CRM

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

FilePro logo

FilePro

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between FilePro and Odoo CRM.

Complexity

BStandard

Timeline

3–5 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

FilePro stores client and matter data in a proprietary flat-file database structure with User Defined Fields (UDFs) that firms configure per their practice areas. The platform has no standard REST or GraphQL API — data extraction relies on the built-in EXPORT command, which produces delimited ASCII or fixed-width files that require schema inference before mapping. Odoo CRM uses a relational model built on PostgreSQL: res.partner holds contacts and companies, crm.lead holds both leads and opportunities, account.analytic.line captures time and costs, and ir_attachment stores documents. Custom fields in Odoo are created via Odoo Studio or directly in the database as x_name columns on the target model. The migration therefore requires three phases: extracting FilePro data via the EXPORT command or direct database read, inferring the FilePro schema (field names, data types, and relationships between clients, matters, and billing records), then transforming and loading into Odoo's relational structure. Workflows, billing rules, and trust accounting configurations do not migrate — FlitStack exports the definitions as reference documents for manual rebuild in Odoo's automated actions and accounting modules. The migration uses Odoo's XML-RPC API for record creation, with bulk operations and batch commits to handle volume efficiently.

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

FilePro logo

FilePro

What's pushing teams away

  • Very limited review volume and social proof — only 1 verified G2 review and 10 Capterra reviews make it hard to assess long-term satisfaction and support track record.
  • Competitive pressure from cloud-native legal CRMs like Clio, LawVu, and PracticePanther that offer modern UX, API-first architecture, and larger user communities.
  • Acquisition by Actionstep creates uncertainty about future product direction, roadmap continuity, and whether current FilePro customers remain a priority.

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

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

FilePro

Client

maps to

Odoo CRM

res.partner

1:1
Fully supported

FilePro clients map to Odoo res.partner records. The partner's address, phone, and email fields map directly. For law firms, clients are typically stored as companies (type='company') rather than individuals — the is_company flag is set based on FilePro's client-type indicator.

FilePro

Client Contact

maps to

Odoo CRM

res.partner (individual)

1:1
Fully supported

FilePro contact records within a client matter (e.g., opposing counsel, referrer contacts, co-counsel) map to res.partner with type='contact' and a parent_id linking to the primary client partner. Name fields split into firstname/lastname using Odoo's name_split logic. If FilePro stores only a full-name field without a separator, the migration applies standard name parsing heuristics to extract the components correctly.

FilePro

Matter

maps to

Odoo CRM

crm.lead

1:1
Fully supported

FilePro matters are the primary work units — they map to Odoo crm.lead records representing opportunities or cases. The matter description becomes the lead description field. Matter status (open, closed, billed) maps to crm.lead stage_id through a value-mapping defined during discovery.

FilePro

User Defined Field (UDF)

maps to

Odoo CRM

ir.model.field (custom)

1:1
Fully supported

Each FilePro UDF requires an Odoo custom field to be created on the appropriate model before data loads. String-type UDFs become char or text fields, numeric UDFs become float or integer, date UDFs become date fields, and pick-list UDFs become selection fields with value-mapping entries.

FilePro

Time Entry

maps to

Odoo CRM

account.analytic.line

1:1
Fully supported

FilePro time entries map to Odoo account.analytic.line records linked to the matter's analytic account. Unit_amount carries the duration in hours, product_id links to the service item, and staff initials resolve to Odoo res.users via the operator mapping table created during discovery.

FilePro

Document / File

maps to

Odoo CRM

ir_attachment

1:1
Fully supported

FilePro document attachments linked to matters are downloaded and re-uploaded to Odoo's ir_attachment table via the /web/binary/attachment XML-RPC API. Each file's binary content transfers as base64-encoded data through the datas field. The res_model and res_id fields link each attachment to the corresponding crm.lead record representing the matter. FilePro file metadata such as creation dates and author information is preserved in the attachment's create_date and create_uid fields during upload.

FilePro

Billing Record / Invoice

maps to

Odoo CRM

account.move

1:1
Fully supported

FilePro invoice records map to Odoo account.move with move_type='out_invoice'. Each invoice header creates one account.move record, preserving the invoice number, date, and partner_id from FilePro. Line items generate account.move.line entries linked to the matter's analytic account for cost tracking. Tax amounts and discounts from FilePro map to appropriate tax and analytic fields on the line entries. Trust account transactions from FilePro's billing system map to separate journal entries on the trust account journal configured in Odoo Accounting.

FilePro

Trust Accounting Entry

maps to

Odoo CRM

account.move + account.journal

1:1
Fully supported

FilePro trust ledger entries (receipts, disbursements, transfers) map to Odoo account.move records on the trust account journal configured in Odoo Accounting. Receipt transactions create journal entries that debit the trust receivable account and credit the appropriate client-specific trust liability account. Disbursement transactions reverse this pattern with debits to the trust payable account and credits to the operating account. Each transaction maps to the firm's chart of accounts entries established during Odoo schema setup. The matter_id on each entry links to the corresponding analytic account for client-level trust balance reporting.

FilePro

Staff / Operator

maps to

Odoo CRM

res.users

1:1
Fully supported

FilePro operator IDs map to Odoo res.users records. Matching is performed by email address where available in FilePro staff records, or by full name if email is absent. Staff without an identifiable match are flagged as 'Unresolved Owner' for manual assignment before the migration commits.

FilePro

Calendar / Appointment

maps to

Odoo CRM

calendar.event

1:1
Fully supported

FilePro calendar entries linked to matters map to Odoo calendar.event records. The start datetime and stop datetime fields carry over directly from FilePro, preserving the original appointment duration and timing. The event's res_id links to the corresponding crm.lead record representing the matter, and the res_model field is set to 'crm.lead' to establish the relationship. Staff assignment uses the mapped res.users record from the operator mapping table created during discovery. For all-day events or multi-day appointments, the allday flag and start_date/stop_date fields are set appropriately in Odoo.

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.

FilePro logo

FilePro gotchas

High

No REST API — export depends on native EXPORT utility

Medium

User Defined Fields are firm-specific with no published schema

Medium

Actionstep acquisition creates migration scope ambiguity

Low

Document paths exported as registry, not file bodies

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

  • FilePro has no REST API — data extraction requires EXPORT command or direct file reads

    FilePro does not expose a REST or GraphQL endpoint. Data must be extracted using the built-in EXPORT command, which produces delimited ASCII, DIF, Word, or fixed-width files. The EXPORT command respects user permissions — if a FilePro operator cannot see a matter, it will not appear in the export. We work around this by requesting admin-level exports or direct reads of the underlying .dat files when available. The delimiter choice affects how multi-value fields (e.g., addresses with commas) are quoted, and we handle re-parsing in the transformation pipeline before Odoo import.

  • FilePro UDF schema varies per firm — Odoo custom fields must be created before data loads

    FilePro User Defined Fields are defined by each firm during setup and stored in the FilePro schema metadata. There is no API to query the UDF definition programmatically — we infer field names, types, and validation rules from the exported data (string length, numeric precision, date formats, pick-list values). This inference step adds planning time. Odoo custom fields must exist on the target model (x_<fieldname> on res.partner or crm.lead) before XML-RPC calls can populate them. We generate a custom-field creation script from the inferred schema and execute it via the Odoo admin account before the migration run.

  • Odoo crm.lead conflates leads and opportunities — FilePro matters must be assigned to stages before mapping

    Odoo CRM does not have separate Lead and Opportunity objects like Salesforce. The crm.lead model serves both purposes, with the type field distinguishing 'lead' from 'opportunity'. FilePro matters that represent active client files should land as opportunities with a defined stage_id (e.g., 'Matter Opened', 'In Progress', 'Closed'). If Odoo stages do not exist for the firm's practice areas, we create them during schema setup. Stage names must match exactly — we use Odoo's stage name lookup by team_id to resolve the correct stage record.

  • Operator initials in time entries require explicit mapping to Odoo res.users records

    FilePro time entries record staff involvement via operator initials embedded in the record. These initials are not guaranteed to correspond to email addresses or names in FilePro's staff table. Before migration, we require the firm to provide a mapping table of FilePro operator IDs to Odoo res.users login emails. If a FilePro operator has no Odoo user account, their time entries are flagged for manual assignment to a default user or a 'Unresolved Staff' placeholder record.

  • Trust accounting data maps to Odoo Accounting journals — the chart of accounts must be configured first

    FilePro trust account transactions (receipts, disbursements, transfers) must map to specific account.journal and account.account records in Odoo Accounting. The firm's Odoo chart of accounts must include trust account numbers before migration can proceed. If the firm has not yet configured their chart of accounts and trust account journal, we create placeholder journal entries that reference uncreated accounts and flag them for the firm's accountant to finalize. Trust accounting migration cannot be tested in the sample phase until the accounting schema is in place. We recommend coordinating with the firm's accountant during schema setup to confirm the correct account IDs for receipts, disbursements, and transfers.

Migration approach

Six steps for a successful FilePro to Odoo CRM data migration

  1. Extract FilePro data and infer schema

    FlitStack requests admin-level exports from FilePro covering all clients, contacts, matters, time entries, documents, and billing records. We use the EXPORT command with CSV delimiter output to maximize field coverage. Simultaneously, we analyze the exported headers and data patterns to infer FilePro UDF names, data types, and pick-list value sets. The firm's FilePro administrator confirms the inferred schema before we proceed. Any FilePro staff table exports are cross-referenced to begin the operator-to-odoo-user mapping table.

  2. Configure Odoo target schema

    We create the required Odoo records before data loads: res.country and res.country.state entries (if not already present), crm.team records per practice area, crm.stage records per team, and custom fields on res.partner and crm.lead using Odoo Studio or direct ir.model.field creation. For firms with Odoo Accounting active, we create or confirm the trust account journal and operating account entries. The custom-field creation script is validated in a staging Odoo environment before execution on the production target.

  3. Build operator mapping and resolve owner IDs

    FlitStack matches FilePro operator IDs to Odoo res.users records using the firm's provided mapping table. For any operators without a defined Odoo user, we create a 'Migrated Staff' placeholder user (marked inactive) and assign their records to it, flagging each for the admin to reassign. This step runs before any crm.lead creation so that every opportunity has a resolved user_id at the point of insertion.

  4. Run sample migration with field-level diff

    A representative slice of FilePro data — typically 50–200 records across clients, matters, and time entries — is migrated to Odoo staging. We generate a field-level diff comparing source values against Odoo field values for every mapped column. The diff is reviewed with the firm to confirm stage mappings, practice-area routing, and custom-field rendering. No data is committed to the production Odoo instance until the firm signs off on the sample output.

  5. Execute full migration with delta-pickup and audit log

    The full migration runs against the production Odoo instance via XML-RPC API using the admin credentials provided by the firm. Records are committed in batches of up to 100 per XML-RPC call to respect Odoo's rate limits. A delta-pickup window (typically 24 hours post-go-live) captures any FilePro records created or modified during the cutover window. Every operation is logged in the FlitStack audit trail, and one-click rollback reverts all inserted records if reconciliation finds discrepancies beyond the agreed tolerance threshold.

Platform deep dives

Context on both ends of the pair

FilePro logo

FilePro

Source

Strengths

  • Monthly subscription model with no minimum contract terms — flexible for firms with fluctuating headcount.
  • Integrated legal practice management covering matter tracking, time capture, client accounting, and document links in one system.
  • Australian vendor with local support teams and demonstrated long-term client retention over 20-plus years.
  • Supports User Defined Fields so firms can capture firm-specific data without code changes.
  • On-premises and cloud deployment options — addresses firms with data-residency or cloud-aversion concerns.

Weaknesses

  • No conventional REST API — data extraction relies on the native EXPORT utility outputting delimited ASCII, which requires custom parsing for complex schemas.
  • Proprietary flat-file DBMS underlying FilePro means custom data structures are harder to reverse-engineer without firm-specific documentation.
  • Acquisition by Actionstep introduces roadmap uncertainty for existing FilePro customers.
  • Small review and community footprint limits peer validation and third-party plugin ecosystem.
  • Limited automation and workflow engine compared to modern cloud-native legal CRMs.
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 FilePro and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between FilePro 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

    FilePro: Not applicable — no REST API.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most FilePro to Odoo CRM migrations complete in 3–5 business days for under 25,000 records. The longest phase is schema inference from FilePro's UDF exports — we need to infer field types and pick-list values before Odoo custom fields can be created. Firms with 100,000+ records, complex trust accounting data, or multi-office FilePro databases extending to 10–15 business days. Timeline also depends on how quickly the firm provides the operator-to-user mapping table and confirms the stage/staff structure in Odoo.

Adjacent paths

Related migrations to explore

Ready when you are

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