CRM migration

Migrate from PANDA Perio to Odoo CRM

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 logo

PANDA Perio

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

90%

9 of 10

objects map 1:1 between PANDA Perio and Odoo CRM.

Complexity

BStandard

Timeline

2–5 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

PANDA Perio logo

PANDA Perio

What's pushing teams away

  • The on-premise-only deployment requires dedicated Windows Server infrastructure and IT maintenance, pushing cost-conscious practices toward cloud-based alternatives with no local setup overhead.
  • No public REST API means integrations beyond Open Dental must be custom-built and maintained, frustrating practices that need bidirectional data flow with modern cloud platforms.
  • The small vendor team — three named employees with a 2-person management structure — raises concern for practices worried about long-term support continuity and software updates.
  • Larger multi-clinic periodontal groups report that SQL Server Express hits its 10GB database limit sooner than expected, forcing a costly SQL Server upgrade with no clear migration path documented.

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

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

maps to

Odoo CRM

res.partner

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

res.partner (custom fields)

1:1
Fully supported

PANDA'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

maps to

Odoo CRM

crm.lead

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

mail.message / crm.lead.note

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

res.users

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

res.partner / crm.lead.source_id

many:1
Fully supported

PANDA 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

maps to

Odoo CRM

res.company / crm.team

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

mail.activity

1:1
Fully supported

PANDA 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

maps to

Odoo CRM

none

1:1
Fully supported

PANDA'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

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

PANDA 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.

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.

PANDA Perio logo

PANDA Perio gotchas

High

No public API — database extraction requires SQL Server access

High

SQL Server Express 10GB limit can be migration-blocking

Medium

Open Dental bridge passes IDs only, not clinical data

Medium

Treatment plan PMS codes differ from clinical letter descriptions

Low

Custom periodontal findings are practice-specific

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

  • PANDA exposes no public API — extraction requires direct SQL Server read access

    PANDA Perio does not publish a REST or GraphQL API for external data access. The application runs on SQL Server 2014 Express (up to 10 GB) or Standard/Enterprise editions for larger practices. Data extraction requires a direct database read connection to the PANDA SQL Server instance — either via VPN to the on-premises server or a remote desktop session if hosted. This adds a technical prerequisite that is absent in API-first CRM migrations: the practice must provide database credentials and network access before FlitStack can begin the extraction phase. For practices using hosted PANDA environments or managed IT setups, firewall and credential provisioning can add 1–3 days to the project timeline.

  • Periodontal charting grids must be flattened into custom fields — no native Odoo equivalent

    PANDA's periodontal charting data (pocket depths, BOP, recession, furcation, mobility per tooth and surface) is stored in the database as rows in a per-visit grid table. Odoo CRM has no native model for per-tooth clinical grid data — there is no equivalent to PANDA's chart_table schema in res.partner or any standard Odoo model. We handle this by flattening each observation type (PPD, BOP, GR, CAL, furcation, mobility) into a dedicated custom Text field on res.partner that stores a JSON snapshot of the full-mouth chart for that visit date. Historical visits are preserved as dated mail.message records on the partner. This means the periodontal chart is readable as structured data in Odoo, but the chairside chart view that PANDA provides requires custom Odoo web development to reproduce.

  • Odoo Community and Standard plans block external API access — migration method changes

    The Odoo external API (XML-RPC / JSON-RPC) is free to use only on the Custom Plan ($37.40/user/month). Community and Standard editions explicitly block external API access — the xmlrpc/common and xmlrpc/object endpoints return an AccessDenied error. If the destination Odoo instance is on Community or Standard, FlitStack cannot push data via the API and must instead use Odoo's native CSV import wizard, which handles 2,000–5,000 records per batch. This extends the migration timeline by 1–2 days and limits the ability to run delta-pickup incrementally. We verify the destination Odoo plan before designing the load pipeline and flag this as a scope item.

  • PANDA letter-writing templates and SOAP note formats are application logic, not data

    PANDA's automated letter-writing engine reads clinical charting data and generates formatted correspondence letters in real time. The letter templates, SOAP note formats, treatment-translation rules, and dynamic field substitutions live in the PANDA application directory and configuration files — they are not stored as records in the SQL Server database. This means there is no data layer to export. The template content can be reviewed manually and used as a reference document to rebuild letter templates in Odoo's mail.template system post-migration. This is a rebuild, not a migration, and we document the PANDA template library as part of the handover package.

  • Multi-clinic PANDA setups require database merge before loading into single Odoo instance

    Larger periodontics practices running separate PANDA databases per clinic — common when each location has its own SQL Server instance or its own practice within the same server — require a merge step before loading into a single Odoo res.company structure. Patient records that exist in multiple PANDA databases with the same name and DOB must be de-duplicated during the merge. We implement a de-duplication rule using PANDA PatientID + LastName + DateOfBirth as a composite key. After merge, a custom Clinic_ID__c field tags each patient record with its source location for Odoo team-based access control.

Migration approach

Six steps for a successful PANDA Perio to Odoo CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

PANDA Perio logo

PANDA Perio

Source

Strengths

  • Comprehensive tooth-by-tooth periodontal charting with 200+ clinically relevant findings in a single chart view.
  • Real-time letter generation directly from charting data, eliminating manual transcription for referral correspondence.
  • Treatment-plan memorization learns individual clinician phrasing, reducing repetitive typing over time.
  • Comparison charting across up to 5 historical visits with adjustable surgical baseline, unique among periodontal tools.
  • Clinical Workflow Manager flags overdue charts and generates task lists from charting entries, improving recall compliance.

Weaknesses

  • On-premise Windows/SQL Server deployment only — no cloud hosting, SaaS option, or macOS/Linux support.
  • No public API documented; data extraction requires direct SQL Server database access or Open Dental bridge export.
  • Small vendor team of fewer than 10 employees raises long-term viability and support responsiveness concerns.
  • Pricing is per-workstation and per-month, which scales cost higher for multi-location practices faster than per-provider SaaS models.
  • No mobile or tablet-native application; only Windows-based Tablet PC support, limiting hardware flexibility.
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 PANDA Perio and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    PANDA Perio: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Most PANDA Perio to Odoo migrations complete in 2–5 business days for practices with up to 5,000 patient records. Multi-location practices with 5+ years of charting history, multiple PANDA databases, or extensive per-visit treatment plan records extend the timeline to 1–2 weeks. The longest single step is setting up Odoo custom fields for periodontal charting data before the load pipeline begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from PANDA Perio.
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