CRM migration

Migrate from Real Estate 7 to Odoo CRM

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 logo

Real Estate 7

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between Real Estate 7 and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Real Estate 7 logo

Real Estate 7

What's pushing teams away

  • Agents outgrow the WordPress plugin model when they need a full-featured cloud CRM with mobile-first apps, advanced automation, and team collaboration tools.
  • The yearly-only license model frustrates agents who want a one-time purchase with permanent access to current features without subscription renewals.
  • Real Estate 7 lacks a robust public API, making it difficult to export data programmatically or build custom integrations beyond Follow Up Boss.
  • Brokers managing multiple agents find the per-site licensing and WordPress-centric architecture harder to scale compared to multi-tenant SaaS CRMs.

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 Real Estate 7 objects map to Odoo CRM

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)

maps to

Odoo CRM

res.partner

1:1
Fully supported

Real 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)

maps to

Odoo CRM

crm.lead

many:1
Fully supported

Each 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)

maps to

Odoo CRM

crm.lead (opportunity)

1:1
Fully supported

Real 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)

maps to

Odoo CRM

crm.stage

1:1
Fully supported

Real 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)

maps to

Odoo CRM

crm.lead (custom_char fields)

1:1
Fully supported

Real 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)

maps to

Odoo CRM

res.users

1:1
Fully supported

Real 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)

maps to

Odoo CRM

mail.message

1:1
Fully supported

Real 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)

maps to

Odoo CRM

crm.lead.source_id

1:1
Fully supported

Real 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)

maps to

Odoo CRM

crm.tag

1:1
Fully supported

Real 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)

maps to

Odoo CRM

Custom ir.model (x_ prefix)

1:1
Fully supported

If 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

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Files 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

maps to

Odoo CRM

Not migrated

1:1
Fully supported

Real 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.

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.

Real Estate 7 logo

Real Estate 7 gotchas

High

No documented public API for data export

High

CRM access locked to yearly subscription tier

Medium

WordPress plugin state affects migration integrity

Medium

Follow Up Boss integration is one-directional sync

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

  • Real Estate 7 stores stage names as plain text — Odoo stages are database records with IDs

    Real Estate 7 saves pipeline stages as text strings ('New', 'Contacted', 'Won') directly on the deal record. Odoo does not store stage names as text — each stage is a crm.stage record with an id, and crm.lead.stage_id holds a foreign key to that record. During migration, FlitStack must look up or create the matching crm.stage record and write its ID to stage_id. If a Real Estate 7 stage name has typos or inconsistent casing, it either creates a duplicate stage or fails to match, producing a null stage_id. We flag any unmapped stage values and resolve them against your stage configuration before committing the full load.

  • Real Estate 7 has no formal API — data lives in WordPress postmeta tables

    Real Estate 7 does not expose a REST or GraphQL API. All contact and deal data lives in WordPress wp_posts and wp_postmeta tables keyed by the Real Estate 7 custom post type IDs. Extracting this requires reading the WordPress database directly or using the plugin's CSV export if the export feature is enabled and the dataset fits within WordPress memory limits. Large datasets (20,000+ contacts) can time out the WordPress admin export. FlitStack typically connects directly to the WordPress database for extraction, bypassing the admin UI entirely, which avoids timeout failures but requires read-only database credentials.

  • Odoo requires res.partner to exist before crm.lead — migration order matters

    Odoo's crm.lead.partner_id field is a many2one to res.partner. If you create a crm.lead without a valid partner_id, Odoo either rejects the write or creates an anonymous lead. Real Estate 7 does not enforce this ordering — contacts and deals can exist independently. FlitStack sequences the migration: (1) res.partner records load first, (2) crm.lead records load second and reference the partner IDs, (3) mail.message activity records load third and reference both partner and lead IDs. Skipping this order produces orphaned leads with no contact association in Odoo.

  • Property-specific data has no native Odoo CRM home — custom fields must be pre-created

    Real Estate 7 stores property address, property type, and price range as custom fields on contacts and deals. Odoo base CRM has no native fields for these concepts — the property type and price range fields in particular have no Odoo equivalent. We migrate them to custom_char and custom_selection fields on crm.lead (x_property_address, x_property_type, x_property_price_range). These fields must exist in Odoo before the migration runs. If your admin has not created them, FlitStack generates a field creation plan with the exact field names, types, and target models so they can be created in Settings > Technical > Custom Fields before data loads.

  • Odoo lead and opportunity are the same object — lifecycle routing differs from Real Estate 7

    Real Estate 7 has a single 'contact' object that serves as both an unconverted lead and a converted deal record. Odoo uses crm.lead for both, distinguished by the type field ('lead' vs 'opportunity'). A Real Estate 7 contact without a deal stays as type='lead' in Odoo; a contact with a deal becomes type='opportunity' and is linked to the same res.partner. This distinction is important for Odoo's reporting — pipeline reports only show type='opportunity' records. If your team relies on Real Estate 7's single-object view of all contacts regardless of stage, Odoo's split view (Leads menu vs Pipeline menu) may feel like data is siloed. We map accordingly and document the routing logic in the migration plan.

Migration approach

Six steps for a successful Real Estate 7 to Odoo CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Real Estate 7 logo

Real Estate 7

Source

Strengths

  • Bundles IDX website builder and CRM in a single WordPress install, reducing vendor count and monthly costs.
  • Strong G2 ratings for ease of use, setup speed, and admin simplicity versus competitors.
  • Includes SMS alerts, 200+ Elementor design blocks, and marketing automation without per-seat pricing.
  • Direct Follow Up Boss integration for agents who already use that lead management tool.
  • Yearly license includes lifetime support and ongoing feature updates as part of the subscription.

Weaknesses

  • No public API documented, limiting programmatic data export and custom integration options.
  • Yearly subscription required for CRM access and updates; one-time license only includes 6 months of support.
  • Self-hosted WordPress plugin means the customer is responsible for hosting, security, backups, and performance.
  • Limited multi-agent collaboration features compared to standalone cloud CRMs with advanced team permissions and shared workspaces.
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. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Real Estate 7 and Odoo CRM.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Real Estate 7: Not publicly documented.

  • Data volume sensitivity

    B

    Real Estate 7 doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Real Estate 7 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 Real Estate 7 to Odoo CRM data migrations

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

Can't find your answer?

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 consultation

Most Real Estate 7 to Odoo migrations complete within 48–72 hours of migration clock time for datasets under 25,000 records. The longest phase is usually the WordPress database extraction and custom field setup in Odoo, which runs in parallel with your admin's field creation step. For datasets exceeding 100,000 records or setups with extensive custom fields, plan for 5–10 business days. Odoo API rate limits on shared Odoo.sh instances can extend batch load times — we monitor API response times and throttle accordingly.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Real Estate 7.
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