CRM migration
Field-level mapping, validation, and rollback between My Dental Clinic and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
My Dental Clinic
Source
Odoo CRM
Destination
Compatibility
10 of 10
objects map 1:1 between My Dental Clinic and Odoo CRM.
Complexity
BStandard
Timeline
3–5 business days
Overview
My Dental Clinic stores patient demographics, appointment schedules, treatment plans, insurance information, and billing ledgers in a dental-practice-optimized schema. Odoo CRM uses a standard partner/contact model with extensible custom fields and related objects for activities, quotations, and sales orders. FlitStack AI maps My Dental Clinic patient records to Odoo contacts, preserving original create dates and last-modified timestamps as custom fields. Dental-specific data—treatment codes, insurance carriers, procedure notes—migrates into Odoo custom fields created via Odoo Studio before the import runs. Appointment history becomes Odoo calendar events with original start times and assigned user links. Insurance claim status and billing ledgers map to custom fields and notes since those live in Odoo's Accounting module post-migration. Workflows, automated reminders, and treatment-plan automation built in My Dental Clinic do not migrate—they require Odoo automation rules or Odoo Studio to rebuild after go-live. The migration starts with a read‑only export from My Dental Clinic via built‑in reports, direct database queries, or API calls where available. FlitStack validates exported records, checks for duplicate patients, and resolves provider‑to‑user mappings by email. Custom fields are defined in Odoo Studio (or via direct field creation for Community plans) before import begins. Import proceeds in sequenced batches: patient demographics first, then insurance and treatment custom fields, followed by calendar events and attachments. A post‑migration delta capture window captures any changes made during cutover, and FlitStack delivers a field‑level diff report for verification.
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 My Dental Clinic 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.
My Dental Clinic
Patient
Odoo CRM
res.partner (Contact)
1:1My Dental Clinic patient records map directly to Odoo res.partner records. The patient's full name splits into firstname and lastname fields in Odoo. Email, phone, and address fields migrate directly. The original patient create date preserves as a custom datetime field since Odoo's create_date reflects the migration timestamp.
My Dental Clinic
Patient Insurance Information
Odoo CRM
res.partner (custom fields)
1:1Insurance carrier name, policy number, group number, and subscriber relationship migrate as custom Char and Selection fields on res.partner. Odoo Studio creates these fields before migration runs. Claim filing status and insurance notes map to a custom Text field for reference.
My Dental Clinic
Treatment Plan
Odoo CRM
res.partner (custom fields) + mail.message
1:1Treatment plan procedure codes and descriptions migrate as custom Selection fields listing ADA codes plus a long-text field for provider notes. Historical treatment notes also become Odoo internal notes (mail.message with note subtype) attached to the contact record for provider reference.
My Dental Clinic
Appointment / Visit Record
Odoo CRM
calendar.event
1:1My Dental Clinic appointment records with date, time, provider, and visit type map to Odoo calendar.event records. The original appointment start datetime and duration preserve. Provider maps to Odoo user_id by email match. Visit notes migrate as event description fields.
My Dental Clinic
Billing Ledger Entry
Odoo CRM
account.move (custom reference)
1:1Patient billing history—charges, payments, adjustments—migrates as a custom JSON field on res.partner holding the ledger array. For practices requiring full accounting continuity, FlitStack creates corresponding Odoo account.move records with manual entry flag since dental billing codes require ADA-to-product mapping first.
My Dental Clinic
Provider / Staff Record
Odoo CRM
res.users
1:1My Dental Clinic provider records map to Odoo res.users by email address match. Providers without Odoo user accounts become inactive user records with a custom staff_type field, ensuring provider names appear in appointment history without granting system access. Inactive provider records retain the provider's name and contact information, allowing historical appointments to display correctly while preventing login. The staff_type field can be set to 'provider' for reporting and filtering purposes.
My Dental Clinic
Document / Attachment
Odoo CRM
ir.attachment
1:1Patient documents—consent forms, treatment images, insurance cards—migrate as Odoo ir.attachment records linked to the corresponding res.partner. Files re-upload to Odoo's filestore. Inline images in notes download and rehost as attachments. The original filename and upload timestamp are preserved as custom fields (x_original_filename, x_original_upload_date). Large files are chunked during upload to avoid timeout. Access rights on attachments inherit from the contact record, ensuring only authorized staff can view sensitive documents.
My Dental Clinic
Referral Source
Odoo CRM
crm.lead (custom field)
1:1Referral source tracking in My Dental Clinic (e.g., insurance network, colleague referral, marketing campaign) migrates as a custom Selection field on res.partner. Odoo's crm.lead module handles opportunity tracking separately if the practice uses Odoo CRM for case referrals. Selection options match My Dental Clinic source categories; admin can add new values via Odoo Studio. The referral can link to a crm.lead for follow‑up activities and conversion tracking.
My Dental Clinic
Custom Dental-Specific Fields
Odoo CRM
ir.model.fields (custom)
1:1Any custom fields unique to the My Dental Clinic setup—tooth charts, specific procedure codes, clinical flags—migrate as Odoo custom fields via ir.model.fields. Field type mapping applies: numeric dental measurements map to Float fields, yes/no clinical flags map to Boolean fields, and text observations map to Text fields.
My Dental Clinic
Multi-Location / Branch
Odoo CRM
res.company
1:1If My Dental Clinic manages multiple clinic locations, each location becomes a separate res.company in Odoo, with patient records tagged by company_id foreign key. Multi-company setup requires Odoo Custom Plan and pre-migration configuration by the Odoo admin. After migration, company's users are linked to their res.company, enabling per‑company reporting and access control. Security rules restrict patient visibility to the owning company, and the admin can configure inter‑company sharing if needed.
| My Dental Clinic | Odoo CRM | Compatibility | |
|---|---|---|---|
| Patient | res.partner (Contact)1:1 | Fully supported | |
| Patient Insurance Information | res.partner (custom fields)1:1 | Fully supported | |
| Treatment Plan | res.partner (custom fields) + mail.message1:1 | Fully supported | |
| Appointment / Visit Record | calendar.event1:1 | Fully supported | |
| Billing Ledger Entry | account.move (custom reference)1:1 | Fully supported | |
| Provider / Staff Record | res.users1:1 | Fully supported | |
| Document / Attachment | ir.attachment1:1 | Fully supported | |
| Referral Source | crm.lead (custom field)1:1 | Fully supported | |
| Custom Dental-Specific Fields | ir.model.fields (custom)1:1 | Fully supported | |
| Multi-Location / Branch | res.company1: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.
My Dental Clinic gotchas
Dental ledgers are structurally complex to migrate accurately
Tooth-numbering systems differ between dental platforms
Insurance carrier IDs must be re-mapped post-migration
Custom clinical note templates may not map directly
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 My Dental Clinic data export and Odoo environment readiness
FlitStack reviews your My Dental Clinic data export capabilities—whether via built-in report generation, direct database query, or API access if available. Simultaneously, we audit your Odoo environment: plan level (Community vs. Standard vs. Custom), existing custom fields on res.partner, calendar module activation status, and multi-company configuration. This audit produces a pre-migration checklist specifying which Odoo fields to create via Studio, which Odoo apps to enable, and which My Dental Clinic data objects to include or exclude from migration.
Design custom field schema in Odoo for dental-specific data
Based on the audit, FlitStack delivers a custom field specification document listing every custom field to create on res.partner, calendar.event, and ir.attachment before migration. For each field: name, Odoo field type (Char, Selection, Text, Date, Float, Boolean), and options for Selection fields. If your Odoo plan includes Studio access, we provide step-by-step Studio instructions. For Community plans, we provide SQL/CSV field creation scripts. The Odoo admin completes field creation; FlitStack validates field existence before proceeding to migration.
Resolve provider-to-user mappings by email match
FlitStack extracts provider records from My Dental Clinic and matches them against existing Odoo res.users by email address. Matches link appointment records directly. Unmatched providers trigger a decision point: create new Odoo user accounts for active providers, or create inactive placeholder users for historical provider records. FlitStack generates a provider mapping spreadsheet for your admin to review and confirm before migration runs. Owner assignment on patient records follows the same email-match logic for res.partner.
Execute sample migration with field-level validation
A representative slice of 50–200 patient records migrates first, spanning different record ages, insurance configurations, and appointment volumes. FlitStack validates custom field population, calendar event linkage, attachment preservation, and provider user_id resolution. A field-level diff report compares source My Dental Clinic values against destination Odoo values. Your team reviews the diff; FlitStack adjusts field mapping rules or transformation logic based on findings before the full migration commits.
Run full migration with delta-pickup window and rollback readiness
The full dataset migrates in sequenced batches: patient demographics first (res.partner), then insurance and treatment custom fields via write operations on created records, then calendar events linked to user_id, then attachments. A 24–48 hour delta-pickup window captures any patient records or appointments modified in My Dental Clinic during the cutover period. Audit logging records every create, write, and link operation. One-click rollback reverts all Odoo changes if reconciliation identifies data integrity issues.
Platform deep dives
My Dental Clinic
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between My Dental Clinic and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across My Dental Clinic and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between My Dental Clinic 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
My Dental Clinic: Not publicly documented..
Data volume sensitivity
My Dental Clinic 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 My Dental Clinic to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your My Dental Clinic 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 My Dental Clinic
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.