CRM migration

Migrate from AeronaClinic to Odoo CRM

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

AeronaClinic logo

AeronaClinic

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between AeronaClinic and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

AeronaClinic stores patient demographics, treatment plans, appointment histories, and billing records in a clinical schema optimized for healthcare workflows. Odoo CRM models the same data using res.partner for contacts and companies, crm.lead for opportunities and pipeline stages, and mail.message for activity logging. The migration carries all patient records, appointment timestamps, treatment metadata, and custom fields into Odoo custom fields on res.partner and crm.lead, while clinical-specific data (treatment plans, medical histories) is preserved as structured notes or migrated as custom field values for reference. We use Odoo's XML-RPC API to load records in dependency order — res.partner first, then crm.lead with partner_id lookups — and surface any automations, recall reminders, or clinical workflows as an export-for-rebuild package. Odoo Community edition API access requires no additional licensing cost; Odoo Enterprise adds automated upgrade paths and priority support but the data model is identical across editions.

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

AeronaClinic logo

AeronaClinic

What's pushing teams away

  • Some practices find the feature set narrower than larger platforms like Dentrix Ascend or CareStack, reporting that advanced clinical workflows or specialist modules require third-party workarounds.
  • The lack of a mobile application means practitioners who want to chart or check schedules from a phone or tablet report friction compared to mobile-first alternatives.
  • Clinics with multiple locations or complex multi-practitioner setups report that reporting and analytics tools, while functional, are less flexible than what spreadsheet-based analysis can deliver.
  • Users occasionally cite the learning curve for staff unfamiliar with cloud-based interfaces, particularly for features like KPI dashboards and automated reporting that replace legacy paper or spreadsheet workflows.

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

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

AeronaClinic

Patient Record

maps to

Odoo CRM

res.partner

1:1
Fully supported

AeronaClinic patient demographics (name, date of birth, contact details) map directly to Odoo res.partner fields. The partner_id becomes the anchor record for all other linked objects in the migration. Patient type (NHS or Private) is preserved as a custom.selection field on the res.partner record. Original AeronaClinic create dates are stored in a custom datetime field for audit traceability.

AeronaClinic

Patient Address

maps to

Odoo CRM

res.partner (address fields)

1:1
Fully supported

Street, city, postcode, and country fields map field-for-field to Odoo res.partner address components. Where AeronaClinic stores multiple addresses per patient, the primary address becomes the main res.partner address, while any secondary addresses are created as separate contact records linked via type='contact' to the primary partner.

AeronaClinic

Appointment

maps to

Odoo CRM

crm.lead

1:1
Fully supported

AeronaClinic appointments are transformed into Odoo crm.lead records for pipeline visibility (treatment plans, upsell opportunities). The appointment date maps to crm.lead.create_date; appointment status maps to stage_id. For pure appointment scheduling needs, Odoo Calendar app installation alongside CRM is recommended post-migration.

AeronaClinic

Treatment Plan

maps to

Odoo CRM

Custom fields on res.partner + crm.lead

1:1
Fully supported

AeronaClinic treatment plan items (procedure codes, estimated costs, clinical notes) have no native Odoo equivalent. Custom.char and custom.text fields are created on res.partner to store treatment history as structured values. If AeronaClinic exports treatment plan PDFs, Odoo Documents app provides a native repository for full plan attachment.

AeronaClinic

Clinical Notes

maps to

Odoo CRM

mail.message on res.partner

1:1
Fully supported

Free-text clinical notes from AeronaClinic are transformed into Odoo mail.message records attached to the res.partner. Original timestamps and author information are preserved during migration. For structured clinical notes in SOAP format, each section maps into corresponding custom fields on the partner record for searchable clinical data.

AeronaClinic

Payment / Invoice Record

maps to

Odoo CRM

account.move (via Accounting app)

1:1
Fully supported

AeronaClinic payment transactions map to Odoo account.move records when the Odoo Accounting app is active. Amount, date, payment method, and patient reference are all preserved. If only the CRM app is active, payment data is stored as custom monetary fields on res.partner until Accounting is enabled.

AeronaClinic

Referring Practitioner

maps to

Odoo CRM

res.partner (type=contact)

1:1
Fully supported

Referring dentist or doctor details are stored as a separate res.partner contact record linked to the patient partner via the 'contact' relation type. This directly mirrors AeronaClinic's referral link model. The referring practitioner's name, practice, and contact details map to corresponding fields on the contact partner record.

AeronaClinic

