CRM migration
Field-level mapping, validation, and rollback between Inmovilla and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Inmovilla
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Inmovilla and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Inmovilla organizes data around property listings, portal-synced contacts, and agency-level workflows specific to Spanish real estate. Odoo CRM stores leads and contacts as crm.lead and res.partner records, with property data mapped to product.product or custom fields depending on listing type. The migration carries Inmovilla contacts, companies, leads, property associations, and activity history into Odoo via XML-RPC or direct PostgreSQL insertion. Custom fields — property type codes, portal identifiers, biometric-signature metadata — require Odoo custom fields created in Settings > Technical > Models before the migration writes data. Workflows, email templates, portal sync configurations, and automated sequences do not migrate; FlitStack exports Inmovilla workflow definitions as JSON for Odoo Studio rebuild reference. Activity logs (calls, emails, meetings logged in Inmovilla) map to Odoo mail.message and crm.activity records with original timestamps preserved. Owner resolution runs against Odoo res.users by email before any lead or contact is written, preventing orphaned records. A 24–48 hour delta-pickup window captures in-flight changes in Inmovilla during cutover.
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 Inmovilla 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.
Inmovilla
Inmovilla Contact
Odoo CRM
res.partner
1:1Inmovilla contacts map to Odoo res.partner records as partner-type contacts. The email, phone, street, city, and country fields map directly. Inmovilla contacts without a company association write as res.partner records with no parent_id — Odoo allows this. Owner assignment resolves against res.users by email match before the partner record is written.
Inmovilla
Inmovilla Lead / Prospect
Odoo CRM
crm.lead
1:1Inmovilla leads route directly to Odoo crm.lead records. The crm.lead.name field holds the lead title (typically the contact name or property reference). Stage assignment uses value_mapping from Inmovilla pipeline stage names to Odoo crm.stage records per team. Probability maps from Inmovilla's deal probability percentage to crm.lead.probability as an integer 0–100.
Inmovilla
Inmovilla Property / Listing
Odoo CRM
product.product (or custom real_estate.property model)
1:1Inmovilla property records map to Odoo product.product with type='product' for sale/rental listings. Property attributes (surface area, bedrooms, energy certificate, floor level) migrate as product attributes via product.attribute and product.template.attribute-line, or as custom fields on product.product. Portal sync status flags from Inmovilla cannot replicate automatically — a custom connector must be rebuilt in Odoo.
Inmovilla
Inmovilla Company / Agency Profile
Odoo CRM
res.partner (company type)
1:1Inmovilla agency/company profiles with is_company=True map to Odoo res.partner records with is_company=True and company_type='company'. The Inmovilla CIF/NIF tax identifier maps to res.partner.vat for Spanish compliance. Child contacts under the company inherit the parent_id link via res.partner.parent_id.
Inmovilla
Inmovilla Pipeline
Odoo CRM
crm.team + crm.stage
1:1Each Inmovilla sales pipeline maps to an Odoo crm.team (sales team) with its own set of crm.stage records. Pipeline-level stage names are created as crm.stage records under the corresponding crm.team. If Inmovilla has multiple pipelines per agency, multiple crm.team records are created in Odoo, each with scoped stages.
Inmovilla
Inmovilla Deal / Opportunity
Odoo CRM
crm.lead (opportunity)
1:1Inmovilla deals associated with a property and a contact map to crm.lead records with type='opportunity'. The crm.lead.partner_id links to the res.partner (contact). Property reference stored in a custom x_property_ref field on crm.lead. Planned revenue maps to crm.lead.planned_revenue.
Inmovilla
Inmovilla Communication Log (email, call, meeting)
Odoo CRM
mail.message + crm.activity
1:1Inmovilla logged emails, calls, and meetings migrate as Odoo mail.message records linked to the corresponding res.partner or crm.lead via model and res_id. Call metadata (duration, outcome) stores in custom fields on mail.message. Odoo crm.activity records are created for scheduled follow-up activities with the original planned_date preserved.
Inmovilla
Inmovilla Portal Sync Configuration
Odoo CRM
No equivalent
1:1Inmovilla's automatic listing sync to idealista, Fotocasa, and other Spanish portals has no Odoo Community equivalent. The portal credentials, sync schedule, and listing-to-portal mapping must be rebuilt as a custom Odoo connector or via a third-party integration. We flag every Inmovilla portal-sync rule in the migration plan as a rebuild task.
Inmovilla
Inmovilla Workflow / Automation
Odoo CRM
No equivalent
1:1Inmovilla automated sequences, email drip campaigns, and trigger-based workflows do not migrate. FlitStack exports Inmovilla workflow definitions as a structured JSON file for your Odoo admin to rebuild using Odoo Studio automation rules or server actions. CRM automations in Odoo are rebuilt from scratch per business process.
Inmovilla
Inmovilla Attachment / File
Odoo CRM
ir.attachment
1:1Inmovilla property photos, floor plans, and document attachments re-upload to Odoo as ir.attachment records linked to the corresponding product.product (property) or crm.lead (deal). Files are stored in Odoo's filestore or an external storage location specified in the migration config. Inline images in Inmovilla notes are downloaded and rehosted.
Inmovilla
Inmovilla Owner / Agent
Odoo CRM
res.users
1:1Inmovilla owner_id on contacts and deals resolves against Odoo res.users by email address match. Unmatched owners are flagged in the pre-migration audit — you either create Odoo user accounts for them before the migration runs or assign their records to a fallback res.users (e.g., the admin account). Active status and login access are validated at resolution time.
Inmovilla
Inmovilla Property Type / Category
Odoo CRM
product.category
1:1Inmovilla property type classifications (apartment, villa, commercial, land) map to Odoo product.category records. The category hierarchy in Inmovilla (parent type / sub-type) maps to product.category.parent_path for tree-structured filtering in Odoo product views.
| Inmovilla | Odoo CRM | Compatibility | |
|---|---|---|---|
| Inmovilla Contact | res.partner1:1 | Fully supported | |
| Inmovilla Lead / Prospect | crm.lead1:1 | Fully supported | |
| Inmovilla Property / Listing | product.product (or custom real_estate.property model)1:1 | Fully supported | |
| Inmovilla Company / Agency Profile | res.partner (company type)1:1 | Fully supported | |
| Inmovilla Pipeline | crm.team + crm.stage1:1 | Fully supported | |
| Inmovilla Deal / Opportunity | crm.lead (opportunity)1:1 | Fully supported | |
| Inmovilla Communication Log (email, call, meeting) | mail.message + crm.activity1:1 | Fully supported | |
| Inmovilla Portal Sync Configuration | No equivalent1:1 | Fully supported | |
| Inmovilla Workflow / Automation | No equivalent1:1 | Fully supported | |
| Inmovilla Attachment / File | ir.attachment1:1 | Fully supported | |
| Inmovilla Owner / Agent | res.users1:1 | Fully supported | |
| Inmovilla Property Type / Category | product.category1: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.
Inmovilla gotchas
Auto-renewing subscription causes unexpected charges
Pipeline stage names are agency-configured
No publicly documented API
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
Audit Inmovilla field inventory and create Odoo custom fields
FlitStack runs a full export of Inmovilla's active modules, custom fields, and portal-sync configurations to build the custom-field creation manifest for Odoo. Property-specific fields (surface area, energy certificate, bedrooms, portal sync flags) are defined as product.product custom fields before any data migration begins. Inmovilla workflow definitions are exported as JSON for Odoo Studio rebuild reference. The manifest is reviewed with your Odoo admin before Odoo schema changes are applied.
Resolve Inmovilla owners against Odoo res.users by email
All Inmovilla owner_id references are matched against Odoo res.users records by email address. FlitStack generates a mismatch report listing Inmovilla agents without a corresponding Odoo user account, including the email format expected for a successful match. Your team creates the missing Odoo user accounts before the migration runs. Any owner that cannot be resolved receives a fallback assignment to the designated migration admin account, and all such records are flagged for manual reassignment post-migration.
Migrate res.partner records before crm.lead to satisfy foreign-key constraints
Odoo's res.partner table is referenced by crm.lead via partner_id. FlitStack sequences the migration so partner records (contacts and companies) are written to Odoo first. During this phase, Inmovilla contacts map to res.partner, Inmovilla company profiles map to res.partner with is_company=True, and parent-child relationships are established via parent_id. Product categories from Inmovilla property types are created as product.category records before property data lands.
Migrate crm.lead opportunities and product.product property listings
With partners in place, Inmovilla leads and deals map to crm.lead records. Stage mapping applies per crm.team: each Inmovilla pipeline stage name resolves to the corresponding crm.stage.id under the appropriate sales team. Property listings migrate as product.product records, populating standard fields (name, default_code, list_price) and custom fields (x_surface_m2, x_energy_certificate, x_portal_sync) in a single write per record. Property-contact associations are stored via crm.lead.x_property_ref pointing to the product.product.id.
Run sample migration with field-level diff on 100–500 representative records
A representative slice of Inmovilla data — spanning contacts, companies, leads, properties, and activity logs — is migrated to Odoo first. FlitStack generates a field-level diff comparing source values against destination field values for every mapped column. You review stage mapping, custom field population, owner resolution, and property attribute completeness before the full migration commits. Any mapping corrections are applied to the migration config and the sample re-runs until the diff is clean.
Execute full migration with delta-pickup and rollback readiness
The full Inmovilla dataset migrates to Odoo via XML-RPC in sequenced batches to respect API rate limits. A 24–48 hour delta-pickup window opens after the main migration window: any Inmovilla records modified or created during cutover are captured and written to Odoo as a final batch. FlitStack generates an audit log of every record created, updated, or skipped. One-click rollback is available if reconciliation identifies critical data gaps. Post-migration, the workflow JSON export is delivered for Odoo Studio rebuild, and the portal-sync configuration document guides your developer on rebuilding Inmovilla's portal connectors.
Platform deep dives
Inmovilla
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 Inmovilla 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
Inmovilla: Not publicly documented..
Data volume sensitivity
Inmovilla 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 Inmovilla to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Inmovilla 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 Inmovilla
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.