CRM migration

Migrate from HomeSpotter Spacio to Odoo CRM

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

HomeSpotter Spacio logo

HomeSpotter Spacio

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between HomeSpotter Spacio and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

HomeSpotter Spacio is an open-house lead generation platform built around event-guest records, property associations, and automated follow-up emails. Its data model centers on a Lead object with contact details, event/source attribution, social profile enrichment, and a property lookup — plus agents, teams, and brokerage-level reporting. Spacio has no native pipeline or deal stage model; its CRM exports carry the lead and property linkage only. Odoo CRM models leads and opportunities in a single crm.lead object using stage_id to gate pipeline progress, res.partner for contacts and companies, and crm.team for sales-team routing. Odoo's External API (XML-RPC) exposes crm.lead, res.partner, product.product, and ir.attachment for structured import. The migration carries Spacio leads into crm.lead with a custom open_house_event_id field linking back to crm.event records, property associations as product.product links, and agent assignments resolved by email against Odoo res.users. Spacio's automated follow-up email sequences have no Odoo equivalent — those must be rebuilt as Odoo mail templates triggered by stage-change automation rules. Attachments re-upload to Odoo's ir.attachment storage via the XML-RPC binary endpoint.

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

HomeSpotter Spacio logo

HomeSpotter Spacio

What's pushing teams away

  • Agents report poor offline resilience — if cellular signal drops at the property, the sign-in app becomes unusable mid-event, risking lead loss.
  • The automated email templates are generic and not easily customized without workarounds, leading agents to manage follow-up manually anyway.
  • As a standalone open house tool, Spacio does not serve broader CRM needs; teams eventually consolidate into platforms that cover the full agent pipeline end-to-end.
  • Post-Lone Wolf acquisition, support pathways and product roadmap have shifted, creating uncertainty about long-term platform direction for existing customers.

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

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

HomeSpotter Spacio

Lead (Guest)

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Spacio guest leads map directly to Odoo crm.lead records. The crm.lead type field distinguishes 'lead' from 'opportunity' — all migrated Spacio guests land as lead type. Contact details (name, email, phone) populate crm.lead fields; additional contact data stores on the linked res.partner record. Original Spacio lead creation timestamp preserved as a custom datetime field.

HomeSpotter Spacio

Lead.email

maps to

Odoo CRM

res.partner

1:1
Fully supported

Every Spacio lead's email address creates or matches a res.partner record in Odoo. Odoo's mail.thread on res.partner aggregates email conversations on the contact. If the email already exists in Odoo, the crm.lead links to the existing partner; otherwise a new partner is created. This prevents duplicate contact records.

HomeSpotter Spacio

Property

maps to

Odoo CRM

product.product

1:1
Fully supported

Spacio property records (title, price, beds, baths, address, MLS number) become Odoo product.product entries with type='service' or 'product' depending on whether the brokerage treats listings as sellable assets. The Spacio property price maps to product.list_price; MLS number maps to a custom Char field (x_mls_number). Property images are downloaded from S3 and re-uploaded as product images via ir.attachment.

HomeSpotter Spacio

Lead ↔ Property association

maps to

Odoo CRM

crm.lead.product_ids (M2M)

1:1
Fully supported

Spacio natively links a guest lead to the property at sign-in. Odoo crm.lead has no native M2M to product.product for this use case. We create a custom M2M field (x_spacio_property_ids) on crm.lead to preserve the property association. Alternatively, the property is set as the lead name or stored in a custom Char field (x_spacio_property_address) for quick reference.

HomeSpotter Spacio

Event (Open House)

maps to

Odoo CRM

calendar.event

1:1
Fully supported

Spacio open house events (event date, property, agent) migrate to Odoo calendar.event records. The calendar.event is linked back to the associated crm.lead records via a custom relational field (x_open_house_event_id). This preserves the event context — which open house generated each lead — in Odoo's calendar and CRM modules simultaneously.

HomeSpotter Spacio

Agent

maps to

Odoo CRM

res.users + crm.team

1:1
Fully supported

Spacio agent records (name, email, ukey) are matched to Odoo res.users by email address. Unmatched agents are flagged before migration for manual Odoo user creation or assignment to a fallback owner. Team-level data from Spacio (team hierarchy, brokerage) populates crm.team records and team membership on res.users.

HomeSpotter Spacio

Social Profile (from Spacio enrichment)

maps to

Odoo CRM

res.partner (custom fields)

1:1
Fully supported

Spacio enriches leads with LinkedIn and other social profile URLs when contacts are verified. These URLs migrate to custom Char fields on res.partner (e.g., x_linkedin_url, x_social_profile). Odoo has no native social-enrichment field; these are stored as reference-only data for agents to use manually during outreach.

HomeSpotter Spacio

Lead Quality Rating

maps to

Odoo CRM

crm.lead (custom tag or field)

1:1
Fully supported

