CRM migration
Field-level mapping, validation, and rollback between Gensolve Practice Manager and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Gensolve Practice Manager
Source
Odoo CRM
Destination
Compatibility
11 of 11
objects map 1:1 between Gensolve Practice Manager and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Gensolve Practice Manager structures its data around a client-centric model: clients, appointments, clinical notes, referrers, inventory items, and custom forms built on practitioner-defined fields. Odoo CRM (res.partner, crm.lead, calendar.event, product.product, account.move) follows a different entity model with no native clinical-notes equivalent. The migration carries everything Gensolve stores natively — client demographics, appointment history, referrer details, inventory products, and custom field values — into Odoo's partner and activity records. Clinical notes, treatment plans, and practitioner-defined custom fields migrate as Odoo custom fields (ir.model.fields) or ir.attachment records. Gensolve's export mechanism relies on a file-based archive (ZIP) generated by Gensolve support rather than a self-service API, which means FlitStack sequences the extraction, normalization, and Odoo import in stages. Workflows, automations, Xero accounting links, and third-party integrations do not migrate — they are documented for manual rebuild in Odoo. A delta-pickup window captures any records modified during cutover so Odoo reflects Gensolve's final state at go-live.
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 Gensolve Practice Manager 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.
Gensolve Practice Manager
Client
Odoo CRM
res.partner
1:1Gensolve client records map directly to Odoo res.partner. Client name, date of birth, address, phone, email, and contact preferences become res.partner fields. Gensolve's client type (individual or organization) is preserved as a tag or res.partner category for segmentation in Odoo.
Gensolve Practice Manager
Appointment
Odoo CRM
calendar.event
1:1Gensolve appointment records (date, time, duration, practitioner, client link, status) map to Odoo calendar.event. The practitioner field resolves to an Odoo res.users record by email match. Appointment status (confirmed, attended, cancelled) becomes calendar.event stage or a custom field on the event record.
Gensolve Practice Manager
Clinical Note
Odoo CRM
ir.attachment / Custom field
1:1Gensolve clinical notes (treatment notes, SOAP notes, clinical correspondence) have no native Odoo equivalent. We create a long-text custom field (Clinical_Notes__c or similar) on res.partner and migrate note content as HTML-formatted text. Original create dates preserved as a companion datetime custom field. For lengthy historical notes, PDF export from Gensolve migrates as ir.attachment linked to the partner record.
Gensolve Practice Manager
Referrer
Odoo CRM
res.partner (company type)
1:1Gensolve referrers (referring practitioners, clinics, and organizations) map to Odoo res.partner with type=company and a Referrer category tag. Referrer contact details, address, and specialty map as partner fields. Referral source attribution on client records maps to a custom many2one field pointing to the referrer partner.
Gensolve Practice Manager
Clinic / Site
Odoo CRM
res.company / res.partner (location)
1:1Gensolve multi-site setups (clinics, satellite locations) map to Odoo res.company records if each location has its own invoicing entity, or to res.partner location addresses tagged with a Site category if they share a single legal entity. Site-specific appointment calendars become Odoo calendar.resources or calendar.event records scoped to the relevant company.
Gensolve Practice Manager
Inventory / Product
Odoo CRM
product.product
1:1Gensolve inventory items (consumables, equipment, rental stock) map to Odoo product.product. Product name, SKU, unit of measure, cost price, and sale price migrate directly. Inventory quantity is stored as stock.quant in Odoo Inventory (installed as a separate app). If Gensolve inventory tracks lot numbers or expiry dates, these map to stock.lot records in Odoo.
Gensolve Practice Manager
Xero Accounting Transactions
Odoo CRM
account.move
1:1Gensolve's Xero integration exports invoices, payments, and receipts to Xero. These transactions do not migrate into Odoo Accounting because the two systems maintain independent chart-of-accounts structures. We export a Xero-compatible summary for re-import into Odoo Accounting or re-connection via the Odoo Xero connector after go-live. Historical transaction totals are preserved as ir.attachment on the relevant client partner.
Gensolve Practice Manager
Custom Form / Custom Field
Odoo CRM
ir.model.fields (custom)
1:1Gensolve practitioner-defined custom fields on custom forms are inventoried during discovery. Each unique custom field maps to an Odoo ir.model.fields definition (char, text, selection, float, integer, date, boolean) before the data import runs. Field labels, help text, and pick-list options are reproduced exactly. Relationship fields (references to other Gensolve entities) become many2one fields pointing to the mapped Odoo model.
Gensolve Practice Manager
Online Booking Portal
Odoo CRM
calendar.booking (Odoo Website app)
1:1Gensolve's Online Booking Portal generates appointment requests that sync back to the Gensolve calendar. Odoo's equivalent is calendar.booking (part of the Website app) — this requires reconfiguration rather than migration. We document the existing booking slot types and practitioner availability from Gensolve as a setup reference for Odoo Website booking.
Gensolve Practice Manager
Attachment / File
Odoo CRM
ir.attachment
1:1Files stored in Gensolve (patient documents, uploaded letters, clinical images) are downloaded via the Gensolve Uploader and re-uploaded to Odoo ir.attachment linked to the corresponding res.partner record. File type, original filename, and upload date are preserved. Large files (>25MB per Odoo default limit) require filestore configuration before migration.
Gensolve Practice Manager
Practitioner / User
Odoo CRM
res.users
1:1Gensolve practitioner and staff accounts map to Odoo res.users. Resolution happens by email — each Gensolve practitioner email matched against an Odoo user email creates the OwnerId link on calendar.event and res.partner records. Unmatched practitioners are flagged before migration; clients owned by those practitioners are assigned to a fallback Odoo user or held for manual assignment.
| Gensolve Practice Manager | Odoo CRM | Compatibility | |
|---|---|---|---|
| Client | res.partner1:1 | Fully supported | |
| Appointment | calendar.event1:1 | Fully supported | |
| Clinical Note | ir.attachment / Custom field1:1 | Fully supported | |
| Referrer | res.partner (company type)1:1 | Fully supported | |
| Clinic / Site | res.company / res.partner (location)1:1 | Fully supported | |
| Inventory / Product | product.product1:1 | Fully supported | |
| Xero Accounting Transactions | account.move1:1 | Fully supported | |
| Custom Form / Custom Field | ir.model.fields (custom)1:1 | Fully supported | |
| Online Booking Portal | calendar.booking (Odoo Website app)1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Practitioner / User | res.users1: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.
Gensolve Practice Manager gotchas
Gensolve requires direct support coordination for data exports
Xero-linked invoices risk duplication without deduplication flags
Custom field registry is per-practice and requires enumeration before mapping
SMS and email template content is not stored as standalone records
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
Open Gensolve export request and stage the archive
FlitStack contacts your Gensolve account manager to initiate the database archive export. While waiting for Gensolve to produce the ZIP archive (1–5 business days depending on account manager availability), we scope the Gensolve data model: inventory of standard objects (clients, appointments, referrers, products), review of custom form definitions and practitioner-created fields, and assessment of file attachments and clinical notes volume. The archive is downloaded and decompressed into a staging environment where FlitStack parses the flat files and reconstructs relational links (client-to-appointment, client-to-referrer, client-to-product) before transformation begins.
Create Odoo custom fields and configure partner/product models
Before any data lands in Odoo, FlitStack reads Gensolve's custom field metadata and creates the corresponding ir.model.fields records in your Odoo database (Developer Mode required). Clinical note fields, custom date fields, gender selections, referral source fields, and any other practitioner-defined properties are pre-created with the correct field type, label, and help text. Odoo res.partner categories (tags) for client type and referrer segmentation are also created at this stage. We run a sandbox import against a copy of your Odoo database to verify that all fields resolve correctly and that no required fields are missing on the target model before the production import begins.
Migrate partners, referrers, and products in dependency order
Odoo requires res.partner records to exist before calendar.event records can link to them (via partner_ids), and product.product records to exist before sales order lines can reference them. FlitStack sequences the migration so that res.partner (clients and referrers) is migrated first, product.product second, and calendar.event (appointments) third. During partner migration, the Gensolve client-created-date is preserved as a custom datetime field since Odoo's native create_date reflects the migration timestamp. Referrer records are tagged with a Referrer category so they can be filtered separately from client partners in Odoo reporting views.
Run sample migration with field-level diff on 50–200 records
A representative slice of records (clients, appointments, referrers, products, and a sample clinical note attachment) migrates first into the Odoo sandbox. FlitStack generates a field-level diff comparing Gensolve source values against Odoo destination values for every mapped field. You review the diff to verify that custom field values landed correctly, that clinical notes rendered without data loss, that appointment times and durations are accurate, and that referrer attribution on client records is intact. Any mapping errors identified in the sample are corrected in the transformation scripts before the full migration runs. This step is the last checkpoint before committing to the full dataset.
Execute full migration and cutover with delta-pickup window
The full dataset migrates into your production Odoo instance. A delta-pickup window (typically 24–48 hours) runs concurrently: any Gensolve records modified or created during the cutover window are captured and imported into Odoo in a second pass, ensuring that the Odoo database reflects Gensolve's final state at go-live. Files and attachments are uploaded to Odoo ir.attachment linked to the correct res.partner and product.product records. An audit log records every record imported, its source Gensolve ID, and the Odoo ID assigned. One-click rollback is available if post-migration reconciliation reveals critical data issues requiring a restart.
Deliver rebuild reference documentation for Xero, automations, and booking portal
Gensolve workflows, Xero accounting links, online booking portal configuration, and any practitioner-defined custom form logic do not migrate. FlitStack delivers a rebuild reference package: a structured export of Gensolve workflow definitions, Xero transaction summaries per client, and a booking-portal configuration guide mapped to Odoo Website's calendar.booking module. Your Odoo implementation team (or FlitStack's follow-on services) uses this package to reconfigure the automations and integrations that Gensolve handled natively. The rebuild reference is delivered alongside the migration completion report so both projects can run in parallel.
Platform deep dives
Gensolve Practice Manager
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Gensolve Practice Manager and Odoo CRM.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
Gensolve Practice Manager: Not publicly documented.
Data volume sensitivity
Gensolve Practice Manager 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 Gensolve Practice Manager to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Gensolve Practice Manager 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 Gensolve Practice Manager
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.