CRM migration
Field-level mapping, validation, and rollback between LionDesk and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
LionDesk
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between LionDesk and Odoo CRM.
Complexity
BStandard
Timeline
2–5 business days
Overview
LionDesk was built as a lightweight, agent-focused real estate CRM — contacts and companies live in a single object graph with drip campaign membership stored as record properties. Odoo CRM uses a two-model architecture: res.partner for contacts and companies, and crm.lead for leads and opportunities. When you move from LionDesk to Odoo CRM, FlitStack AI splits each LionDesk contact into an Odoo res.partner record and optionally creates a corresponding crm.lead based on deal association. Custom fields migrate with their data types preserved — Text to Char, Number to Float or Integer, Date to Date, Dollar Amt to Monetary — and are created in Odoo via Studio or XML before data lands. Drip campaigns, SMS sequences, and task-reminder automations do not have Odoo equivalents and must be rebuilt as Odoo automation rules or email marketing campaigns. Owner resolution runs on email match against Odoo res.users, and a 24–48 hour delta window captures any LionDesk changes made during cutover. The migration reads LionDesk data via the v2 REST API and writes to Odoo via xmlrpc using your Odoo credentials — no manual CSV juggling required for the primary object set.
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 LionDesk 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.
LionDesk
Contact
Odoo CRM
res.partner
1:1LionDesk's Contact object maps to Odoo res.partner. Standard name, email, phone, address, and job title fields translate directly. Custom fields on the contact migrate as Odoo custom fields on res.partner. The contact's primary company (stored as company_id on the LionDesk record) resolves to the target res.partner's partner_id self-reference.
LionDesk
Contact
Odoo CRM
crm.lead
1:manyLionDesk contacts associated with active Deals generate a crm.lead record in Odoo. This creates a partner + lead link so the opportunity is attached to the correct contact. Contacts without deal associations only migrate as res.partner — no crm.lead is created. This split is evaluated per contact during migration.
LionDesk
Company
Odoo CRM
res.partner
1:1LionDesk Company maps to Odoo res.partner in B2B mode. The company's name, domain, industry, employee count, and annual revenue map to res.partner fields (name, website, industry, employee_count, annual_revenue). Parent-company hierarchies in LionDesk (if used) map to res.partner parent_id self-references in Odoo.
LionDesk
Company
Odoo CRM
res.partner (linked to Contact)
1:1LionDesk allows a contact to have a primary company but stores it as a property on the contact record rather than a separate company object. During migration, the company property on the contact is resolved to an existing res.partner (or created if no matching company exists), and the contact's partner_id is set to that partner's id.
LionDesk
Deal
Odoo CRM
crm.lead
1:1LionDesk Deal maps to Odoo crm.lead. The deal name becomes the lead's name field; amount maps to Odoo expected_revenue (or planned_revenue depending on stage). Deal stage names are mapped value-by-value to crm.stage records scoped to the target crm.team. Owner assignment runs via email match to res.users before the lead is written.
LionDesk
Deal Pipeline
Odoo CRM
crm.stage + crm.team
1:1LionDesk pipelines are not a separate object — pipeline is a property on the Deal. Each unique pipeline name in LionDesk creates a corresponding crm.stage record in Odoo's crm.stage table, scoped to a specific team_id. The stage sequence, legend_priority, and fold state are configured based on the pipeline's position in LionDesk.
LionDesk
Pipeline Stage
Odoo CRM
crm.stage
1:1Stage names are mapped one-to-one from LionDesk to Odoo. If the stage name already exists in Odoo under the target team, the existing stage id is used. If not, a new crm.stage record is created. The stage probability and forecast category are re-applied in Odoo based on standard Odoo stage configuration after migration.
LionDesk
Custom Field
Odoo CRM
ir.model.fields (custom)
1:1LionDesk custom fields (data_type: Text, Number, Date, Dollar Amt) are created in Odoo as custom fields on res.partner and crm.lead before data migration runs. Text → Char, Number → Float or Integer (based on field name context), Date → Date, Dollar Amt → Monetary. The field definition and values are migrated together so no post-migration data entry is required.
LionDesk
Activity (Call / Email / Note)
Odoo CRM
mail.activity / mail.message
1:1LionDesk logged calls, emails, and notes migrate as Odoo mail.activity records linked to the parent res.partner or crm.lead. Original timestamps, subject, and body content are preserved. For emails that are stored as plain text in LionDesk, they write to mail.message as notes on the partner record since Odoo does not have a native email activity type in the standard CRM model.
LionDesk
Drip Campaign / SMS Sequence
Odoo CRM
No equivalent
1:1LionDesk drip campaigns store membership and sequence-step data as record properties on contacts. Odoo has email marketing (mass_mailing) and automation rules, but no drip-campaign membership model that mirrors LionDesk's. We export the campaign names and step definitions as a structured JSON reference file for your Odoo admin to rebuild using Odoo email marketing or custom automation rules.
LionDesk
Attachment / File
Odoo CRM
ir.attachment
1:1LionDesk file attachments on contacts, companies, or deals are downloaded and re-uploaded to Odoo as ir.attachment records linked to the corresponding res.partner or crm.lead. File names and original create dates are preserved in the attachment record. Odoo's attachment size limit and storage backend (file system, S3) apply.
LionDesk
Owner / User
Odoo CRM
res.users
1:1LionDesk owner_id on contacts and deals resolves to Odoo res.users by email address match. Unmatched owners are flagged before migration — your team either creates the corresponding Odoo user first or assigns records to a fallback user. The original LionDesk owner id is preserved in a custom field (Source_Owner_ID__c equivalent) for audit purposes.
| LionDesk | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Contact | crm.lead1:many | Fully supported | |
| Company | res.partner1:1 | Fully supported | |
| Company | res.partner (linked to Contact)1:1 | Fully supported | |
| Deal | crm.lead1:1 | Fully supported | |
| Deal Pipeline | crm.stage + crm.team1:1 | Fully supported | |
| Pipeline Stage | crm.stage1:1 | Fully supported | |
| Custom Field | ir.model.fields (custom)1:1 | Fully supported | |
| Activity (Call / Email / Note) | mail.activity / mail.message1:1 | Fully supported | |
| Drip Campaign / SMS Sequence | No equivalent1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Owner / 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.
LionDesk gotchas
LionDesk discontinuation as of September 2025
Drip campaign automation does not transfer between CRMs
SMS and video email assets are LionDesk-hosted
Bulk export requires API pagination
Custom field type enforcement at write time
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
Verify Odoo API access and establish connection
We confirm your Odoo edition (Enterprise, Custom, or Community) and validate API credentials. For Community editions, we switch to CSV-based export/import and adjust the timeline accordingly. For Enterprise or Custom, we test xmlrpc connectivity, verify user permissions (write access to res.partner, crm.lead, crm.stage, and mail.activity), and confirm the target database id and UID for the migration run. We document connection parameters, verify network access to the Odoo instance, and set up a dedicated migration user with appropriate security access before proceeding to the data audit phase.
Audit LionDesk data model and custom field inventory
We enumerate every LionDesk object, standard field, and custom field via the v2 REST API endpoints (/contacts, /companies, /deals, /custom-fields). Each custom field's data_type (Text, Number, Date, Dollar Amt) is recorded and mapped to its Odoo field type. We also capture drip campaign membership data, active pipeline names, stage values, and owner assignments in this audit so the full mapping plan is complete before any data is written.
Create Odoo custom fields and crm.stage records
Before any data migration runs, we create the Odoo custom fields via the ir.model.fields API (or Studio import for simpler setups). Each LionDesk custom field gets a corresponding Odoo field with the correct type. We also create crm.stage records for each unique pipeline+stage combination found in LionDesk, scoped to the target crm.team. This step ensures all value mappings (stage_id, custom fields) resolve correctly during the migration write phase.
Migrate partners, leads, and activity records in dependency order
We sequence the migration to respect foreign key constraints: Companies → res.partner (first), then Contacts → res.partner (with parent_id links to companies), then Deals → crm.lead (with partner_id and stage_id resolved). Owner resolution runs via email match to res.users — unmatched owners are flagged and assigned to a fallback user. Activity records (calls, emails, notes) write after their parent records exist. A sample migration of 100–500 records runs first; we generate a field-level diff so you can verify the mapping before the full run commits.
Delta pickup and cutover with audit log
After the full migration run completes, a 24–48 hour delta window captures any LionDesk records created or modified during the cutover period. Every migration operation is logged with the source record id, destination record id, and timestamp. We deliver an audit log CSV and a reconciliation summary showing record counts by object. If reconciliation fails or the delta reveals unexpected changes, a one-click rollback reverts the Odoo writes and the migration can be re-run with corrected mapping.
Platform deep dives
LionDesk
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 LionDesk and Odoo CRM.
Object compatibility
2 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
LionDesk: Not publicly documented in available developer documentation.
Data volume sensitivity
LionDesk 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 LionDesk to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your LionDesk 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 LionDesk
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.