CRM migration
Field-level mapping, validation, and rollback between Real Estate 7 and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Real Estate 7
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Real Estate 7 and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Real Estate 7 is a WordPress-integrated CRM bundled with a property-listing theme, designed for individual agents and small brokerages. It stores leads with contact details, property interests, and deal stages in a flat object model. Odoo CRM is an open-source ERP module that separates leads from opportunities, uses stage IDs tied to crm.stage records, and stores contacts as res.partner with an address model built on country-state-city hierarchies. The migration carries Real Estate 7 contacts into Odoo res.partner (address book) and crm.lead (pipeline), splits deals into crm.lead opportunity records keyed by pipeline stage, and maps property-specific fields to Odoo custom_char fields on the lead. Activity logs (calls, emails, notes) migrate as mail.message records linked to the target partner or lead. Odoo has no native concept of listing-status stages — those become custom stage definitions your admin configures post-migration. FlitStack sequences the migration so res.partner records exist before crm.lead records (foreign-key dependency), resolves owner emails to Odoo res.users IDs, and runs a sample slice with field-level diff before committing the full dataset. Workflows, automations, and marketing sequences do not migrate — we export the Real Estate 7 workflow definitions as a rebuild reference for your Odoo admin.
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 Real Estate 7 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.
Real Estate 7
Contact (Real Estate 7)
Odoo CRM
res.partner
1:1Real Estate 7 contacts map directly to Odoo res.partner records. The contact's name splits into firstname and lastname fields. Email, phone, and address text map to the corresponding res.partner fields. A source flag on the partner record indicates migration origin so the team can identify imported records post-migration.
Real Estate 7
Contact (Real Estate 7)
Odoo CRM
crm.lead
many:1Each Real Estate 7 contact with an active deal creates a corresponding crm.lead record. The lead is linked to the migrated res.partner via partner_id. The lead's name defaults to the contact name unless a specific property interest is the lead subject, in which case the property address becomes the lead name.
Real Estate 7
Deal (Real Estate 7)
Odoo CRM
crm.lead (opportunity)
1:1Real Estate 7 deals map to crm.lead records with type='opportunity'. The deal name becomes the crm.lead name field. Deal amount maps to planned_revenue. The Real Estate 7 stage string is resolved against a value map to set stage_id on the Odoo crm.stage record.
Real Estate 7
Pipeline Stage (Real Estate 7)
Odoo CRM
crm.stage
1:1Real Estate 7 stage names (New, Contacted, Showing, Offer, Won, Lost) map to Odoo crm.stage records. Each stage requires a corresponding record in Odoo's CRM stage table with sequence ordering, is_won or is_lost flags set appropriately, and legend_color for kanban board display.
Real Estate 7
Property Interest (Real Estate 7 custom field)
Odoo CRM
crm.lead (custom_char fields)
1:1Real Estate 7 stores property address, property type (single-family, condo, land), and price range as custom contact or deal fields. These map to Odoo custom_char fields on crm.lead: x_property_address, x_property_type, x_property_price_range. Your admin creates these fields in Odoo Settings > Technical > Custom Fields before migration.
Real Estate 7
Contact Owner (Real Estate 7 agent)
Odoo CRM
res.users
1:1Real Estate 7 assigns leads to agent users by email. FlitStack matches the email against Odoo res.users records. Unmatched owners are flagged and assigned to a fallback Odoo user or left unassigned for manual distribution post-migration. This prevents orphaned leads with invalid user_id values.
Real Estate 7
Activity Log (call, email, note)
Odoo CRM
mail.message
1:1Real Estate 7 activity records (logged calls, emails, notes attached to a contact or deal) migrate as mail.message records in Odoo. Each message is linked to the target res.partner or crm.lead via model and res_id. The message's author maps to the migrated Odoo user; body content and date are preserved.
Real Estate 7
Lead Source (Real Estate 7)
Odoo CRM
crm.lead.source_id
1:1Real Estate 7 lead sources (Website, Referral, Zillow, Realtor.com) map to Odoo utm.source records. The source_id on the crm.lead links to the matching utm.source record, preserving attribution data for reporting continuity. Sources without a match are created as new utm.source records during migration.
Real Estate 7
Tag / Label (Real Estate 7)
Odoo CRM
crm.tag
1:1Real Estate 7 contact tags (Buyer, Seller, Investor, Hot Lead) map to Odoo crm.tag records. Tags are linked to crm.lead via the tag_ids many2many field. Duplicate tag names are deduplicated during migration so a single tag record serves all associated leads.
Real Estate 7
Custom Object (Real Estate 7)
Odoo CRM
Custom ir.model (x_ prefix)
1:1If Real Estate 7 has custom data objects beyond standard contacts and deals (e.g., rental applications, property showings), these require Odoo custom model creation via Settings > Technical > Models. Each custom object becomes an x_<name> model with fields defined based on the source schema. This is a pre-migration setup step your admin or FlitStack handles before data loads.
Real Estate 7
Attachment / File
Odoo CRM
ir.attachment
1:1Files attached to Real Estate 7 contacts or deals (PDFs, images, contracts) are downloaded and re-uploaded to Odoo's ir.attachment table. Each attachment is linked to the migrated res.partner or crm.lead via res_model and res_id. File size limits on Odoo.sh or self-hosted Odoo apply; files exceeding limits are flagged for manual handling.
Real Estate 7
Workflow / Automation
Odoo CRM
Not migrated
1:1Real Estate 7 workflow rules, automated email sequences, and lead assignment rules do not have a direct equivalent in Odoo and are not migrated. FlitStack exports your Real Estate 7 workflow definitions as a JSON reference document for your Odoo admin to rebuild using Odoo's Studio automation builder or server actions. This is a post-migration configuration step.
| Real Estate 7 | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact (Real Estate 7) | res.partner1:1 | Fully supported | |
| Contact (Real Estate 7) | crm.leadmany:1 | Fully supported | |
| Deal (Real Estate 7) | crm.lead (opportunity)1:1 | Fully supported | |
| Pipeline Stage (Real Estate 7) | crm.stage1:1 | Fully supported | |
| Property Interest (Real Estate 7 custom field) | crm.lead (custom_char fields)1:1 | Fully supported | |
| Contact Owner (Real Estate 7 agent) | res.users1:1 | Fully supported | |
| Activity Log (call, email, note) | mail.message1:1 | Fully supported | |
| Lead Source (Real Estate 7) | crm.lead.source_id1:1 | Fully supported | |
| Tag / Label (Real Estate 7) | crm.tag1:1 | Fully supported | |
| Custom Object (Real Estate 7) | Custom ir.model (x_ prefix)1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Workflow / Automation | Not migrated1: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.
Real Estate 7 gotchas
No documented public API for data export
CRM access locked to yearly subscription tier
WordPress plugin state affects migration integrity
Follow Up Boss integration is one-directional sync
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
Extract Real Estate 7 data from WordPress database
FlitStack connects read-only to your WordPress database and extracts all Real Estate 7 custom post type records — contacts, deals, activities, and attachments — from wp_posts and wp_postmeta. For smaller datasets (under 5,000 records), we can use the plugin's built-in CSV export instead. We validate record counts, check for NULL owner references, and flag any deals with no associated contact before building the transformation mapping. This step produces a migration-ready staging dataset that is compared against your expected record counts.
Map Real Estate 7 fields to Odoo objects and custom fields
We apply the field mapping (detailed in the field_mapping section above) to the staging dataset. Stage names are resolved against the Odoo crm.stage table. Owner emails are matched against Odoo res.users by email. Property-specific fields are flagged as pending custom field creation. This step generates a field-level diff report showing every source field, its mapped destination, the transformation applied, and any unmapped fields that require admin decision — for example, how to handle a Real Estate 7 pick-list value with no Odoo equivalent.
Create Odoo custom fields and stage records pre-migration
Before data loads, your Odoo admin creates the custom fields identified in the mapping (x_property_address, x_property_type, x_property_price_range, etc.) in Settings > Technical > Custom Fields. FlitStack delivers a step-by-step field creation guide with exact field names, types, and target models. We also create or verify the crm.stage records corresponding to each Real Estate 7 pipeline stage, setting is_won and is_lost flags and ordering them by sequence. This step is a prerequisite — custom fields must exist before the data load runs.
Load res.partner records first, then crm.lead, then activity logs
We load in strict dependency order via Odoo's XML-RPC API. res.partner records are created first with partner IDs captured. crm.lead records are created second, each linked to the correct partner_id. mail.message activity records are created third, each linked to the target res.partner or crm.lead. ir.attachment records are created last. Each batch is validated — we check for duplicate emails, missing partner references, and stage_id resolution failures — and a batch-level summary is generated before proceeding to the next object type.
Run sample migration slice with field-level diff
Before committing the full dataset, we migrate a representative slice — typically 100–300 records spanning contacts, deals, and activity logs — and generate a field-level diff. You can verify that stage names map correctly, owner assignments resolve, and property fields land in the right Odoo custom fields. Any mapping errors are corrected in the transformation logic before the full run. This step prevents a scenario where the full load completes and the team discovers the wrong stage IDs were written.
Full migration with delta pickup and rollback plan
The full migration runs against your Odoo instance via XML-RPC. A delta-pickup window (24–48 hours after the initial load) captures any new or modified Real Estate 7 records created during the cutover period. FlitStack generates an audit log of every create and write operation with source record ID, destination record ID, and timestamp. If reconciliation reveals data quality issues, a one-click rollback reverts all Odoo changes to the pre-migration state. After rollback confirmation, the full migration can be re-run with corrected mappings.
Platform deep dives
Real Estate 7
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Real Estate 7 and Odoo CRM.
Object compatibility
2 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
Real Estate 7: Not publicly documented.
Data volume sensitivity
Real Estate 7 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 Real Estate 7 to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Real Estate 7 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 Real Estate 7
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.