CRM migration

Migrate from axiUm Dental to Odoo CRM

Field-level mapping, validation, and rollback between axiUm Dental and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

axiUm Dental logo

axiUm Dental

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

13 of 13

objects map 1:1 between axiUm Dental and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

axiUm Dental is an on-premise, desktop-delivered EHR and practice management system built for academic dental institutions and enterprise dental service organizations. Its data model is organized around patient cards, clinical treatment entries, perio chart records, appointment schedules, financial transactions, and student/faculty user accounts — with HL7 interfaces for interoperability and a proprietary API limited to CE 7.04 and above. Odoo CRM uses a res.partner-based contact model, crm.lead for lead/opportunity tracking, crm.team for sales structures, and a PostgreSQL-backed ORM accessible via XML-RPC or JSON-RPC. The fundamental challenge of this migration is that axiUm's clinical data model — including odontogram charting, perio pocket measurements, treatment plan histories, and medical alert flags — has no native equivalent in Odoo CRM's standard object schema and must be preserved as custom fields or managed as reference attachments. We extract axiUm patient demographics and financial records via CSV export or the proprietary API, transform them into Odoo res.partner and crm.lead records, create custom fields on the res.partner model for clinical metadata, and re-upload attachments to Odoo's ir.attachment store. Workflows, automated recall reminders, and clinical decision-support rules do not migrate and must be rebuilt using Odoo Studio or custom Python modules. A scoped read-access window on axiUm during cutover ensures delta records are captured for a final synchronization pass.

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

axiUm Dental logo

axiUm Dental

What's pushing teams away

  • Outdated desktop-first interface requires significant user training, and multi-step workflows for completing post-treatment documentation frustrate clinical staff and slow patient throughput.
  • Limited visibility for custom medical alerts — non-standard health history items that should flag prominently in a patient record require IT configuration to display correctly, creating patient safety risks.
  • Transitioning from a dental school environment to a commercial dental service organization reveals that axiUm's student evaluation and competency tracking features are overkill for private practice workflows.
  • Customer support responsiveness is inconsistent, with institutional IT staff often left to resolve configuration issues without vendor escalation paths.
  • Proprietary data schema and limited published API documentation make third-party integrations and data portability difficult without Exan Professional Services involvement.

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

Each row shows how a axiUm Dental 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.

axiUm Dental

Patient Card

maps to

Odoo CRM

res.partner

1:1
Fully supported

axiUm patient demographics (name, date of birth, contact info, address) map directly to Odoo res.partner fields. The partner_type flag (patient vs. guarantor) is preserved as a custom selection field. Original axiUm patient ID stored as Source_System_ID__c for traceability and post-migration deduplication across the Odoo res.partner model.

axiUm Dental

Patient Card — Guarantor

maps to

Odoo CRM

res.partner (separate record)

1:1
Fully supported

When axiUm stores a separate guarantor record, we create a second res.partner and link it via parent_id on the patient partner record. This mirrors Odoo's company-contact hierarchy where a guarantor acts as the parent organization for billing purposes. The guarantor relationship is critical for insurance claim workflows in Odoo's accounting module, ensuring that billing addresses and payment responsibilities align correctly.

axiUm Dental

EHR — Treatment History

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Each completed treatment entry in axiUm (ADA code + tooth surface + provider + date) becomes a crm.lead note line or a custom treatment history field on the res.partner. We create one lead per treatment visit so Odoo's activity timeline reflects clinical visits. Lead name uses the ADA procedure description.

axiUm Dental

EHR — Medical Alerts

maps to

Odoo CRM

res.partner (custom.char)

1:1
Fully supported

axiUm medical alert flags have no Odoo CRM equivalent. We create a custom char field (Medical_Alert__c) on res.partner and populate it with the full alert text from axiUm. For multi-alert patients, we concatenate with semicolons. Odoo Studio can surface this as a red banner on the partner form.

axiUm Dental

Perio Chart

maps to

Odoo CRM