Recall / Reminder

maps to

Odoo CRM

mail.activity on res.partner

1:1
Fully supported

AeronaClinic recall reminders (6-month checkup, annual review) transform into Odoo mail.activity records with activity_type='Reminder' and deadline set to the recall date. The Odoo Activity Queue in CRM manages follow-up tasks without the clinical scheduling complexity of AeronaClinic's native calendar.

AeronaClinic

Custom Property (clinic-specific)

maps to

Odoo CRM

ir.model.fields (x_ custom fields)

1:1
Fully supported

Any AeronaClinic custom fields unique to the clinic — such as preferred dentist, medical alert flags, membership tier, or referral source — are created as Odoo custom fields with x_ prefix on res.partner. The full custom field creation script is delivered as part of the migration plan for repeatable deployment.

AeronaClinic

Document / Attachment

maps to

Odoo CRM

ir.attachment linked to res.partner

1:1
Fully supported

Patient-uploaded documents, consent forms, and ID scans migrate as Odoo ir.attachment records linked to the res.partner via res_model='res.partner' and res_id=partner_id. Original filenames and create dates are preserved throughout the migration for document audit compliance.

AeronaClinic

User / Practitioner

maps to

Odoo CRM

res.users

1:1
Fully supported

AeronaClinic staff logins map to Odoo res.users entries. Owner resolution uses email address matching to ensure each user's records are assigned to the correct Odoo user account. Any unmatched practitioners are flagged in the migration report for manual Odoo user creation before migration proceeds.

AeronaClinic

Insurance / NHS Details

maps to

Odoo CRM

Custom fields on res.partner

1:1
Fully supported

NHS number, insurance provider, policy reference, and coverage details have no native Odoo field. These migrate as custom.char and custom.selection fields on res.partner. For high-volume insurance data, we recommend a separate insurance policy document object via Odoo Documents if the data volume warrants dedicated storage.

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.

AeronaClinic logo

AeronaClinic gotchas

High

Password-protected API limits export options

Medium

Large historical record volumes in dental practices

Medium

Payment plan instalment schedules require manual sign-off

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

  • AeronaClinic API export scope is undocumented — data extraction may require manual export or support assistance

    AeronaClinic's API documentation is password-protected and not publicly accessible, which means our team must probe the actual export endpoints during discovery or request a data export directly from Aerona support. We recommend requesting a full CSV or SQL export of patient records before migration planning begins. If no export is available, FlitStack sequences a screen-scrape or API-driven read pass to extract records in dependency order. This discovery step adds 1–3 days to the timeline but prevents mid-migration data gaps.

  • Clinical data maps to generic CRM fields — no native healthcare schema in Odoo

    Odoo CRM has no native concept of treatment plans, clinical notes, medical alerts, or NHS numbers. Every clinical data point requires a custom field on res.partner or crm.lead. We create these as x_-prefixed custom fields during migration, but Odoo Studio (Enterprise) or manual field creation (Community) is needed to expose them in the UI layout. Teams migrating from AeronaClinic should plan 1–2 hours of Odoo admin work post-migration to arrange custom fields into sensible form views using Odoo Studio or XML view inheritance.

  • Odoo XML-RPC API rate limits vary by hosting plan — Community has no guaranteed SLA

    Odoo Community edition exposes the XML-RPC API at no additional cost, but Odoo SAAS Online (cloud-hosted) imposes request throttling that can slow large-volume migrations. Self-hosted Odoo instances via Odoo.sh or on-premises Docker have no throttling. FlitStack monitors response times during the migration run and backs off automatically if HTTP 429 responses appear. For clinics with 50,000+ patient records, we recommend a self-hosted Odoo instance or Odoo Enterprise to avoid rate-limit delays.

  • Appointment scheduling requires the Odoo Calendar app — CRM alone lacks scheduling

    AeronaClinic's native calendar with chair-slot management has no direct Odoo CRM equivalent. The crm.lead Kanban pipeline tracks opportunity stages but does not schedule appointments. To preserve appointment scheduling in Odoo, the Calendar module must be installed and the Odoo Sales app activated. FlitStack maps AeronaClinic appointment dates to crm.lead create dates for pipeline visibility, but calendar-based scheduling needs to be rebuilt using Odoo's calendar app or a third-party integration. This recommendation applies to any healthcare scheduling scenario, not just clinical environments.

  • NHS and private patient type split needs custom field enforcement

    AeronaClinic distinguishes NHS and private patients with a patient_type field that affects billing workflows. In Odoo, this distinction has no native effect — it is just a text value in a custom field. Billing logic that routes NHS claims to a specific cost centre in AeronaClinic will not replicate in Odoo unless Odoo Accounting is configured with separate payment terms and journal accounts per patient type. We flag this as a post-migration configuration item; the data migrates correctly but the accounting logic requires manual setup in Odoo Accounting.

