CRM migration
Field-level mapping, validation, and rollback between Homesnap Pro and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Homesnap Pro
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Homesnap Pro and Odoo CRM.
Complexity
BStandard
Timeline
2–5 business days
Overview
Homesnap Pro organized data around individual agents and their client interactions — contacts, showing requests, property matches, and market alerts tied to an MLS feed. The platform's data model is relatively flat: agent-managed contact records, property associations stored as custom properties on those contacts, and activity logs for showings and communications. CoStar discontinued Homesnap Pro as of October 23, 2023, replacing it with Homes Pro, making migration a data-retention problem rather than a discretionary upgrade. Odoo CRM stores contacts as res.partner records, prospects as crm.lead (which can be leads or opportunities depending on the stage), and manages sales teams via crm.team. The platform has no native real estate listing object, so MLS property data and agent-managed listings migrate as custom fields on crm.lead or as product records in Odoo's inventory module depending on how your team used Homesnap Pro. Activities (showings, calls, notes) map to mail.message and crm.activity records. We access Homesnap Pro data via its REST API using scoped read permissions. Odoo receives data via XML-RPC, which we use for bulk record creation and updates. Agent user accounts resolve by email match against Odoo res.users. A delta-pickup window captures any records modified during the cutover window. Agent performance metrics, lead scores, and pipeline stage assignments from Homesnap Pro require custom fields in Odoo since there is no equivalent native field.
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 Homesnap Pro 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.
Homesnap Pro
Contact (Client Record)
Odoo CRM
res.partner
1:1Homesnap Pro client records map directly to Odoo res.partner. The contact's name, email, phone, and address fields translate 1:1. Owner (agent) assignment resolves by email match to Odoo res.users. Contacts with no email receive a generated placeholder address flagged for review.
Homesnap Pro
Contact (Prospect/Lead)
Odoo CRM
crm.lead
1:1Homesnap Pro contacts that your agents tracked as prospects (not yet clients) map to Odoo crm.lead records. The crm.lead record type defaults to 'lead' status. Your team may convert these to 'opportunity' once a deal stage is reached, based on your Odoo pipeline configuration after migration. All prospect metadata, including lead source and agent assignment, transfers with the record.
Homesnap Pro
Agent Account
Odoo CRM
res.users
1:1Homesnap Pro agent accounts map to Odoo res.users by email match. The agent's name, email, and phone transfer as user fields. Odoo requires each user to have a login — agents without an email on file get an admin-created account. Team assignment maps via crm.team.
Homesnap Pro
Property Listing (MLS)
Odoo CRM
crm.lead custom fields or product.product
1:1Odoo has no native real estate listing object. MLS listing data (address, MLS ID, status, price) migrates as custom Char/Selection fields on crm.lead. Listings your team managed directly may alternatively map to product.product records in Odoo's inventory module — we determine this during discovery based on your data usage.
Homesnap Pro
Property Association (Contact ↔ Property)
Odoo CRM
crm.lead (linked property fields) + custom relation
1:1Homesnap Pro stored which properties a contact was interested in or owned as associations on the contact record. These migrate as custom fields on crm.lead (e.g., Interested_Property_MLS_ID__c, Owner_Property_Address__c). For N:N relationships (contact interested in multiple properties), we create a custom link table in Odoo.
Homesnap Pro
Showing Request
Odoo CRM
crm.activity + custom fields on crm.lead
1:1Showing requests in Homesnap Pro include property ID, client reference, requested date, assigned agent, and current status. We migrate these as Odoo crm.activity records with activity_type set to 'Showing' and add custom fields for the property reference and showing status. The original timestamp, agent owner, and requested scheduling information all transfer and remain preserved in Odoo.
Homesnap Pro
Market Alert
Odoo CRM
crm.activity (note subtype) + custom fields
1:1Market alerts your agents sent to clients via Homesnap Pro become Odoo crm.activity notes with a 'Market Alert' subtype. The alert content, target contact, and send date map directly. Alert type (price drop, new listing, etc.) migrates as a custom selection field.
Homesnap Pro
Likelihood-to-List Score
Odoo CRM
Custom field on crm.lead
1:1Homesnap Pro's predictive Likelihood-to-List feature generated a 0–100 score per homeowner. Odoo has no native equivalent. We preserve the score as a custom Integer field (Likelihood_to_List_Score__c) on crm.lead. The algorithm itself cannot be transferred — your team defines the new scoring logic in Odoo's lead scoring.
Homesnap Pro
Activity Log (Calls, Emails, Notes)
Odoo CRM
mail.message + crm.activity
1:1Agent activity logs (calls logged, notes added, emails sent) in Homesnap Pro migrate to Odoo mail.message records linked to the relevant res.partner or crm.lead. Original timestamps, agent owner, and activity type preserved. Call duration and outcome stored as custom fields where present.
Homesnap Pro
Agent Performance Metrics
Odoo CRM
Custom report fields on crm.lead + Odoo Reporting
1:1Homesnap Pro Business Suite tracked agent production metrics, rankings, and custom report data. This data lives in Odoo as custom fields on crm.lead (e.g., Agent_Previous_Close_Rate__c) and in Odoo's built-in reporting module. Historical metric snapshots migrate as read-only custom fields — actual pipeline tracking starts fresh in Odoo.
Homesnap Pro
Company/Brokerage Record
Odoo CRM
res.company + res.partner (commercial)
1:1If your Homesnap Pro account stored brokerage or team-level organizational data, this migrates to Odoo res.company records. Agent-level contact information remains in res.partner. Odoo's multi-company model supports separate cost centers, franchise structures, or branch offices if your brokerage operates across multiple locations or divisions.
Homesnap Pro
Office/Team Hierarchy
Odoo CRM
crm.team
1:1Homesnap Pro organized agents by office/team implicitly through MLS association. Odoo uses explicit crm.team records for this. We create Odoo crm.team records matching your Homesnap Pro team structure and assign agents (res.users) as team members via crm.team.member. Teams with multiple offices become separate crm.team records.
| Homesnap Pro | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact (Client Record) | res.partner1:1 | Fully supported | |
| Contact (Prospect/Lead) | crm.lead1:1 | Fully supported | |
| Agent Account | res.users1:1 | Fully supported | |
| Property Listing (MLS) | crm.lead custom fields or product.product1:1 | Fully supported | |
| Property Association (Contact ↔ Property) | crm.lead (linked property fields) + custom relation1:1 | Fully supported | |
| Showing Request | crm.activity + custom fields on crm.lead1:1 | Fully supported | |
| Market Alert | crm.activity (note subtype) + custom fields1:1 | Fully supported | |
| Likelihood-to-List Score | Custom field on crm.lead1:1 | Fully supported | |
| Activity Log (Calls, Emails, Notes) | mail.message + crm.activity1:1 | Fully supported | |
| Agent Performance Metrics | Custom report fields on crm.lead + Odoo Reporting1:1 | Fully supported | |
| Company/Brokerage Record | res.company + res.partner (commercial)1:1 | Fully supported | |
| Office/Team Hierarchy | crm.team1: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.
Homesnap Pro gotchas
Platform shutdown creates a migration urgency gap
Closed API prevents programmatic data extraction
MLS listing data does not transfer between platforms
Concierge lead records are unreliable or missing
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
Discover your Homesnap Pro data inventory
We connect to your Homesnap Pro account via scoped read-only API access and extract a full inventory of records: contacts, agents, property associations, showing requests, market alerts, and activity logs. We generate a data quality report identifying duplicate contacts, missing email addresses, and records with incomplete property associations. This report drives the migration plan and identifies which records need custom field handling in Odoo versus standard field mapping.
Design Odoo schema for real estate CRM
Based on the discovery output, we define the Odoo custom fields needed to capture Homesnap Pro data that has no native equivalent. This includes property-related fields on crm.lead (MLS number, listing status, bedrooms, square feet), likelihood-to-list score fields, showing status fields, and any agent performance snapshot fields. We create a schema setup guide for your Odoo admin to apply these fields before the data load. If you use Odoo Community, we provide the fields.xml data file for import; Enterprise users can create fields via Settings > Technical.
Resolve agents and map teams
Homesnap Pro agent accounts resolve against Odoo res.users by email match. Agents without an Odoo login receive an admin-created account request before migration. Team structure from Homesnap Pro (office/MLS association) maps to Odoo crm.team records. We flag any agent who has left your brokerage so their records can be assigned to a fallback owner before migration — no record lands without an Odoo owner.
Run sample migration with field-level diff
We run a test migration against a sample of 100–500 records — spanning contacts, leads, listings, and activities — and generate a field-level diff report. This report shows every mapped field, its source value in Homesnap Pro, and its destination value in Odoo. You verify that listing data landed in the right custom fields, that stage mappings reflect your pipeline logic, and that agent ownership resolved correctly. We fix any mapping errors before the full run commits.
Execute full migration with delta pickup
The full data load runs against your Odoo instance using XML-RPC for record creation and update. A delta-pickup window (typically 24–48 hours) runs in parallel, capturing any records created or modified in Homesnap Pro during the migration window. After the main load completes, we run the delta pass and reconcile counts. An audit log documents every operation. If reconciliation reveals missing records or mismatched counts, one-click rollback reverts the Odoo instance to its pre-migration state for a clean retry.
Post-migration validation and export workflow definitions
We deliver a validation report comparing Homesnap Pro record counts against Odoo record counts per object, flagging any discrepancies for manual review. We also export your Homesnap Pro workflow definitions (showing request logic, alert rules) as a written reference document your Odoo admin can use to rebuild equivalent automations using Odoo's crm.activity and mail.thread models. Workflows do not migrate automatically — this document serves as the rebuild brief.
Platform deep dives
Homesnap Pro
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Homesnap Pro and Odoo CRM.
Object compatibility
1 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
Homesnap Pro: Not publicly documented.
Data volume sensitivity
Homesnap Pro 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 Homesnap Pro to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Homesnap Pro 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 Homesnap Pro
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.