CRM migration
Field-level mapping, validation, and rollback between Best Case Bankruptcy and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Best Case Bankruptcy
Source
Odoo CRM
Destination
Compatibility
9 of 11
objects map 1:1 between Best Case Bankruptcy and Odoo CRM.
Complexity
BStandard
Timeline
3–5 days
Overview
Best Case Bankruptcy organizes data around attorney-client relationships, individual bankruptcy cases, and the creditor bodies attached to each case. A single bankruptcy case contains a client, multiple creditor entries, debt amounts, exemption elections, and a set of court-filing events — all linked to a specific bankruptcy chapter (7, 11, 13). Odoo CRM models leads and opportunities against res.partner contact records and crm.lead records, with pipeline stages managed through stage_ids on the crm.lead object. The migration requires collapsing Best Case's nested case-subcase structure into Odoo's flat contact and lead model — mapping each bankruptcy case to a crm.lead record where the case number becomes the lead name, the client becomes the contact, and each creditor becomes a child contact or a note attachment. Exemption schedules and schedule values (assets, liabilities, means-test results) have no native Odoo equivalent; FlitStack AI preserves them as custom fields on the crm.lead record. Best Case e-filing templates and court-specific form workflows do not migrate — those must be rebuilt manually in Odoo using its automation tools. The migration runs via Best Case's export capability (CSV/Excel) combined with Odoo's XML-RPC API import endpoint, sequenced to resolve foreign-key dependencies (contacts before leads before attachments). Delta-pickup captures any case updates made during the cutover window.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Best Case Bankruptcy 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.
Best Case Bankruptcy
Client (Debtor)
Odoo CRM
res.partner
1:1Best Case client records (debtor name, address, SSN, date of birth) map to Odoo res.partner as the primary contact. FlitStack sets partner_id on each migrated crm.lead. The client's bankruptcy filing date becomes a custom date field on the partner record.
Best Case Bankruptcy
Attorney / Staff User
Odoo CRM
res.users
1:1Best Case attorney and staff logins map to Odoo res.users by email address match. Unmatched users are flagged before migration — the firm either creates Odoo accounts first or assigns records to a fallback user. Owner assignment on crm.lead records uses this resolution.
Best Case Bankruptcy
Bankruptcy Case
Odoo CRM
crm.lead
1:1Each Best Case bankruptcy case becomes a single crm.lead record. The case number (e.g., 23-bk-12345) and client name concatenate to form crm.lead.name. The bankruptcy chapter (7, 11, 13, 15) maps to a custom picklist field (Bankruptcy_Chapter__c) on the lead. Case status (pending, filed, discharged, dismissed) becomes the lead stage in Odoo's pipeline.
Best Case Bankruptcy
Creditor Record
Odoo CRM
res.partner (child) + crm.lead.note
1:manyEach creditor in Best Case splits into two artifacts: a child res.partner record representing the creditor entity, and a structured note block on the crm.lead that preserves debt amount, priority (secured/unsecured/priority), and account number. This preserves creditor data without requiring Odoo to have a native many-to-many creditor relationship.
Best Case Bankruptcy
Debt Entry
Odoo CRM
Custom fields on crm.lead + note block
many:1Best Case debt entries (unsecured, secured, priority) merge into a combination of custom numeric fields on the crm.lead (Total_Unsecured_Debt__c, Total_Secured_Debt__c, Total_Priority_Debt__c) and structured note blocks that list each creditor's individual debt amount and classification. This structure provides attorneys with both aggregate totals for reporting and per-creditor detail for case review in Odoo.
Best Case Bankruptcy
Exemption Schedule
Odoo CRM
Custom fields on crm.lead (x_studio_*)
1:1Best Case exemption analyzer results (homestead, wildcard, vehicle, retirement account exemptions) have no Odoo native equivalent. FlitStack creates custom fields on crm.lead for each exemption category the firm uses, preserving the claimed amount and applicable statute reference. This requires the firm to specify which exemption categories are active in their jurisdiction before migration.
Best Case Bankruptcy
Means Test Result
Odoo CRM
Custom fields on crm.lead
1:1Best Case means-test calculator output (median family income comparison, chapter 7 eligibility, plan payment amount) migrates as a group of custom fields on crm.lead. FlitStack preserves the test date, result (pass/fail), and applicable form reference (Form 122A-1 or 122C-1) as datetime and text fields.
Best Case Bankruptcy
Court Filing Event
Odoo CRM
mail.message on crm.lead
1:1Best Case filing events (petition filed, 341 meeting scheduled, discharge entered) migrate as Odoo mail.message records attached to the crm.lead. Each message preserves the event date, court name, and filing status — giving attorneys a complete timeline visible within each lead's chatter thread in Odoo.
Best Case Bankruptcy
Document Attachment
Odoo CRM
ir.attachment linked to crm.lead
1:1Best Case file attachments (petitions, schedules, court orders) are downloaded from Best Case's document library and re-uploaded to Odoo's ir.attachment model, linked to the corresponding crm.lead via res_model and res_id. Large files (>25MB) may need to be split or stored externally with a link preserved on the lead.
Best Case Bankruptcy
Client Portal Access Record
Odoo CRM
Custom fields on res.partner
1:1Best Case's client portal access log (when the client last logged in, which documents they viewed) has no Odoo CRM equivalent. FlitStack preserves the last-accessed timestamp as a custom datetime field on res.partner for reference, but the portal itself is not rebuilt — Odoo's portal module would need to be configured separately.
Best Case Bankruptcy
Billing / Invoice Record
Odoo CRM
account.move (via Odoo Accounting)
1:1If Best Case stores retainer account balances or fee invoices, those records have no direct Odoo CRM equivalent. FlitStack can export them as reference data, but they must be re-created in Odoo Accounting (an Odoo module separate from CRM) if the firm uses Odoo's billing capabilities.
| Best Case Bankruptcy | Odoo CRM | Compatibility | |
|---|---|---|---|
| Client (Debtor) | res.partner1:1 | Fully supported | |
| Attorney / Staff User | res.users1:1 | Fully supported | |
| Bankruptcy Case | crm.lead1:1 | Fully supported | |
| Creditor Record | res.partner (child) + crm.lead.note1:many | Fully supported | |
| Debt Entry | Custom fields on crm.lead + note blockmany:1 | Fully supported | |
| Exemption Schedule | Custom fields on crm.lead (x_studio_*)1:1 | Fully supported | |
| Means Test Result | Custom fields on crm.lead1:1 | Fully supported | |
| Court Filing Event | mail.message on crm.lead1:1 | Fully supported | |
| Document Attachment | ir.attachment linked to crm.lead1:1 | Fully supported | |
| Client Portal Access Record | Custom fields on res.partner1:1 | Fully supported | |
| Billing / Invoice Record | account.move (via Odoo Accounting)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Best Case Bankruptcy gotchas
Software activation gate after renewal requires credit card entry
No public API — all exports are file-based or manual
Form version sensitivity means schedules filed in older editions may not re-file correctly
PACER calendar sync is a one-way pull, not a stored data object
e-filing authentication errors block court submissions without clear diagnostics
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Inventory Best Case data scope and pre-create Odoo custom fields
FlitStack audits the Best Case database to count client records, creditor entries, case files, and attachment volumes. The firm identifies which exemption categories and means-test fields are active in their jurisdiction. Before migration, FlitStack creates the required custom fields on the crm.lead model in Odoo (homestead, vehicle, wildcard, retirement exemptions; chapter type; filing date; discharge date; means-test results) and confirms field names with the firm's Odoo administrator. This step prevents import failures caused by missing destination fields.
Export Best Case data and resolve user/owner email matches
FlitStack pulls attorney and staff user lists from Best Case and matches them against existing Odoo res.users by email address. Unmatched attorneys are flagged for the firm to create Odoo accounts before migration. Best Case client records, creditor entries, case files, and filing events are exported as structured CSVs. Any incomplete or duplicate records are flagged for the firm to clean before the migration run. This produces a validated data set ready for Odoo API import.
Migrate creditors and clients as res.partner records first
The migration sequence begins with Odoo res.partner records because crm.lead records depend on them via partner_id. Creditors are created first as company-type res.partner records; clients are created as person-type res.partner records. Each partner gets a custom field (x_studio_source_system_id) storing the original Best Case record ID for traceability and delta-run de-duplication. FlitStack validates partner counts against the Best Case export before proceeding to the lead migration step.
Migrate bankruptcy cases as crm.lead records with chapter and status mapping
Each Best Case bankruptcy case becomes a crm.lead. The case number and client name concatenate to form crm.lead.name; the bankruptcy chapter becomes a custom picklist field; the case status maps to Odoo pipeline stage names agreed upon during setup (e.g., 'Intake → Filed → Pending Discharge → Discharged'). FlitStack resolves attorney user_id by email match and attaches the client res.partner as the lead's partner_id. Exemption schedules and means-test results populate the pre-created custom fields on each lead. A field-level diff validates that every mapped value appears correctly in Odoo before attachments are processed.
Attach documents and filing event logs to leads, then run delta-pickup
Best Case document files are downloaded, verified for size, and re-uploaded to Odoo's ir.attachment model linked to each crm.lead. Filing event logs (petition filed, 341 meeting, discharge) are written as mail.message records on each lead's chatter thread. After the initial migration run, FlitStack opens a 24–48 hour delta-pickup window: any case status changes or new filings recorded in Best Case during this window are captured and appended to the corresponding Odoo leads. An audit log documents every operation; one-click rollback reverts the Odoo database to its pre-migration state if reconciliation uncovers data discrepancies.
Platform deep dives
Best Case Bankruptcy
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Best Case Bankruptcy and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Best Case Bankruptcy and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Best Case Bankruptcy and Odoo CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Best Case Bankruptcy: Not publicly documented.
Data volume sensitivity
Best Case Bankruptcy doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Best Case Bankruptcy to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Best Case Bankruptcy to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Best Case Bankruptcy
Other ways to arrive at Odoo CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.