CRM migration
Field-level mapping, validation, and rollback between PANDA Perio and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
PANDA Perio
Source
Odoo CRM
Destination
Compatibility
9 of 10
objects map 1:1 between PANDA Perio and Odoo CRM.
Complexity
BStandard
Timeline
2–5 business days
Overview
PANDA Perio is a periodontal-specific clinical application built on SQL Server, designed for periodontists who need chairside charting, treatment plan authoring, and automated letter writing tied to clinical findings. It stores patients, periodontal charting grids (pocket depths, recession, BOP, furcation, mobility per tooth and surface), treatment plans, progress notes, referral records, and provider assignments. Odoo CRM models its core data as res.partner (contacts/companies) and crm.lead (leads and opportunities), storing records in PostgreSQL. There is no native periodontal charting equivalent in Odoo CRM — all clinical grid data must be flattened into custom fields. We extract PANDA data via direct SQL Server read access, map patient demographics to Odoo res.partner, periodontal observations to custom contact fields, and treatment plan history into crm.lead descriptions. We re-upload PANDA file attachments (letters, PDFs) as Odoo mail.thread attachments. Automation logic (letter templates, SOAP note formats, treatment translation rules) is outside the data layer and cannot migrate — we document it for manual rebuild in Odoo's template engine.
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 PANDA Perio 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.
PANDA Perio
Patient
Odoo CRM
res.partner
1:1PANDA patient records map directly to Odoo res.partner. Name fields, date of birth, contact information, and address data carry over as-is. The PANDA PatientID becomes a custom Source_ID__c field on the res.partner record for delta-run de-duplication. Missing mandatory fields such as country or state are populated with defaults to satisfy Odoo validation.
PANDA Perio
Periodontal Chart Record
Odoo CRM
res.partner (custom fields)
1:1PANDA's per-visit periodontal grid — probing depths, recession, BOP, furcation, mobility per tooth and surface — has no Odoo native equivalent. We flatten each observation type into a dedicated custom Char/Text field on res.partner (e.g., PPD_All_Surfaces__c stores a JSON snapshot of the full-mouth chart for that visit date). Historical charting visits attach as dated notes on the partner record.
PANDA Perio
Treatment Plan
Odoo CRM
crm.lead
1:1PANDA treatment plans (extraction, implant, bone graft, etc.) with ADA codes and phase sequencing map to Odoo crm.lead records. Each phase becomes a milestone note within the lead description or a custom Treatment_Phases__c JSON field. The treatment plan status (proposed, accepted, completed) maps to a custom Treatment_Status__c pick-list.
PANDA Perio
Progress Note
Odoo CRM
mail.message / crm.lead.note
1:1PANDA SOAP and clinical progress notes attach as mail.message records on the res.partner or crm.lead in Odoo, preserving original entry date and provider attribution. Notes are imported as plain-text body content in the mail.message model. The import script maps the PANDA note author to the Odoo user record using email lookup, ensuring accurate responsibility assignment.
PANDA Perio
Provider / Doctor
Odoo CRM
res.users
1:1PANDA provider records map to Odoo res.users by email match. The PANDA provider name and credentials become fields on the user record (x_provider_name, x_credentials). Unmatched providers are flagged before migration and assigned to a fallback user pending an Odoo user account creation.
PANDA Perio
Referral Source / Referring Practice
Odoo CRM
res.partner / crm.lead.source_id
many:1PANDA referral records — referring doctor name, practice, and contact info — merge into Odoo res.partner records with type='contact' and a custom Referring_Dentist__c flag. The referral relationship is stored via a custom Referral_Partner_ID__c lookup on the patient partner record. If multiple referring doctors appear for the same patient, each is added as a separate contact and linked, preserving the full referral network.
PANDA Perio
Practice / Clinic
Odoo CRM
res.company / crm.team
1:1PANDA clinic/practice setup does not have a direct Odoo equivalent. For single-location practices, the Odoo company record is used. For multi-clinic setups, each PANDA clinic becomes a separate res.company in Odoo, and patient records are tagged with a custom Clinic_ID__c field for routing.
PANDA Perio
Clinical Workflow / Flag
Odoo CRM
mail.activity
1:1PANDA clinical flags (e.g., 'flag for perio maintenance', 'recall due') have no direct Odoo equivalent. We map active flags to scheduled mail.activity records on the res.partner with activity_type_id and date_deadline set from the flag trigger date. The flag logic itself must be rebuilt as Odoo server actions post-migration.
PANDA Perio
Letter Template Library
Odoo CRM
none
1:1PANDA's automated letter-writing templates and SOAP note formats are application-level logic stored in the PANDA application directory, not in the database. They cannot be extracted as data records. We export the template text content as a reference document for manual rebuild in Odoo's mail.template system.
PANDA Perio
File Attachment
Odoo CRM
ir.attachment
1:1PANDA file attachments (referral PDFs, patient letters, clinical images) are extracted from the PANDA file directory and SQL Server BLOB columns. They re-upload to Odoo as ir.attachment records linked to the corresponding res.partner or crm.lead via the res_model and res_id fields. File size limits are enforced per Odoo's ir_attachment configuration.
| PANDA Perio | Odoo CRM | Compatibility | |
|---|---|---|---|
| Patient | res.partner1:1 | Fully supported | |
| Periodontal Chart Record | res.partner (custom fields)1:1 | Fully supported | |
| Treatment Plan | crm.lead1:1 | Fully supported | |
| Progress Note | mail.message / crm.lead.note1:1 | Fully supported | |
| Provider / Doctor | res.users1:1 | Fully supported | |
| Referral Source / Referring Practice | res.partner / crm.lead.source_idmany:1 | Fully supported | |
| Practice / Clinic | res.company / crm.team1:1 | Fully supported | |
| Clinical Workflow / Flag | mail.activity1:1 | Fully supported | |
| Letter Template Library | none1:1 | Fully supported | |
| File Attachment | ir.attachment1: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.
PANDA Perio gotchas
No public API — database extraction requires SQL Server access
SQL Server Express 10GB limit can be migration-blocking
Open Dental bridge passes IDs only, not clinical data
Treatment plan PMS codes differ from clinical letter descriptions
Custom periodontal findings are practice-specific
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
Audit PANDA SQL Server schema and extraction path
FlitStack connects to the PANDA SQL Server instance (on-premises or remote desktop) and documents the full schema: patient table, chart_table, treatment_plan_table, provider_table, referral_table, note_table, and attachment BLOB locations. We export a representative sample (50–100 patients) to validate record counts, identify nullable fields, and confirm charting data density per patient. This step also identifies whether multiple PANDA databases exist for multi-location practices, which triggers the merge scope.
Design Odoo CRM schema with custom fields for periodontal data
We create the custom fields on res.partner and crm.lead in the destination Odoo instance: PPD_Chart_Data__c, BOP_Chart_Data__c, Recession_Chart_Data__c, Furcation_Chart_Data__c, Mobility_Chart_Data__c, CAL_Chart_Data__c (all Text/JSON), plus Periodontal_Classification__c, Treatment_Status__c, Treatment_Phases__c, ADA_Codes__c, and Source_ID__c. We configure pipeline stages on crm.lead to match the clinical workflow (New Patient, Assessment, Treatment Proposed, Treatment In Progress, Completed, Discharged). Odoo plan is confirmed at this stage to determine whether the migration runs via API or CSV import.
Run pilot migration on 25–50 patient records with field-level diff
A pilot migration ingests 25–50 representative patients spanning different visit histories, treatment plan states, and referral sources. We generate a field-level diff report comparing source PANDA values against the corresponding Odoo res.partner and crm.lead field values. Special attention goes to charting data JSON integrity, date field timezones (PANDA SQL Server datetime vs. Odoo UTC storage), and provider email match rates against Odoo res.users. The pilot output determines whether any transformation rules need adjustment before the full run.
Execute full migration with delta-pickup window
The full migration loads all PANDA patient records, periodontal charting snapshots, treatment plans, progress notes, referral contacts, and file attachments into Odoo. We run the delta-pickup window (24–48 hours) at the end of the migration window, querying the PANDA SQL Server for records with LastModifiedDate after the migration start timestamp. Any patients created or chart entries updated during the cutover are inserted or updated in Odoo before final validation.
Validate, reconcile, and hand over rebuild reference
FlitStack runs a reconciliation report comparing PANDA patient count, charting visit count, and treatment plan count against the corresponding Odoo record counts. We surface any unmatched provider emails, orphaned attachments, and de-duplicated multi-location patients. The handover package includes the PANDA template library review document (for rebuilding letter templates in Odoo mail.template), a PANDA workflow audit list (for rebuilding clinical flags as Odoo server actions), and a field-mapping spreadsheet for the practice's Odoo administrator.
Platform deep dives
PANDA Perio
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between PANDA Perio and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across PANDA Perio and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between PANDA Perio 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
PANDA Perio: Not publicly documented.
Data volume sensitivity
PANDA Perio 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 PANDA Perio to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your PANDA Perio 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 PANDA Perio
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.