CRM migration

Migrate from My Dental Clinic to Odoo CRM

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 logo

My Dental Clinic

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between My Dental Clinic and Odoo CRM.

Complexity

BStandard

Timeline

3–5 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

My Dental Clinic logo

My Dental Clinic

What's pushing teams away

  • Customer service scores lag behind category leaders, with users reporting slow response times and difficulty reaching support during urgent issues.
  • Feature set feels limiting as practices grow beyond single-location operations, with fewer advanced reporting and multi-location management tools than competitors.
  • Lower value-for-money ratings compared to platforms offering broader feature bundles at similar price points.
  • Integration ecosystem is narrower than major dental platforms, making connectivity to specialized imaging or lab systems a friction point.

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 My Dental Clinic objects map to Odoo CRM

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

maps to

Odoo CRM

res.partner (Contact)

1:1
Fully supported

My 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

maps to

Odoo CRM

res.partner (custom fields)

1:1
Fully supported

Insurance 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

maps to

Odoo CRM

res.partner (custom fields) + mail.message

1:1
Fully supported

Treatment 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

maps to

Odoo CRM

calendar.event

1:1
Fully supported

My 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

maps to

Odoo CRM

account.move (custom reference)

1:1
Fully supported

Patient 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

maps to

Odoo CRM

res.users

1:1
Fully supported

My 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

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Patient 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

maps to

Odoo CRM

crm.lead (custom field)

1:1
Fully supported

Referral 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

maps to

Odoo CRM

ir.model.fields (custom)

1:1
Fully supported

Any 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

maps to

Odoo CRM

res.company

1:1
Fully supported

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

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.

My Dental Clinic logo

My Dental Clinic gotchas

High

Dental ledgers are structurally complex to migrate accurately

Medium

Tooth-numbering systems differ between dental platforms

Medium

Insurance carrier IDs must be re-mapped post-migration

Medium

Custom clinical note templates may not map directly

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

  • Odoo Custom Plan required for External API imports

    My Dental Clinic to Odoo migrations use Odoo's External API (XML-RPC) to create res.partner, calendar.event, and ir.attachment records. However, Odoo restricts External API access to Custom Plan subscribers. Community and Standard plan holders cannot use XML-RPC for automated imports. If your practice is on Odoo Community or Standard, FlitStack can still migrate via CSV import through Odoo's built-in Data Import tool, but batch sizes are limited to 500 records per import and relationship resolution requires manual field mapping for each batch. Confirm your Odoo plan before scheduling the migration.

  • Dental procedure codes require custom field setup before migration

    Odoo res.partner has no native fields for ADA dental procedure codes, treatment tooth numbers, or clinical status flags. Before FlitStack imports patient records, an Odoo admin must create these custom fields via Odoo Studio (Custom Plan) or by directly inserting ir.model.fields records (Community with technical access). Fields created mid-migration cause import failures for records already queued. We deliver a custom-field creation checklist as part of the migration plan so your admin pre-creates all required fields before data moves.

  • Multi-location practices need Odoo multi-company configuration pre-setup

    If My Dental Clinic manages multiple clinic branches and each branch's patient records should stay isolated in Odoo (for reporting and access control), Odoo's multi-company model requires each branch to exist as a separate res.company record. Patient records then carry a company_id foreign key. This setup must exist before migration—Odoo does not allow retroactively assigning company_id to existing records in bulk. Practices without multi-company configuration see all patients land under a single default company, requiring manual re-assignment afterward.

  • Appointment-to-user email matching creates orphaned events for inactive providers

    Odoo calendar.event requires a valid user_id to display on the calendar view and trigger activity notifications. When My Dental Clinic provider records lack matching email addresses in Odoo, FlitStack creates inactive placeholder user records. These inactive users cause calendar.event to show as 'busy' without a display name in the Odoo calendar Kanban view. Practices should decide before migration whether inactive providers should retain calendar history or if only active-provider appointments should migrate.

  • Insurance claim status tracking has no native Odoo equivalent

    My Dental Clinic tracks insurance claim filing status (Submitted, Pending, Denied, Paid) as a patient or billing record field. Odoo has no native insurance claims module in the standard CRM or Accounting apps. Claim status migrates as a custom Selection field on res.partner, but automated reminders for pending claims require Odoo Studio workflow rules or a third-party dental insurance app from the Odoo Apps Store. The claim history does not trigger Odoo's native invoice reconciliation since dental ADA codes do not map to Odoo product prices by default.

Migration approach

Six steps for a successful My Dental Clinic to Odoo CRM data migration

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

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

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

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

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

Context on both ends of the pair

My Dental Clinic logo

My Dental Clinic

Source

Strengths

  • Web-based, browser-accessible interface requiring no local server installation or maintenance overhead.
  • Automated patient communication tools including appointment reminders and intake form collection reduce front-desk workload.
  • Specialized dental workflow features including tooth charting and perio charting built into the core product rather than add-ons.

Weaknesses

  • Narrower third-party integration ecosystem compared to major dental platforms, limiting connectivity with specialized imaging and lab vendors.
  • Per-feature pricing model can become unpredictable in cost as practices add modules over time.
  • Customer service responsiveness scores trail category competitors, creating risk for practices that need timely support during transitions.
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 My Dental Clinic and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across My Dental Clinic and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between My Dental Clinic 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

    My Dental Clinic: Not publicly documented..

  • Data volume sensitivity

    B

    My Dental Clinic doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your My Dental Clinic 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 My Dental Clinic to Odoo CRM data migrations

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

Can't find your answer?

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 consultation

Most My Dental Clinic to Odoo CRM migrations complete within 3–5 business days for practices with fewer than 5,000 patient records. Larger practices with 20,000+ records, multi-location setups requiring Odoo multi-company configuration, or extensive treatment plan histories extend to 2–3 weeks. The longest single step is custom field setup in Odoo Studio—if your admin pre-creates fields before FlitStack begins, migration clock time drops significantly.

Adjacent paths

Related migrations to explore

Ready when you are

Move from My Dental Clinic.
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