CRM migration
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
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between HomeSpotter Spacio and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
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 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)
Odoo CRM
crm.lead
1:1Spacio 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
Odoo CRM
res.partner
1:1Every 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
Odoo CRM
product.product
1:1Spacio 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
Odoo CRM
crm.lead.product_ids (M2M)
1:1Spacio 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)
Odoo CRM
calendar.event
1:1Spacio 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
Odoo CRM
res.users + crm.team
1:1Spacio 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)
Odoo CRM
res.partner (custom fields)
1:1Spacio 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
Odoo CRM
crm.lead (custom tag or field)
1:1Some 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
Odoo CRM
crm.lead.source_id (custom or native)
1:1Spacio 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)
Odoo CRM
ir.attachment
1:1Spacio 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
Odoo CRM
No equivalent
1:1Spacio 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
Odoo CRM
mail.template + base.automation
1:1Spacio 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.
| HomeSpotter Spacio | Odoo CRM | Compatibility | |
|---|---|---|---|
| Lead (Guest) | crm.lead1:1 | Fully supported | |
| Lead.email | res.partner1:1 | Fully supported | |
| Property | product.product1:1 | Fully supported | |
| Lead ↔ Property association | crm.lead.product_ids (M2M)1:1 | Fully supported | |
| Event (Open House) | calendar.event1:1 | Fully supported | |
| Agent | res.users + crm.team1:1 | Fully supported | |
| Social Profile (from Spacio enrichment) | res.partner (custom fields)1:1 | Fully supported | |
| Lead Quality Rating | crm.lead (custom tag or field)1:1 | Fully supported | |
| Source Channel / Attribution | crm.lead.source_id (custom or native)1:1 | Fully supported | |
| Attachment (Guest Sign-In Form) | ir.attachment1:1 | Fully supported | |
| Seller Report PDF | No equivalent1:1 | Fully supported | |
| Automated Follow-Up Email Sequence | mail.template + base.automation1: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.
HomeSpotter Spacio gotchas
12,000 hourly rate limit on API key creation calls
No public bulk export endpoint
Social profile enrichment does not persist through CRM push
Custom sign-in form fields vary per account and per event
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
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.
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.
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.
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.
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.
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
HomeSpotter Spacio
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between HomeSpotter Spacio and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across HomeSpotter Spacio and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between HomeSpotter Spacio 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
HomeSpotter Spacio: 12,000 requests per hour per API key (default; increase available by request).
Data volume sensitivity
HomeSpotter Spacio 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 HomeSpotter Spacio to Odoo CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave HomeSpotter Spacio
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.