res.partner (custom.many2many)

1:1
Mapping required

axiUm Perio Chart stores probing depths per tooth site (six sites per tooth, full-mouth series). Odoo CRM has no perio model — we create a custom one2many or many2many field group capturing site, tooth number, measurement in mm, furcation class, and mobility grade. Institutions requiring CODA compliance reporting should request a dedicated Perio module from an Odoo developer.

axiUm Dental

Odontogram

maps to

Odoo CRM

ir.attachment + custom.char

1:1
Fully supported

axiUm's graphical tooth-chart odontogram has no Odoo CRM equivalent. We export the odontogram as a PDF image via axiUm's reporting engine and attach it to the res.partner record as an ir.attachment. A custom.char field (Odontogram_Ref__c) stores a URL or internal reference to the image file.

axiUm Dental

Transactions (Billing)

maps to

Odoo CRM

account.move

1:1
Fully supported

axiUm financial transactions (ADA codes, adjustments, insurance payments) map to Odoo account.move entries. We create invoices and payments under the patient's res.partner. ADA procedure codes are configured as Odoo products with the correct pricing. Provider production reports translate to Odoo analytic accounting entries.

axiUm Dental

Insurance Records

maps to

Odoo CRM

res.partner (custom fields)

1:1
Fully supported

axiUm stores insurance carrier name, group number, subscriber ID, and effective dates. We create custom.char fields (Insurance_Carrier__c, Group_Number__c, Subscriber_ID__c) on res.partner and map coverage type as a selection field. Odoo's Accounting app uses these for insurance billing workflows, enabling automated claim generation and coverage verification within the Odoo res.partner contact record.

axiUm Dental

Scheduler — Appointments

maps to

Odoo CRM

calendar.event

1:1
Fully supported

axiUm appointment records (date, time, operator, operatory, procedure type) map to Odoo calendar.event records linked to the res.partner patient. We create one event per appointment. The appointment status (completed, no-show, cancelled) becomes the calendar.event state field, enabling Odoo's activity reporting to reflect actual patient visit outcomes for operational analytics.

axiUm Dental

Recall Records

maps to

Odoo CRM

calendar.event (recurrent)

1:1
Fully supported

axiUm recall reminders (6-month hygiene, annual exam) translate to recurring calendar.event records in Odoo. We calculate the next recall date from the last completed appointment and create a recurrent event series under the patient's partner record. This approach preserves the recall cadence for hygiene follow-ups and enables Odoo CRM automated reminders to trigger patient outreach through Odoo's mail.thread communication tools.

axiUm Dental

Faculty / Student Users

maps to

Odoo CRM

res.users

1:1
Fully supported

axiUm user accounts (faculty, student, staff) map to Odoo res.users. We resolve by email match and create users with the appropriate access rights group (Dental Faculty, Dental Student, Office Staff). axiUm CODA tracking fields become custom fields on the res.users record.

axiUm Dental

Attachments / Consent Forms

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

axiUm-scanned consent forms, ID documents, and clinical attachments are downloaded and re-uploaded to Odoo's ir.attachment store, linked to the corresponding res.partner record. File size limits are enforced per Odoo's attachment configuration. PDF format is preserved, and document metadata including original scan dates and document types are stored in the ir.attachment description field for regulatory compliance and audit trail purposes.

axiUm Dental

Clinical Notes / SOAP Notes

maps to

Odoo CRM

mail.message + custom.char

1:1
Fully supported

axiUm clinical note entries (Subjective, Objective, Assessment, Plan) have no Odoo CRM equivalent. We preserve them as mail.message records on the res.partner chatter or as custom text fields (Clinical_Note__c) for shorter entries. Institutions should configure Odoo's Discuss app to surface these on the partner timeline.

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.

axiUm Dental logo

axiUm Dental gotchas

High

Citrix dependency for on-premise deployments

Medium

Custom form schema varies per institution

High

MiPACS imaging data lives outside axiUm's database

Medium

