CRM migration
Field-level mapping, validation, and rollback between Panacea and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Panacea
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Panacea and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Panacea Software is a print procurement and project management platform — its data model centers on print jobs, supplier frameworks, job pricing calculators, and client-project associations rather than traditional CRM concepts like leads and opportunities. When migrating to Odoo CRM, the core challenge is decomposing Panacea's job and supplier records into Odoo's crm.lead (used for both leads and opportunities), res.partner (contacts and companies), and crm.stage (pipeline stages) model. We extract Panacea records via its API or CSV export, map supplier contacts to res.partner with industry and address fields preserved, and translate print job records into Odoo opportunities with custom fields holding original job numbers, supplier frameworks, and pricing matrices. Activity logs (quotes sent, proofs approved) map to Odoo mail.message records. Workflows, automation rules, and supplier pricing calculators cannot migrate — they require manual rebuild in Odoo using its Studio automation or external Python scripts. Odoo's external XML-RPC API is free on all plans but rate-limited to ~1,000 requests per hour on self-hosted instances; Odoo Online imposes tighter concurrent-session limits that affect bulk import speeds.
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 Panacea 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.
Panacea
Panacea Contact (Client)
Odoo CRM
res.partner
1:1Panacea stores client name, email, phone, and address directly on job records. We extract unique client records and create res.partner entries with type='contact'. If a client has multiple jobs, we deduplicate by email and create one partner record with the most recent job data merged in.
Panacea
Panacea Supplier
Odoo CRM
res.partner
1:1Panacea's supplier framework records map to res.partner with type='company'. Supplier name, domain, and category_id (industry) migrate as Odoo partner fields. If Panacea tracks supplier contact persons separately, those become child res.partner records linked via parent_id. We also migrate supplier rating or certification data as custom fields on the company partner record where present.
Panacea
Panacea Job / Print Project
Odoo CRM
crm.lead
1:1Each Panacea job becomes a crm.lead record. The job name maps to crm.lead.name, job status (Quote, Proof, Print, Delivered) maps to crm.stage via value_mapping, and the client contact from the job links to crm.lead.partner_id. Original job number preserved as x_panacea_job_ref custom field.
Panacea
Panacea Job Status
Odoo CRM
crm.stage
1:1Panacea status values (New Quote, Awaiting Proof Approval, In Production, Delivered, Invoiced) map one-to-one to Odoo stage names. We create stages per Odoo team if Panacea has separate job queues. Probability values are assigned per stage using Odoo's stage probability field.
Panacea
Panacea Quote Line Items
Odoo CRM
sale.order.line (custom field on crm.lead)
1:1Panacea quote line items with product name, quantity, and unit price cannot map to Odoo sale.order without creating sale.order records first. We preserve line items as a JSON-formatted custom field (x_quote_lines) on the crm.lead and surface the data for manual import into Odoo Sale Quotation once the opportunity converts.
Panacea
Panacea Supplier Price Matrix
Odoo CRM
product.supplierinfo + custom field
1:1Panacea's supplier pricing calculators involve multi-dimensional matrices that have no Odoo native equivalent. We extract the active price matrix as a custom field (x_supplier_price_matrix) on the supplier's res.partner record. Rebuilding the calculator logic requires Odoo Python scripting or a third-party pricing app.
Panacea
Panacea Activity Log (Proof Upload, Approval)
Odoo CRM
mail.message
1:1Panacea records proof uploads and approval events as activity entries. We migrate these as mail.message records linked to the corresponding crm.lead, preserving the original timestamp, author (from user email match), and message body. Odoo chatter displays these as activity timeline entries.
Panacea
Panacea User / Owner
Odoo CRM
res.users
1:1Panacea user records (sales reps, project managers) are matched to Odoo res.users by email address. Unmatched users are flagged and assigned to a fallback Odoo user (admin) with a custom field (x_original_owner) preserving the Panacea username for audit purposes. Role and permission levels from Panacea are documented in the migration reference document for manual Odoo access configuration post-migration.
Panacea
Panacea Custom Field: Job Type
Odoo CRM
crm.lead: x_job_type
1:1Panacea job type values (Brochure, Business Card, Large Format, Packaging) migrate as a custom selection field (x_job_type) on crm.lead. Selection options are created in Odoo before migration to avoid import errors on the picklist field. Any job type values not matching predefined options are flagged for admin review and added to the selection list prior to data import.
Panacea
Panacea Custom Field: Delivery Address
Odoo CRM
res.partner (delivery address)
many:1If a Panacea job has a delivery address distinct from the client contact address, we create a separate res.partner address record of type='delivery' linked to the client's parent company partner. Odoo's address model supports multiple addresses per partner, allowing separate records for billing, shipping, and delivery locations. All address fields including street, city, state, and postal code are preserved during migration.
Panacea
Panacea Attachments / Proof Files
Odoo CRM
ir.attachment
1:1Panacea file attachments (proof PDFs, print-ready files) are downloaded and re-uploaded to Odoo as ir.attachment records linked to the corresponding crm.lead. File size limits follow Odoo's default 25MB per attachment. Inline images in notes are extracted and hosted as Odoo attachments.
Panacea
Panacea Notes / Internal Comments
Odoo CRM
mail.message (note)
1:1Panacea internal notes on jobs migrate as Odoo mail.message records with message_type='notification' linked to the crm.lead. Original note body and create date are preserved. These appear in Odoo's chatter thread for the opportunity. Attachments referenced in notes are migrated separately as ir.attachment records and linked to the corresponding message thread.
| Panacea | Odoo CRM | Compatibility | |
|---|---|---|---|
| Panacea Contact (Client) | res.partner1:1 | Fully supported | |
| Panacea Supplier | res.partner1:1 | Fully supported | |
| Panacea Job / Print Project | crm.lead1:1 | Fully supported | |
| Panacea Job Status | crm.stage1:1 | Fully supported | |
| Panacea Quote Line Items | sale.order.line (custom field on crm.lead)1:1 | Fully supported | |
| Panacea Supplier Price Matrix | product.supplierinfo + custom field1:1 | Fully supported | |
| Panacea Activity Log (Proof Upload, Approval) | mail.message1:1 | Fully supported | |
| Panacea User / Owner | res.users1:1 | Fully supported | |
| Panacea Custom Field: Job Type | crm.lead: x_job_type1:1 | Fully supported | |
| Panacea Custom Field: Delivery Address | res.partner (delivery address)many:1 | Fully supported | |
| Panacea Attachments / Proof Files | ir.attachment1:1 | Fully supported | |
| Panacea Notes / Internal Comments | mail.message (note)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.
Panacea gotchas
Unsubmitted EDI claims are dropped during version upgrades
Power management interruption can corrupt the conversion
Notification absence causes missed supplier responses
Large practice histories require 12-hour conversion windows
Reporting limitations require post-migration tooling
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
Extract Panacea data via API and CSV export
FlitStack connects to Panacea's REST API to pull all job records, contact records, supplier records, activity logs, and file attachment metadata. If the API returns paginated results, we collect full record sets across pages using cursor-based pagination. A parallel CSV export captures any fields not exposed in the API response. The extracted data is validated for foreign-key integrity (orphaned contacts, missing supplier references) and a data-quality report is delivered before mapping begins.
Design Odoo schema and create custom fields
Before importing data, FlitStack delivers an Odoo pre-flight checklist: create x_panacea_job_ref, x_job_type, x_supplier_price_matrix, and x_original_owner custom fields on crm.lead and res.partner; create crm.stage records matching Panacea job statuses per team; and configure res.partner parent-child relationships if domain-based company auto-creation is needed. This step requires an Odoo admin to execute in the target instance — FlitStack provides the exact field names, types, and selection options.
Resolve owners and partners by email match
Panacea user IDs are matched against Odoo res.users by email to assign crm.lead.user_id and mail.message.author_id. Unmatched users are flagged and assigned to a fallback Odoo user. Panacea client contacts are matched against res.partner records (created from the contact extraction step) by email; matched leads get a partner_id lookup. Contacts without a parent company get a parent_id auto-created from email domain or flagged for manual review.
Run sample migration with field-level diff
A representative slice — typically 200–500 records spanning jobs, contacts, suppliers, and activity logs — migrates to Odoo first. FlitStack generates a field-level diff comparing source Panacea values against destination Odoo fields for every record in the sample. You verify job-type custom field values, stage mapping, owner resolution, and supplier price matrix preservation. Approval of the sample unlocks the full migration run.
Execute full migration with delta-pickup window
The full Panacea dataset loads into Odoo via XML-RPC API, respecting Odoo's concurrency limits. A delta-pickup window of 24–48 hours after the main run captures any Panacea records created or modified during the cutover period. FlitStack's audit log records every create and write operation with the source record ID for reconciliation. One-click rollback reverts all Odoo records to pre-migration state if reconciliation reveals critical discrepancies.
Platform deep dives
Panacea
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Panacea and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Panacea and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Panacea 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
Panacea: Not publicly documented.
Data volume sensitivity
Panacea 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 Panacea to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Panacea 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 Panacea
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.