CRM migration

Migrate from LockedOn to Odoo CRM

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

LockedOn logo

LockedOn

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between LockedOn and Odoo CRM.

Complexity

BStandard

Timeline

2–4 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

LockedOn logo

LockedOn

What's pushing teams away

  • Limited public API documentation makes LockeOn difficult to integrate with external tools, prompting agencies with custom tech stacks to seek alternatives.
  • Opaque pricing not published on the website causes uncertainty and forces sales conversations before evaluation.
  • Small team size (11 employees per LinkedIn) raises concerns about long-term platform stability and feature development pace.
  • Agents report that the automation builder, while powerful, lacks flexibility for complex conditional workflows beyond standard triggers.

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

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

maps to

Odoo CRM

crm.lead

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

res.partner

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

Custom crm.property model (x_property_listing)

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

crm.lead (type=opportunity)

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

crm.stage

1:1
Fully supported

LockedOn'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)

maps to

Odoo CRM

mail.activity

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

res.users

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

crm.tag

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

res.partner (supplier=True)

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

crm.activity (planned)

1:1
Fully supported

LockedOn 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

maps to

Odoo CRM

mail.message

1:1
Fully supported

LockedOn 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.

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.

LockedOn logo

LockedOn gotchas

High

No public API documented for customer use

High

Automations are not exportable

Medium

Vendor Portal records are platform-locked

Medium

QR check-in data not independently exportable

Low

Custom fields may require reconfiguration post-migration

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

  • Property listings require a custom Odoo model — no native real estate object exists

    Odoo CRM has no built-in property listing or real estate object. LockedOn stores each listing as a first-class record with address, price, bedrooms, bathrooms, listing type, and agent. In Odoo, this data must live in a custom crm.property model (x_property_listing) that we create during schema setup, with x_ prefixed fields for each property attribute. The model must be linked back to crm.lead via a many2one relationship so opportunities and listings stay associated. This custom model is the single largest schema decision in any LockedOn migration and must be approved before data mapping begins.

  • Pipeline stages require value-by-value mapping per Odoo sales team

    LockedOn deal stages are a fixed global set — Active, Under Offer, Sold, Withdrawn — applied uniformly across all users. Odoo crm.stage records are scoped to individual crm.team records, meaning each sales team has its own Kanban board with independently defined stages. Before migration, your Odoo administrator must create the stage set for each target team. We then map each LockedOn stage value to a specific Odoo stage_id, using stage name matching and sequence ordering. Stage probability and on-stage automation rules must be reconfigured in Odoo separately from the data migration.

  • Vendor portal and 24/7 seller reporting have no Odoo equivalent out of the box

    LockedOn's vendor reporting tools and 24/7 Vendor Portal give sellers a dedicated portal to track listing progress, inspections, and offers. Odoo's standard portal (website.portal) provides a generic customer-facing interface but does not replicate LockedOn's vendor reporting dashboard. Teams that rely on vendor self-service need a custom Odoo website module built to surface listing status, upcoming inspections, and offer updates. We flag this gap during discovery and provide a scope estimate for custom portal development separate from the data migration.

  • LockedOn triggers and automated action plans cannot migrate to Odoo automation rules

    LockedOn triggers automate tasks, follow-up emails, and status changes based on property actions or client events. Odoo automation rules (base.action.rule, ir.actions.server) handle follow-ups and stage transitions but require manual configuration — no trigger logic transfers automatically. We export your LockedOn trigger definitions as a JSON specification document that your Odoo administrator can use as a rebuild reference. Any OFI (Open for Inspection) automated reminder logic must be recreated as Odoo scheduled actions using mail.activity models.

  • Odoo's CSV import does not handle complex object relationships well — use XML-RPC API for production migration

    Odoo's in-app CSV import is suitable for flat records but does not preserve many2one relationships, activity links, or multi-record associations reliably in bulk. For production migrations with complex relationships between contacts, properties, deals, and activities, we use Odoo's XML-RPC API in sequenced batches — creating parent records first, capturing their database IDs, then linking child records in a second pass. API call volume and session timeouts must be managed per Odoo instance; Community edition self-hosted setups may require PostgreSQL direct writes for very large datasets.

Migration approach

Six steps for a successful LockedOn to Odoo CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

LockedOn logo

LockedOn

Source

Strengths

  • Integrated CRM, marketing automation, and vendor reporting in a single real estate-focused platform.
  • Pre-built automation templates for OFI follow-up and post-enquiry welcome sequences.
  • QR check-in for contactless open home registrations.
  • Vendor portal with 24/7 reporting access for sellers.
  • Bulk communication engine with templating for routine client outreach.

Weaknesses

  • No publicly documented REST API accessible to customers for data export or integration.
  • Opaque pricing model requiring direct sales contact to obtain quotes.
  • Small development team limits pace of feature updates and support capacity.
  • Automation rebuild is manual on destination platforms since automations cannot be exported.
  • Limited object model means complex agency workflows may require custom workarounds.
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 LockedOn and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    LockedOn: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Most LockedOn-to-Odoo CRM migrations complete within 2–4 business days of clock time for data volumes under 20,000 records. More complex setups with 50,000+ records, multiple custom property fields, or multi-team Odoo configurations extend to 10–20 business days. The longest single step is usually designing and approving the custom Odoo property model and stage configuration before any data moves. We also build in a 24–48 hour delta-pickup window to capture any records created during the final cutover phase, ensuring zero data loss at switchover.

Adjacent paths

Related migrations to explore

Ready when you are

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