CRM migration
Field-level mapping, validation, and rollback between Rechat and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Rechat
Source
Odoo CRM
Destination
Compatibility
14 of 14
objects map 1:1 between Rechat and Odoo CRM.
Complexity
BStandard
Timeline
48–96 hours
Overview
Rechat stores real estate CRM data as contacts, companies, deals, and listing associations — with MLS integration, marketing workflows, and an AI assistant (Lucy) built into the platform. Odoo CRM models the same entities using res.partner for both contacts and companies, crm.lead for leads and opportunities, and a kanban pipeline driven by stage_id values. We migrate contacts, companies, and deals directly. Listing associations (property address, MLS number, agent assignment) have no Odoo native equivalent and move to custom fields on crm.lead. Engagement scores and tags become custom number and many-to-many tag fields. Marketing workflows, automations, and MLS integrations do not transfer — we export them as reference documents for manual rebuild. The migration uses Rechat's paginated JSON API to extract data and Odoo's XML-RPC external API to load crm.lead and res.partner records, with field-level diff validation before commit. Delta-pickup captures any changes made in Rechat during the cutover window, and rollback snapshots ensure the pre-migration state is recoverable if data integrity issues surface after the full load commits.
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 Rechat 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.
Rechat
Contact
Odoo CRM
res.partner
1:1Rechat contacts map to Odoo res.partner records with partner_type set to 'contact'. The email, phone, name, address, and jobtitle fields translate directly. Rechat owner_id resolves by email match to Odoo user records before import — unmatched owners flag for manual assignment.
Rechat
Company
Odoo CRM
res.partner
1:1Rechat companies map to Odoo res.partner with company_type set to 'company'. The domain, industry, employee count, and revenue fields translate as direct fields. Parent-company relationships in Rechat map to res.partner.parent_id in Odoo — circular references are flagged and resolved during validation before any records commit to the target database.
Rechat
Deal
Odoo CRM
crm.lead
1:1Rechat deals map to Odoo crm.lead as opportunities. The deal name becomes the crm.lead name field, amount maps to crm.lead.expected_revenue, and close date maps to crm.lead.date_deadline. Pipeline assignment and stage mapping are handled through value mapping tables keyed on pipeline ID.
Rechat
Listing Association
Odoo CRM
Custom fields on crm.lead
1:1Rechat's listing object (property address, MLS number, listing agent ID, property type) has no native Odoo equivalent. We create custom_char fields on crm.lead to store the property address, MLS number, and listing agent reference. The raw listing payload is preserved as a JSON custom field for reference.
Rechat
Pipeline
Odoo CRM
crm.stage
1:1Rechat pipelines are named collections of stages. Each pipeline maps to a distinct set of Odoo crm_stage records grouped by sales team. The stage names, sequence order, and probability percentages are recreated in Odoo's pipeline configuration before migration runs. We deliver a stage-setup checklist and coordinate with your Odoo admin to pre-create all required stage records.
Rechat
Pipeline Stage
Odoo CRM
crm.stage
1:1Stage names are mapped value-by-value from Rechat stage labels (New Lead, Showing Scheduled, Offer Made, Under Contract, Closed Won) to Odoo stage names (New, Qualified, Proposition, Negotiation, Won). Each stage's probability and fold-to-cancelled flag are reapplied from the Odoo stage configuration.
Rechat
Activity (call, email, meeting)
Odoo CRM
mail.activity
1:1Rechat call logs, emails, and meeting records map to Odoo mail.activity entries with activity_type_id set to 'call', 'email', or 'meeting'. Original timestamps, owner assignments, and subject lines are preserved. Odoo requires activity_type records to exist before migration — we create them from the standard type library.
Rechat
Note
Odoo CRM
mail.message
1:1Rechat notes with HTML content are sanitized to strip unsafe tags while preserving links and basic formatting. The cleaned content is stored as a mail.message record with subtype 'note' on the crm.lead. Inline images are downloaded and re-hosted as Odoo attachments.
Rechat
Tag / Label
Odoo CRM
ir.model.data (Tag IDs)
1:1Rechat tags applied to contacts and deals map to Odoo crm.tag records via ir.model.data cross-references. Tag names and color values are recreated as crm.tag entries in Odoo. The many-to-many relationship between records and tags is established through crm.lead.tag_ids during the import phase, ensuring all tagged contacts and deals retain their categorization after migration completes.
Rechat
Marketing / Automation flows
Odoo CRM
No equivalent
1:1Rechat flows, touch reminders, and Lucy AI assistant automations do not transfer. We export the full flow definitions (trigger events, conditions, and actions) as JSON reference documents so your Odoo admin can rebuild them using Odoo Studio server actions and scheduled actions on the CRM module.
Rechat
Email / notification templates
Odoo CRM
No equivalent
1:1Rechat email templates and newsletter content are exported as HTML files and contact-segment exports. Odoo's email marketing uses the Email Marketing app — templates must be recreated there. We provide the HTML source and merge-field mappings as a rebuild guide.
Rechat
Reports and dashboards
Odoo CRM
No equivalent
1:1Rechat reports and pipeline analytics do not transfer. The underlying data (deals, amounts, stages, activity timestamps) migrates completely, so reports can be rebuilt in Odoo's native reporting tool or BI integrations. We export Rechat report definitions as reference screenshots and field lists.
Rechat
Custom properties (contacts, companies, deals)
Odoo CRM
Custom fields on res.partner / crm.lead
1:1Rechat custom properties per contact, company, and deal map to Odoo custom fields. For res.partner we use custom_char, custom_text, or custom_selection depending on the source data type. For crm.lead we create equivalent fields. All custom field names and pick-list values are preserved in the migration plan.
Rechat
Source system ID reference
Odoo CRM
Custom Char field on target record
1:1Rechat's internal record ID is stored as a custom_char field on each migrated Odoo record (Source_Rechat_ID__c on res.partner and crm.lead). This field enables delta-run de-duplication to prevent duplicate records during incremental syncs, precise rollback targeting to revert specific records if needed, and maintains a cross-reference audit trail between the two systems for reconciliation and troubleshooting.
| Rechat | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Company | res.partner1:1 | Fully supported | |
| Deal | crm.lead1:1 | Fully supported | |
| Listing Association | Custom fields on crm.lead1:1 | Fully supported | |
| Pipeline | crm.stage1:1 | Fully supported | |
| Pipeline Stage | crm.stage1:1 | Fully supported | |
| Activity (call, email, meeting) | mail.activity1:1 | Fully supported | |
| Note | mail.message1:1 | Fully supported | |
| Tag / Label | ir.model.data (Tag IDs)1:1 | Fully supported | |
| Marketing / Automation flows | No equivalent1:1 | Fully supported | |
| Email / notification templates | No equivalent1:1 | Fully supported | |
| Reports and dashboards | No equivalent1:1 | Fully supported | |
| Custom properties (contacts, companies, deals) | Custom fields on res.partner / crm.lead1:1 | Fully supported | |
| Source system ID reference | Custom Char field on target record1: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.
Rechat gotchas
Heroku/Salesforce outage risk impacts migration timing
Email bodies are never stored in Rechat
Flows automations are not exportable via API
Lucy AI assistant history is not accessible
Contact export produces flat Excel, not relational data
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 Rechat data and configure Odoo schema
We connect to the Rechat API and export a full inventory of all contacts, companies, deals, activities, tags, and custom properties. We then map Rechat pipeline stages to Odoo crm_stage records and create any missing custom fields (x_property_address, x_mls_number, x_listing_payload, x_engagement_score, x_rechat_id) on res.partner and crm.lead. The schema setup plan is delivered as a checklist so your Odoo admin can pre-create stages and fields before the migration run. If your Odoo instance is on the Community edition, we coordinate database access credentials for the PostgreSQL loading approach.
Export and transform Rechat data to Odoo staging format
Rechat's paginated JSON API exports all records by type. We transform each record into the Odoo staging format: res.partner for contacts and companies, crm.lead for deals with stage_id resolved from the value-mapping table, and mail.activity for call, email, and meeting logs. Listing association data is serialized to JSON and stored in the custom x_listing_payload field on each crm.lead. Owner resolution runs against the matched Odoo user list — unmatched owners are exported to a separate exceptions report. HTML notes are sanitized at this stage.
Import partners then leads in dependency order
Odoo requires res.partner records to exist before crm.lead can reference them via partner_id. We import companies and contacts first, setting company_type and parent_id where applicable. Then we import crm.lead records with stage_id resolved, partner_id linked, and all custom fields populated from the staging JSON. Activities import last, linked to their parent res.partner or crm.lead record by the x_rechat_id cross-reference field. The import order is enforced in the migration tooling so foreign-key violations are prevented before any record commits.
Run a sample migration and generate field-level diff
A representative slice of 50–200 records spanning contacts, companies, deals, activities, and tagged records migrates to a staging Odoo database. We generate a field-level diff comparing source values (from the Rechat export) against destination field values (from the Odoo record). You review the diff to confirm stage mapping is correct, listing metadata landed in the right custom fields, owner resolution succeeded for known agents, and activity logs are attached to the correct parent records. We adjust the field mapping configuration based on your feedback before the full run commits.
Execute full migration with delta-pickup and rollback
The full dataset migrates to your production Odoo instance. A delta-pickup window of 24–48 hours after the initial load captures any records created or modified in Rechat during the cutover period. FlitStack AI maintains an audit log of every create and update operation with before/after values. A database snapshot is taken before the migration runs, enabling one-click rollback to the pre-migration state if field-level reconciliation reveals data integrity issues. The rollback window is available for 72 hours after the migration completes.
Platform deep dives
Rechat
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 Rechat 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
Rechat: Not publicly documented.
Data volume sensitivity
Rechat 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 Rechat to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Rechat 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 Rechat
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.