CDT code versioning drift between systems

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

  • Odontogram and Perio chart data have no native Odoo CRM equivalent

    axiUm's EHR module stores graphical tooth charts (odontograms) and full-mouth periodontal probing records as structured clinical data. Odoo CRM has no clinical object model — there is no crm.odontogram or crm.perio equivalent in the standard Odoo Apps Store catalog. The migration approach is to export odontogram images as PDF files via axiUm's reporting engine and attach them to the res.partner record as ir.attachment records, then create a custom perio measurement model (tooth number, site, measurement in mm, furcation class, mobility grade) on the partner. Academic institutions needing CODA compliance reporting on perio metrics should budget for a custom Odoo module built by an Odoo developer — this is not a standard migration deliverable and must be scoped separately.

  • axiUm's on-premise, desktop-delivered architecture limits real-time API access

    axiUm Dental is primarily delivered as a Windows desktop application, often via Citrix, and its API documentation (Exan API Guide, CE 7.04+) describes an XML-based interface that requires the application server to be reachable. Many academic institutions run axiUm on isolated network segments behind institutional firewalls, making external API polling unreliable or blocked entirely. FlitStack AI works around this by coordinating with the institution's IT team to open scoped read-access endpoints or by using axiUm's built-in CSV export functionality as the primary data extraction mechanism when the API is unavailable. Institutions must confirm API or export-file access before the migration scope is finalized.

  • HL7 FHIR outbound feeds require manual re-implementation in Odoo

    axiUm's interoperability module supports Carequality health data exchange and HL7 FHIR R4 outbound feeds for sharing patient health records with external medical providers. Odoo CRM has no native HL7 interface — there is no ir.model for HL7 messages in the standard Odoo installation. Any Carequality connections or HL7 feeds configured in axiUm must be rebuilt as custom Python modules in Odoo or replaced with Odoo's email-based communication tools (mail.thread on res.partner). Institutions that rely on Carequality for medical-dental integration referrals should flag this during discovery so the migration plan can include a separate integration rebuild scope.

  • ADA procedure codes and provider production tracking require Odoo product + analytic configuration

    axiUm's Transactions module stores treatment records linked to ADA procedure codes (D0120, D2750, etc.) and tracks provider production by provider ID. Odoo CRM does not ship with an ADA code library — procedure codes must be created as product.product records in Odoo's Inventory app (or the product variant on a per-code basis), and provider production reports must be built using Odoo Analytic Accounting with custom criteria matching the ADA codes assigned to each provider's treatment records. We map each ADA code to a product record during migration, but the analytics configuration for CODA-style production reporting requires post-migration setup by the institution's Odoo administrator.

  • axiUm student evaluation and CODA tracking data has no Odoo equivalent

    axiUm Academic includes CODA-compliant student evaluation tracking — faculty can grade student procedures, record competency milestones, and generate CODA accreditation reports. Odoo CRM's res.users model tracks which users exist but has no native competency framework, procedure grading, or CODA reporting module. Student evaluation data from axiUm can be preserved as custom fields on res.users (Procedure_Competency__c, CODA_Level__c) as free-text records, but institutions requiring structured CODA reporting will need a custom Odoo module or an external reporting tool that queries the migrated evaluation data.

Migration approach

