CRM migration
Field-level mapping, validation, and rollback between LockedOn and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
LockedOn
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between LockedOn and Odoo CRM.
Complexity
BStandard
Timeline
2–4 business days
Overview
LockedOn is a cloud-based Real Estate CRM built around contacts, property listings, and deals — with vendor reporting, QR check-in for open homes, bulk communication, and automated triggers. It stores each listing as a first-class object with address, price, status, and agent. Odoo CRM is a modular open-source ERP where leads and opportunities are the core objects — contacts are stored as res.partner, listings have no native equivalent and require a custom model, and pipeline stages are configured per team rather than globally. We map LockedOn contacts to Odoo leads, listings to a custom property model we create in Odoo, and deals to crm.lead with type set to 'opportunity'. Tasks, calls, and meetings migrate as Odoo mail.activity records. We extract from LockedOn via their CSV export and API, transform field names and value sets, then write via Odoo's XML-RPC API in sequenced batches. Workflows, triggers, and vendor portal configurations do not transfer — we export definitions as JSON for Odoo rebuild and flag the vendor portal gap upfront.
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 LockedOn 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.
LockedOn
Contact
Odoo CRM
crm.lead
1:1LockedOn contacts map directly to Odoo crm.lead records. Agent-assigned contacts inherit the owner_id from LockedOn's agent field resolved by email match against Odoo res.users. Unmatched agents are flagged before migration so a fallback Odoo user can be assigned. This ensures every lead has a valid owner from day one of the Odoo deployment.
LockedOn
Contact
Odoo CRM
res.partner
1:1LockedOn contacts also populate Odoo's res.partner model for use across Odoo modules. Both crm.lead and res.partner receive the same core fields (name, email, phone) in parallel. The res.partner record is the parent for address and commercial data. This dual-write approach ensures contacts are available throughout Odoo's broader ERP ecosystem including sales, invoicing, and purchasing modules.
LockedOn
Property / Listing
Odoo CRM
Custom crm.property model (x_property_listing)
1:1LockedOn property listings have no direct Odoo CRM equivalent. We create a custom crm.property model in Odoo with fields for address, listing type, price, status, agent owner, and key dates. This model links to crm.lead records via a many2one relationship so listings and leads are associated in Odoo.
LockedOn
Deal
Odoo CRM
crm.lead (type=opportunity)
1:1LockedOn deals migrate as Odoo crm.lead records with type='opportunity'. Each deal's pipeline stage maps to an Odoo crm.stage ID scoped to the target sales team. Deal amount, expected closing date, and agent owner are mapped to standard Odoo opportunity fields. Closed-won and closed-lost stages route to Odoo's stage states.
LockedOn
Pipeline Stage
Odoo CRM
crm.stage
1:1LockedOn's status values (Active, Under Offer, Sold, Withdrawn) require value-by-value mapping to Odoo crm.stage records. Each target Odoo sales team must have its stage set pre-created so stage IDs are available during migration. Stage sequence and probability values are applied per Odoo team configuration.
LockedOn
Activity (Call / Meeting / Note)
Odoo CRM
mail.activity
1:1LockedOn call logs, meeting records, and notes map to Odoo's mail.activity model. Activity type field is set to 'call', 'meeting', or 'note' per source type. Original timestamps and agent owner are preserved. Activities are linked to the parent crm.lead or crm.property record by database ID after parent migration completes.
LockedOn
Attachment / File
Odoo CRM
ir.attachment
1:1LockedOn file attachments attached to properties or contacts are downloaded from LockedOn storage and uploaded to Odoo's ir.attachment model. Files are linked to the target res.partner or custom crm.property record. Inline images embedded in notes are extracted and stored as binary attachments with a reference in the note body.
LockedOn
Agent / User
Odoo CRM
res.users
1:1LockedOn agent records map to Odoo res.users by email address lookup. Active agent status in LockedOn determines the active flag in Odoo. Agents without a matching Odoo user are flagged for team assignment before migration so all owned records resolve to a valid user.
LockedOn
Tag / Label
Odoo CRM
crm.tag
1:1LockedOn tags applied to contacts, properties, or deals migrate as Odoo crm.tag records. Tags are created on demand during migration if they do not already exist in Odoo. Multi-tag associations on a single record are stored using Odoo's tag relmany2many table.
LockedOn
Vendor / Landlord Record
Odoo CRM
res.partner (supplier=True)
1:1LockedOn vendor or landlord records map to Odoo res.partner with supplier flag set to True. This separates vendors from customer contacts in Odoo's partner list and enables vendor reporting in Odoo Purchases if needed. Contact details, address, and communication preferences are mapped to standard partner fields.
LockedOn
Task / Action Plan
Odoo CRM
crm.activity (planned)
1:1LockedOn automated action plans and tasks that are pending at migration time are imported as Odoo planned activities on the relevant crm.lead or crm.property record. Completed tasks are logged as historical mail.activity records with a completed date. Trigger logic itself cannot migrate and must be rebuilt as Odoo automation rules.
LockedOn
Bulk Communication Log
Odoo CRM
mail.message
1:1LockedOn bulk email and SMS logs linked to contacts are recorded in Odoo as mail.message records on the res.partner wall. Message body, recipient, and timestamp are preserved. Odoo does not have a native bulk-communication tracking model; logs are stored for reference and audit purposes rather than campaign analytics.
| LockedOn | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | crm.lead1:1 | Fully supported | |
| Contact | res.partner1:1 | Fully supported | |
| Property / Listing | Custom crm.property model (x_property_listing)1:1 | Fully supported | |
| Deal | crm.lead (type=opportunity)1:1 | Fully supported | |
| Pipeline Stage | crm.stage1:1 | Fully supported | |
| Activity (Call / Meeting / Note) | mail.activity1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Agent / User | res.users1:1 | Fully supported | |
| Tag / Label | crm.tag1:1 | Fully supported | |
| Vendor / Landlord Record | res.partner (supplier=True)1:1 | Fully supported | |
| Task / Action Plan | crm.activity (planned)1:1 | Fully supported | |
| Bulk Communication Log | mail.message1: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.
LockedOn gotchas
No public API documented for customer use
Automations are not exportable
Vendor Portal records are platform-locked
QR check-in data not independently exportable
Custom fields may require reconfiguration post-migration
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
Extract and profile LockedOn data via CSV export and API
We connect to LockedOn using your API credentials and run full-object exports for contacts, companies, properties, deals, activities, attachments, and agent records. Profile reports identify duplicate records, missing required fields, date format inconsistencies, and broken property-to-contact associations. Data cleansing steps include standardizing address formats, resolving contact-to-company references, and flagging records with no email for manual review. All source data is staged in a temporary migration environment before transformation begins.
Design Odoo schema and create custom models for real estate objects
Based on the data profile, we design the Odoo schema: create the crm.property custom model with all required x_ fields, configure crm.team and crm.stage records matching your LockedOn pipeline stages, and define custom fields on crm.lead for migration metadata (x_source_id, x_listing_id). This step requires Odoo administrator credentials or a partner account with technical access. We deliver a schema design document and field-mapping spreadsheet for your approval before any data is written.
Run a sample migration with field-level diff and validation
A representative sample of 100–500 records spanning contacts, properties, deals, and activities migrates first in a staging Odoo environment. We generate a field-level diff comparing source values against destination values for every mapped field. You review the diff output and confirm that listing status mapping, agent resolution, deal stage routing, and activity linking meet expectations. No records are permanently committed until you sign off on the sample results. This step typically runs within 1–2 business days of schema approval.
Execute full migration via XML-RPC API with delta-pickup cutover
Full migration runs in sequenced batches: contacts and companies first, then properties and deals, then activities and attachments. Each batch is committed atomically with rollback checkpoints. After the initial migration pass completes, a delta-pickup window of 24–48 hours captures any LockedOn records created or modified during the cutover window. All operations are logged with timestamps, record counts, and error details. One-click rollback is available if reconciliation identifies critical data gaps.
Deliver audit log and post-migration reconciliation report
We produce a complete audit log listing every record migrated: object type, source ID, destination ID, field count, and migration timestamp. The reconciliation report compares LockedOn record counts against Odoo record counts per object, flagging any discrepancies above the agreed tolerance threshold (default 0.5%). Failed records, unresolvable owner assignments, and unmapped custom fields are documented in an exception report with remediation recommendations. We provide a 30-day post-migration support window for data corrections.
Platform deep dives
LockedOn
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between LockedOn and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across LockedOn and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between LockedOn 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
LockedOn: Not publicly documented.
Data volume sensitivity
LockedOn 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 LockedOn to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your LockedOn 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 LockedOn
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.