Some Spacio brokerages assign guest quality ratings to leads. Odoo crm.lead has no native quality field. We migrate this as a selection field (x_lead_quality) on crm.lead with values matching the Spacio rating scale. Alternatively, a crm.tag is applied to the lead for filtering in Odoo's Kanban view.

HomeSpotter Spacio

Source Channel / Attribution

maps to

Odoo CRM

crm.lead.source_id (custom or native)

1:1
Fully supported

Spacio records the capture method (QR code, manual form, MLS link) as a lead source attribute. Odoo CRM has a native source_id field on crm.lead referencing utm.source values. We map Spacio source strings to Odoo utm.source records — this populates Odoo's lead source reporting without requiring a custom field.

HomeSpotter Spacio

Attachment (Guest Sign-In Form)

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Spacio file attachments on leads (form metadata, signed-in guest lists) are downloaded and re-uploaded to Odoo ir.attachment linked to the corresponding crm.lead. File naming preserves the original Spacio reference (spacio_{lead_id}_{filename}) for traceability. Odoo's ir.attachment is accessible from the crm.lead form view under the Documents smart button.

HomeSpotter Spacio

Seller Report PDF

maps to

Odoo CRM

No equivalent

1:1
Fully supported

Spacio generates branded seller report PDFs listing attendees, lead quality, and open house metrics. Odoo has no native seller report export. We preserve the PDF URL or attach the last-generated report as an ir.attachment on the related crm.lead and calendar.event. The report must be rebuilt manually in Odoo using the Odoo Spreadsheet app or exported to a BI tool.

HomeSpotter Spacio

Automated Follow-Up Email Sequence

maps to

Odoo CRM

mail.template + base.automation

1:1
Fully supported

Spacio sends automated post-open-house emails to every guest using platform-managed templates. Odoo has no automated email-sending trigger native to the open house event model. We document the Spacio email templates (subject, body, timing) as a reference export so your Odoo admin can rebuild equivalent mail.template records driven by crm.lead stage-change or calendar.event end-date triggers.

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.

HomeSpotter Spacio logo

HomeSpotter Spacio gotchas

Medium

12,000 hourly rate limit on API key creation calls

High

No public bulk export endpoint

Low

Social profile enrichment does not persist through CRM push

Medium

Custom sign-in form fields vary per account and per event

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

  • Spacio property S3 image URLs expire — download before migration

    Spacio property image URLs point to S3 buckets that may be tied to the Spacio/Lone Wolf account's active subscription. Once the Spacio account is deactivated post-migration, those S3 URLs return 403 errors. FlitStack AI downloads every property image referenced in the Spacio export to local storage before the migration run and re-uploads to Odoo's ir.attachment or product.image_1920 binary field, ensuring images survive account deactivation. This step adds processing time proportional to the number of properties with images and must be completed before the final cutover window.

  • Odoo lead-contact duality requires res.partner pre-creation

    Odoo crm.lead uses res.partner as the underlying contact record — the lead's name, email, and address live on the partner, not directly on crm.lead. Spacio leads store all contact fields on a single Lead object. During migration, FlitStack must first create or match res.partner records (by email) before creating crm.lead records that link back to the partner via partner_id. If the migration runs contacts and leads in the wrong order, Odoo rejects the lead insert with a partner_id is required error. We sequence partner creation before lead creation and flag any Spacio leads with duplicate emails for manual review before insert.

  • Spacio API v2 is limited availability — bulk export may use v1

    The Spacio API documentation shows v2 endpoints at ws.spac.io/api/v2/ with limited availability. Not all Spacio accounts have v2 access by default. The primary stable export endpoint is ws.spac.io/api/v1/getProperties and equivalent guest/lead endpoints on v1, which return JSON structures without field-level metadata. FlitStack reads the v1 response schema dynamically during the pre-migration audit to build the field map. If v2 access is granted, additional fields (custom form questions, enriched social data) become available — we re-audit and update the field map before the test migration run.

  • Brokerage-level reporting in Spacio has no Odoo equivalent

    Spacio's Brokerage Reports dashboard aggregates open house performance across all agents and offices — guest counts, lead quality distribution, and seller PDF export per property. Odoo CRM's native reporting module operates at the crm.lead and crm.team level, not at a brokerage-aggregate level across calendar.event objects. The migrated data is all present in Odoo (crm.lead, calendar.event, crm.team) but requires Odoo Spreadsheet, a custom pivot view, or a BI tool to replicate the brokerage-level aggregate view. We surface this gap in the migration plan and provide a sample Odoo pivot view configuration as a starting point for your reporting rebuild.

  • Spacio agent ukey and Odoo user login are not naturally aligned

    Spacio agents are identified internally by a ukey (used in the API getProperties endpoint as the ukey parameter). Odoo res.users are identified by login (email) and have no ukey field by default. During migration, FlitStack matches Spacio agents to Odoo users by email, but the Spacio ukey is only stored if a custom field (x_spacio_ukey) is pre-created on res.users. We flag this to your Odoo admin before migration so the custom field is in place, or we create it programmatically during the migration run. Without the custom field, the ukey-to-user linkage is lost and Odoo agents cannot cross-reference Spacio data by ukey post-migration.