Migration approach

Six steps for a successful AeronaClinic to Odoo CRM data migration

  1. Request AeronaClinic data export and map the schema

    We start by requesting a full data export from AeronaClinic — ideally a structured CSV or database dump covering patients, appointments, treatment plans, payments, and documents. If no export is available, FlitStack runs a discovery API pass to catalogue the actual record types and fields present. We then produce a schema map showing every AeronaClinic field and its proposed Odoo custom field or standard field target. This schema map is the foundation for all subsequent steps and must be approved before data movement begins.

  2. Create Odoo custom fields and install required apps

    Before records are loaded, we create all custom fields identified in the schema map — x_nhs_number, x_medical_alert, x_clinical_notes, x_patient_type, and recall/appointment custom fields on res.partner and crm.lead. If the clinic needs appointment scheduling, we install the Odoo Calendar and Sales apps during this step. We deliver the custom field creation script so your Odoo admin can re-run it on any environment. Field-level UI placement via Odoo Studio or view XML is not included but is recommended post-migration.

  3. Migrate res.partner records with custom field values

    All AeronaClinic patient records load as Odoo res.partner entries via XML-RPC in batches of 500 records. We map every patient property to its target custom field, preserve the original AeronaClinic create date in a custom datetime field, and store the AeronaClinic record ID for traceability. Referrer contacts load as separate res.partner records with type='contact' and are linked to the patient record. Documents attach to each partner via ir.attachment records. A representative sample of 50–100 records is validated against the source before the full load commits.

  4. Migrate crm.lead records for appointment and pipeline data

    Appointment records from AeronaClinic that represent treatment opportunities or follow-up pipeline items load as Odoo crm.lead records. Each lead links to its res.partner via partner_id, preserves the appointment date as create_date, and maps status to a stage_id picklist value. Practitioner assignment resolves by email match to Odoo res.users. Recall reminders generate mail.activity records on the linked partner with deadline set to the recall date. All leads are audited against the source count before proceeding.

  5. Run delta pickup and validate record counts

    A delta window opens at migration cutover — any AeronaClinic records created or modified during the migration run are pulled in a final pass. We validate total record counts, custom field population rates, and partner-to-lead linkage integrity. The delta window runs for 24–48 hours depending on clinic size. A field-level diff report is generated comparing source vs destination record counts by type. One-click rollback is available if the reconciliation report shows gaps exceeding the agreed tolerance threshold.

Platform deep dives

Context on both ends of the pair

AeronaClinic logo

AeronaClinic

Source

Strengths

  • Fully cloud-based with no local server dependency, accessible from any browser on any device.
  • Integrated payment processing via GoCardless and Stripe with automatic reconciliation.
  • Patient Portal enables 24/7 appointment booking, form completion, and treatment plan viewing by patients.
  • Strong customer service reputation with 5.0/5.0 score for support on Capterra.
  • Built-in GDPR consent recording and e-signature features for UK/EU regulatory compliance.

Weaknesses

  • No native mobile application, limiting access for practitioners who prefer tablet or phone workflows.
  • Narrower feature set compared to enterprise dental platforms like Dentrix Ascend or CareStack, potentially requiring third-party integrations for specialist workflows.
  • The API documentation is password-protected and not publicly accessible, complicating third-party migration tooling and data export.
  • Limited published pricing information beyond the £45/month starting rate, with no public tier comparison.
  • Analytics and reporting dashboards are functional but lack the customisation depth that power users and multi-location practices require.
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 AeronaClinic and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    AeronaClinic: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most AeronaClinic-to-Odoo CRM migrations complete within 48–72 hours for a clinic with fewer than 25,000 patient records. Larger setups with 100,000+ records, multiple custom fields, and document attachments extend to 5–8 days. The main variable is whether AeronaClinic provides a full API export or requires screen-based extraction, which adds 1–3 days of discovery time before actual data movement begins. Delta pickup windows during cutover add another 24–48 hours depending on clinic activity during the transition.

Adjacent paths

Related migrations to explore

Ready when you are

Move from AeronaClinic.
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