Six steps for a successful axiUm Dental to Odoo CRM data migration

  1. Establish axiUm data extraction path

    FlitStack AI works with the institution's IT team to confirm whether the axiUm API (CE 7.04+) is reachable from FlitStack's migration environment, or whether CSV exports via axiUm's built-in reporting engine are the primary extraction mechanism. For API-based extraction, we test read-only credentials against the /patients, /appointments, /treatments, and /transactions endpoints. For export-based extraction, we provide a data export specification listing all required fields per object and the file format (CSV or Excel) that preserves relationship keys between patient records and their treatment history.

  2. Map axiUm data model to Odoo schema and create custom fields

    Before any records are written to Odoo, we create the custom fields required for clinical metadata — Medical_Alert__c, Allergy_List__c, Insurance_Carrier__c, Tooth_Surface__c, and the perio measurement model — on the res.partner model using Odoo's Settings > Technical > Models UI or via XML data loading. ADA procedure codes are pre-created as product.product records with the code in the default_code field. All field creation is documented in the Odoo setup plan so the institution's admin can replicate it in production before the migration run.

  3. Migrate patient demographics and guarantor relationships

    We run the patient card migration first since all other objects (treatments, appointments, attachments) link back to the patient record. axiUm patient IDs are stored as Source_System_ID__c on each res.partner so that downstream object imports can resolve the foreign key. Where axiUm stores a separate guarantor record, we create a second res.partner and set the patient record's parent_id to the guarantor, mirroring Odoo's company-contact hierarchy. Provider and faculty users are resolved by email match to Odoo res.users.

  4. Import clinical records, perio data, and financial transactions

    Treatment entries from axiUm are mapped to crm.lead records (one per visit) linked to the patient partner. ADA codes are resolved to product.product IDs already created in step 2. Perio chart site measurements are written to the custom perio model. Financial transactions (billing, insurance adjustments, provider production) are written to Odoo account.move records under the patient partner. Each import batch is validated against Odoo's ORM constraints before the next batch begins, and we surface a batch-level diff showing record counts and any skipped rows with reason codes.

  5. Run sample migration with field-level diff

    A representative slice — typically 200–500 patient records spanning a range of treatment types, insurance configurations, and attachment counts — migrates first. We generate a field-level diff between the source axiUm export and the destination Odoo records so the institution's clinical and business-office staff can verify mapping accuracy for medical alerts, ADA code linkage, and appointment status before the full run commits. Any field mapping corrections are applied to the migration script before the production run.

  6. Full migration with delta-pickup cutover

    The full migration runs against the institution's Odoo instance using XML-RPC. During the cutover window, axiUm remains fully operational — FlitStack AI uses scoped read-only access to capture any records created or modified since the initial extraction. A final delta-sync pass applies those in-flight changes. Audit log records every operation (create, write, skip) with source system ID. One-click rollback is available for 48 hours post-migration: if reconciliation identifies missing or incorrectly mapped records, the entire partner and clinical record set can be reverted and the migration re-run with corrected field mappings.

Platform deep dives

Context on both ends of the pair

axiUm Dental logo

axiUm Dental

Source

Strengths

  • Market-leading position in North American dental academic institutions with 90%+ penetration.
  • Comprehensive HIPAA-compliant EHR combining clinical, financial, and educational data in one system.
  • Modular architecture allows institutions to license only the modules relevant to their clinical and educational workflows.
  • Citrix-delivered desktop access and web-based PatientAccess and DoctorAccess portals provide deployment flexibility.
  • CODA accreditation compliance built into reporting and student competency tracking.

Weaknesses

  • Desktop-first application architecture with an outdated user interface that creates a steep learning curve for new users.
  • No publicly available API documentation for customers — the REST API exists only in CE 7.04+ and requires a software maintenance agreement to access.
  • Medical alert configuration lacks an intuitive interface, requiring IT-level setup to surface non-standard health flags.
  • Multi-step treatment completion workflow disperses post-care documentation across three or four separate areas of the application.
  • Limited pricing transparency with no published tiers — sales engagement required to obtain a quote.
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 axiUm Dental and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    axiUm Dental: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your axiUm Dental to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most axiUm-to-Odoo migrations complete in 48–72 hours of migration clock time for institutions with under 25,000 patient records and standard demographic data. Academic institutions with 100,000+ patient records, extensive perio chart histories, or multi-clinic axiUm deployments extend to 5–10 business days. The Odoo custom field setup phase (creating perio measurement models, ADA code products, and medical alert fields) is the longest pre-migration planning step and typically takes 3–5 days of configuration review with the institution's Odoo admin.

Adjacent paths

Related migrations to explore

Ready when you are

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