Migration approach

Six steps for a successful HomeSpotter Spacio to Odoo CRM data migration

  1. Pre-migration audit and API credentialing

    FlitStack AI authenticates against the Spacio v1 API using your provided API key (ukey) and performs a read-only audit of all objects: guest leads, properties, events, agents, and teams. We capture field names, pick-list values, custom form questions, and image URLs from the JSON response. In parallel, we inventory the Odoo destination environment: which Odoo edition (Community or Enterprise), which CRM module is installed, what custom fields already exist on crm.lead and product.product, and which res.users and crm.team records are present. The audit output is a field map draft plus a list of Odoo custom fields to create before data lands.

  2. Create Odoo custom fields and res.partner pre-linking

    Before any lead data moves, FlitStack creates the custom fields identified in the audit: x_spacio_lead_id, x_spacio_create_date, x_lead_quality, x_spacio_property_ids on crm.lead; x_mls_number, x_bedrooms, x_bathrooms, x_spacio_sid on product.product; and x_spacio_ukey on res.users. For every Spacio lead email, we create or match a res.partner record first. This two-phase partner-then-lead insertion satisfies Odoo's partner_id requirement on crm.lead without leaving orphan leads. Any duplicate email conflicts are flagged in the pre-flight report for your team to resolve before the test migration runs.

  3. Property migration and S3 image download

    Spacio properties migrate to product.product records using the XML-RPC create method. For each property, FlitStack downloads the S3-hosted image (if present) to local storage, then writes the binary to product.image_1920 via XML-RPC binary field write. MLS numbers, bedroom/bathroom counts, and property type map to their respective custom or native fields. The property sid (x_spacio_sid) is stored on each product for cross-reference. Once all properties are inserted, the product IDs are cached so lead-to-property associations can resolve the Many2one and Many2many links during lead migration.

  4. Agent matching and crm.team population

    Spacio agents are matched to Odoo res.users by email login. For each unmatched agent, FlitStack generates a flag report listing the Spacio agent name, ukey, and email, asking your team to create the Odoo user or assign a fallback owner before the full migration run. Spacio team names are inserted as crm.team records and linked to res.users via team_member entries. Agent-property associations are preserved via the calendar.event agent linkage established in the next step.

  5. Event and lead migration with association wiring

    Spacio open house events migrate to calendar.event records first, with event-agent linkage resolving to the Odoo user_id and event-property linkage populating x_property_id. Guest leads then migrate to crm.lead in a second pass: each lead's email creates or matches a res.partner, the lead's event_id resolves to the calendar.event via the Spacio event reference, and the property association resolves to product.product via the cached property IDs. The x_spacio_lead_id and x_spacio_create_date fields preserve traceability. After insertion, a field-level diff compares source JSON field values against Odoo record field values for the test slice.

  6. Sample diff, delta-pickup, and rollback plan

    A representative slice (typically 200–500 leads, 50–100 properties, and 20–50 events) migrates first. FlitStack generates a field-level diff report showing every mapped field's source value, destination value, and any discrepancy. You review the diff to confirm event linkage, property association, and agent ownership before the full run commits. After your sign-off, the full migration runs and a delta-pickup window (24–48 hours) captures any new leads or event changes recorded in Spacio during the cutover. An audit log records every insert and update. One-click rollback reverts the Odoo environment to its pre-migration state if reconciliation fails.

Platform deep dives

Context on both ends of the pair

HomeSpotter Spacio logo

HomeSpotter Spacio

Source

Strengths

  • Purpose-built for a single high-friction workflow: turning paper sign-in sheets into digital, actionable leads.
  • Built-in social profile enrichment on guest contacts adds relationship context without additional tooling.
  • Brokerage dashboard consolidates agent-level open house data across offices for portfolio-level reporting.
  • Native CRM push integrations exist for Follow Up Boss, Salesforce, HubSpot, and others, enabling a data-first workflow even without migration tooling.

Weaknesses

  • No bulk export or documented bulk import API — data portability relies on individual API calls or manual report downloads.
  • Automated follow-up emails are Spacio-native and do not carry forward as transferable automation rules.
  • The platform holds data scoped to individual events rather than a full CRM, creating data silos for teams managing ongoing client relationships.
  • No white-label option available, limiting branding control for brokerages wanting a fully custom client-facing experience.
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 HomeSpotter Spacio and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    HomeSpotter Spacio: 12,000 requests per hour per API key (default; increase available by request).

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Spacio-to-Odoo migrations complete within 48–72 hours for under 10,000 leads and properties. Larger datasets with 10,000–50,000 records or complex custom field setups extend to 5–10 days. The longest single step is typically property image download and binary re-upload — each image must be fetched from Spacio's S3 bucket, validated, and written to Odoo's ir.attachment storage, which runs at sequential write speed rather than bulk API throughput. FlitStack runs image downloads in parallel with Odoo field creation to overlap the timeline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HomeSpotter Spacio.
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