CRM migration
Field-level mapping, validation, and rollback between Dr.DENTES and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Dr.DENTES
Source
Odoo CRM
Destination
Compatibility
9 of 10
objects map 1:1 between Dr.DENTES and Odoo CRM.
Complexity
BStandard
Timeline
3–5 business days
Overview
Dr.DENTES is a dental-practice management platform centered on patient records, appointments, treatment plans, insurance carriers, and billing. It has no native concept of CRM pipelines or opportunity management. Odoo CRM uses crm.lead for leads and opportunities, res.partner for contacts and companies, and ir_attachment for document storage. These are structurally different models — the migration is a schema translation from a practice-management data model into a sales-cycle data model. We extract patient records, appointment history, treatment procedure codes, and insurance carrier data from Dr.DENTES via their API using scoped read access. Patient records map to Odoo res.partner (as contacts). Treatment histories, insurance fields, and practice-specific metadata become custom fields on the res.partner record. Appointment records convert to Odoo CRM activities (mail.message and calendar.event) linked to each contact with original timestamps preserved. Invoice data maps to custom fields since Odoo's native fields target sales orders rather than practice billing. Dr.DENTES workflows, appointment reminder automations, and billing-rule logic do not have an equivalent in Odoo CRM and must be rebuilt manually using Odoo's Studio automation tools or the Odoo Business Rules engine after migration. We export your workflow definitions as a rebuild reference. A delta-pickup window of 24–48 hours captures any new patients or appointments created in Dr.DENTES during the cutover window.
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 Dr.DENTES 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.
Dr.DENTES
Patient Record
Odoo CRM
res.partner (type=contact)
1:1Dr.DENTES patient records are the primary entity, storing name, date of birth, contact details, and address. These map directly to Odoo res.partner records with partner_type='contact'. Email addresses become the email field; phone and mobile map to phone and mobile fields respectively. Dr.DENTES patient IDs are preserved as a custom field (x_dr_dentes_patient_id) for reconciliation and delta-run de-duplication.
Dr.DENTES
Appointment
Odoo CRM
calendar.event + mail.message
1:1Dr.DENTES appointment records contain procedure codes, provider assignments, chair time, and appointment status (scheduled, completed, cancelled). Each appointment converts to an Odoo calendar.event for scheduled activities and a mail.message log entry on the patient contact's record. Original appointment dates and provider names are preserved as event fields and custom columns.
Dr.DENTES
Insurance Carrier
Odoo CRM
res.partner (type=company) + custom fields
many:1Dr.DENTES stores insurance carrier name and policy details against each patient. The carrier name maps to a separate res.partner record with partner_type='company' (so the insurance entity can be reused across multiple patient contacts). Policy number, group number, and coverage type become custom fields on the patient contact record. We create the carrier partner first, then link patient contacts via a custom insurance_carrier_id Many2one field.
Dr.DENTES
Treatment Procedure Record
Odoo CRM
mail.message (logged on res.partner)
1:1Dr.DENTES treatment procedure codes and descriptions have no native equivalent in Odoo CRM's sales model. We store treatment history as mail.message records with a custom x_treatment_code and x_procedure_description field on each patient contact. For practices with high treatment volume, we evaluate whether a custom crm.treatment model is warranted on the Odoo side.
Dr.DENTES
Invoice / Billing Record
Odoo CRM
Custom fields on res.partner
1:1Dr.DENTES invoice amounts, payment status, and outstanding balances map to custom fields (x_last_invoice_date, x_outstanding_balance, x_payment_status) on the patient contact record. Odoo has no native billing object in the CRM module — if the practice uses Odoo Accounting alongside CRM, invoice data can be linked via the sale.order and account.move models instead.
Dr.DENTES
Provider / Staff Member
Odoo CRM
res.users
1:1Dr.DENTES staff and provider records include name, role (dentist, hygienist, admin), and credentials. Providers map to Odoo res.users by email match. Unmatched providers are flagged before migration — the practice either creates the Odoo user first or assigns their patient records to an existing fallback user.
Dr.DENTES
Practice Location
Odoo CRM
res.partner (type=company)
1:1Dr.DENTES practice location data (name, address, phone) maps to a res.partner record with partner_type='company' representing the dental practice itself. For multi-location practices, each location becomes its own company-type partner, and patient contacts are linked to their primary location via a custom location_id Many2one field.
Dr.DENTES
Treatment Plan
Odoo CRM
mail.message + custom fields
1:1Dr.DENTES treatment plan records store planned procedures, estimated dates, and treatment status. These map as mail.message logs with custom fields x_planned_procedure and x_treatment_plan_status on the patient contact. Completed plan items are logged as historical entries; pending items remain as scheduled future activities.
Dr.DENTES
Patient Document / Attachment
Odoo CRM
ir.attachment
1:1Dr.DENTES stores patient documents (X-rays, consent forms, insurance cards) as file attachments. These are downloaded and re-uploaded to Odoo as ir.attachment records linked to the corresponding res.partner. Odoo file size limits apply per attachment — large imaging files may need to be hosted externally with a link stored in Odoo.
Dr.DENTES
Practice Workflow / Automation
Odoo CRM
None — rebuild required
1:1Dr.DENTES appointment reminder automations, recall workflows, and billing-rule logic do not migrate. These are platform-specific automation constructs with no Odoo CRM equivalent. We export Dr.DENTES workflow definitions as a structured document so the practice admin can rebuild them using Odoo Studio automation, server actions, or base.automation rules post-migration.
| Dr.DENTES | Odoo CRM | Compatibility | |
|---|---|---|---|
| Patient Record | res.partner (type=contact)1:1 | Fully supported | |
| Appointment | calendar.event + mail.message1:1 | Fully supported | |
| Insurance Carrier | res.partner (type=company) + custom fieldsmany:1 | Fully supported | |
| Treatment Procedure Record | mail.message (logged on res.partner)1:1 | Fully supported | |
| Invoice / Billing Record | Custom fields on res.partner1:1 | Fully supported | |
| Provider / Staff Member | res.users1:1 | Fully supported | |
| Practice Location | res.partner (type=company)1:1 | Fully supported | |
| Treatment Plan | mail.message + custom fields1:1 | Fully supported | |
| Patient Document / Attachment | ir.attachment1:1 | Fully supported | |
| Practice Workflow / Automation | None — rebuild required1: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.
Dr.DENTES gotchas
Turkish-compliance integrations are not portable
No published API
AI radiograph analysis is configuration, not patient data
Voice-capture metadata may not transfer
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
Confirm Dr.DENTES API access and extract data model
FlitStack initiates access by requesting Dr.DENTES API credentials from the practice's Dr.DENTES account manager. Once credentials are received, we map the available endpoints, enumerate custom fields on the patient record, and confirm which objects (appointments, treatment records, insurance data, documents) are accessible via API versus requiring manual export. We generate a Dr.DENTES data inventory document that becomes the baseline for all field mapping decisions.
Configure Odoo CRM schema with custom fields and carrier partners
Before data moves, we create all custom fields on res.partner (x_dr_dentes_patient_id, x_insurance_carrier_id, x_insurance_policy_number, x_outstanding_balance, x_last_visit_date, x_next_recare_date, x_patient_status, and others identified in the data inventory). We also pre-create insurance carrier partner records by extracting unique carrier names from Dr.DENTES. Provider staff members are matched to Odoo res.users by email — unmatched providers are flagged for the practice admin to create Odoo user accounts before migration.
Run sample migration with field-level validation
A representative slice of 50–200 patient records migrates first, including a cross-section of patients with appointments, treatment history, and insurance data. We generate a field-level diff report comparing source Dr.DENTES values against the resulting Odoo res.partner records and calendar.event entries. The practice reviews the diff and confirms that insurance carrier linking, appointment status mapping, and custom field values are correct before the full migration proceeds.
Execute full migration with delta-pickup window
The full migration runs using scoped read access on Dr.DENTES — practice staff continue working in Dr.DENTES throughout the migration window. A delta-pickup window of 24–48 hours after the initial migration captures any new patients, appointments, or treatment records created during cutover. FlitStack reconciles delta records against the initial migration run and upserts them into Odoo without duplication. All operations are logged to an audit trail; a one-click rollback reverts Odoo to its pre-migration state if reconciliation reveals data integrity issues.
Deliver migration report and workflow-rebuild reference
FlitStack delivers a migration completion report showing record counts per object, any unlinked or flagged records, and the delta capture summary. We also provide a structured export of Dr.DENTES workflow definitions (appointment reminders, recall sequences, billing rules) formatted as a rebuild reference for the practice admin to recreate in Odoo Studio or via server actions. Post-migration support is available for 30 days to address any contact-activity linkage issues or custom field corrections.
Platform deep dives
Dr.DENTES
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Dr.DENTES and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Dr.DENTES and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Dr.DENTES 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
Dr.DENTES: Not publicly documented.
Data volume sensitivity
Dr.DENTES 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 Dr.DENTES to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Dr.DENTES 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 Dr.DENTES
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.