CRM migration
Field-level mapping, validation, and rollback between Real Intelligence and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Real Intelligence
Source
Odoo CRM
Destination
Compatibility
15 of 15
objects map 1:1 between Real Intelligence and Odoo CRM.
Complexity
BStandard
Timeline
3–7 days
Overview
Real Intelligence is an AI-augmented CRM platform that stores contacts, companies, deals, and activities as JSON-like property bags on each record. Its data model is relatively flat: contacts carry company associations, deals sit inside pipeline stages, and custom properties extend any object. Odoo CRM is an open-source ERP-backed CRM that stores leads and opportunities in a single crm.lead model differentiated by the type field, contacts in res.partner with address embedded, and activities in calendar.event and mail.message. The migration extracts Real Intelligence records via its export API, maps each property to either an Odoo standard field or a custom field on crm.lead or res.partner, and loads through Odoo's XML-RPC API using batched create() calls. We preserve original create dates, stage-transition timestamps, and owner email addresses resolved against Odoo res.users. Workflows, automations, AI-scoring rules, and integration connectors do not migrate — those must be rebuilt in Odoo Studio or as automated actions. After the full migration run, a 24–48 hour delta pickup captures any records modified in Real Intelligence during the cutover window.
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 Intelligence 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 Intelligence
Contact
Odoo CRM
res.partner
1:1Real Intelligence contacts map to Odoo res.partner records with type='contact'. The partner's name is split into firstname and lastname or stored as a single display name. Email, phone, mobile, and address fields map directly to Odoo standard fields. Partner must exist before activities can link to it.
Real Intelligence
Company
Odoo CRM
res.partner (type='company')
1:1Real Intelligence companies map to Odoo res.partner records with type='company'. The company contact becomes the commercial partner, and individual contacts under it link via parent_id. Industry, website, and employee count migrate as custom fields or standard Odoo fields where available.
Real Intelligence
Deal
Odoo CRM
crm.lead (type='opportunity')
1:1Real Intelligence deals map to Odoo crm.lead records where type='opportunity'. The deal name becomes the lead name, amount maps to planned_revenue, close date maps to date_closed, and stage maps to stage_id via a pre-created crm.stage record. The lead_type field is set to 'opportunity' during import.
Real Intelligence
Pipeline
Odoo CRM
crm.stage + crm.team
1:1Each Real Intelligence pipeline requires a corresponding crm.team (sales team) in Odoo, and each pipeline stage requires a crm.stage record assigned to that team. Stage order is preserved via sequence number. Probability values are captured from Real Intelligence stage definitions and set on each stage record.
Real Intelligence
Pipeline Stage
Odoo CRM
crm.stage
1:1Stage names are mapped value-by-value to Odoo stage names per team. Closed-won and closed-lost stages in Real Intelligence map to Odoo's default Closed Won / Closed Lost stages, which trigger automated actions for won/lost probability. All stage timestamps are preserved in custom datetime fields.
Real Intelligence
Custom Properties (Contact)
Odoo CRM
ir.model.fields on res.partner
1:1Any custom property on a Real Intelligence contact that has no Odoo equivalent is created as a custom field on res.partner via XML data file before migration. Field types are inferred from the source data type (char, selection, float, integer, date). Selection-type custom properties require explicit value_mapping.
Real Intelligence
Custom Properties (Deal)
Odoo CRM
ir.model.fields on crm.lead
1:1Deal-level custom properties migrate to custom fields on crm.lead. Fields like deal_priority, renewal_date, or contract_type are created as selection or date fields in Odoo and populated during the deal migration phase. Each custom field is defined with the correct type, stored via an XML data file for persistence across upgrades, and populated using the source property value. Fields are scoped to opportunity-type leads only.
Real Intelligence
Activity — Call
Odoo CRM
mail.activity (type='call')
1:1Real Intelligence call logs map to Odoo mail.activity records with activity_type_id set to the built-in Call type. Activity summary, date, and user assignment are preserved. The activity is linked to the target crm.lead or res.partner via res_id and res_model fields.
Real Intelligence
Activity — Email
Odoo CRM
mail.message (subtype='comment')
1:1Email activities migrate as Odoo mail.message records with message_type='email'. The email subject is stored in the subject field, the body contains the email text, and the send date is preserved as the message date. Each message is linked to the target crm.lead or res.partner via res_id and res_model, and threaded using parent_id when a reply exists. Attachments on the email are reattached to the mail.message as ir.attachment records.
Real Intelligence
Activity — Meeting
Odoo CRM
calendar.event
1:1Real Intelligence meetings become Odoo calendar.event records with the original start and stop datetime, duration in hours, location, and meeting description preserved. The event is linked to the corresponding crm.lead or res.partner via the calendar.event model and res_id field, and any invited attendees are created as calendar.attendee records referencing the same partner. Time zones are normalised to UTC using the Odoo server setting.
Real Intelligence
Note / Log Entry
Odoo CRM
mail.message (message_type='note')
1:1Freeform notes from Real Intelligence migrate to Odoo mail.message records with message_type='note', preserving the original body text, create date, and owner. Each note is linked to its parent contact or deal via res_id and res_model, and any file attachments on the note are re-created as ir.attachment records linked to the same mail.message. Tags from Real Intelligence are not transferred to notes unless they map to Odoo tags on parent record.
Real Intelligence
Attachment / File
Odoo CRM
ir.attachment
1:1File attachments from Real Intelligence are re-uploaded to Odoo as ir.attachment records with the original filename, MIME type, and binary content. Attachments are linked to the parent crm.lead or res.partner via res_model and res_id. Files exceeding Odoo's large-object threshold are linked by URL instead.
Real Intelligence
Owner / Sales Rep
Odoo CRM
res.users (via email match)
1:1Real Intelligence owner IDs are resolved by matching owner email against Odoo res.users email addresses. Unmatched owners are flagged before migration so the Odoo admin can invite them or assign records to a fallback user. No record lands without a valid OwnerId in Odoo.
Real Intelligence
Tag / Label
Odoo CRM
crm.tag
1:1Tags from Real Intelligence are created as crm.tag records in Odoo before the main migration runs. Each tag name is normalised for uniqueness and stored with its label. After the tag records exist, they are linked to crm.lead opportunities via the crm.tag.rel many-to-many table during the deal import phase. If a Real Intelligence tag also applies to contacts, the same tag is linked to res.partner records using same crm.tag.rel table.
Real Intelligence
Lost Reason
Odoo CRM
crm.lost_reason
1:1Deal loss reasons in Real Intelligence are migrated as crm.lost_reason records in Odoo and linked to crm.lead via lost_reason_id when the stage is Closed Lost. Each loss reason retains its description, and if the reason name matches an existing Odoo crm.lost_reason, the existing record is reused; otherwise a new record is created. This field enables reporting to segment loss reasons by category and can be used in Odoo analytics views.
| Real Intelligence | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Company | res.partner (type='company')1:1 | Fully supported | |
| Deal | crm.lead (type='opportunity')1:1 | Fully supported | |
| Pipeline | crm.stage + crm.team1:1 | Fully supported | |
| Pipeline Stage | crm.stage1:1 | Fully supported | |
| Custom Properties (Contact) | ir.model.fields on res.partner1:1 | Fully supported | |
| Custom Properties (Deal) | ir.model.fields on crm.lead1:1 | Fully supported | |
| Activity — Call | mail.activity (type='call')1:1 | Fully supported | |
| Activity — Email | mail.message (subtype='comment')1:1 | Fully supported | |
| Activity — Meeting | calendar.event1:1 | Fully supported | |
| Note / Log Entry | mail.message (message_type='note')1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Owner / Sales Rep | res.users (via email match)1:1 | Fully supported | |
| Tag / Label | crm.tag1:1 | Fully supported | |
| Lost Reason | crm.lost_reason1: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 Intelligence gotchas
Salesforce dependency is a hard prerequisite for any Real Intelligence product
Custom CAD floor plan files require separate binary migration
Real Bots AI voice agent state is not exportable
MyQR app QR codes are tied to vendor infrastructure
Real Events QR scanner integration requires Salesforce mobile app or vendor-issued device
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
Inspect Real Intelligence data model and pre-create Odoo schema
We connect to Real Intelligence using the platform's export API and inspect the full list of custom properties, pipeline definitions, stage names, user accounts, and activity types. We then create the corresponding Odoo infrastructure: custom fields on crm.lead and res.partner, crm.team records for each Real Intelligence pipeline, crm.stage records with correct sequence and probability values, crm.tag records for all tags, and crm.lost_reason records. We run an owner audit matching Real Intelligence user emails against Odoo res.users records and flag any gaps for your admin to resolve before data export begins.
Export a representative sample and run field-level diff
We export a sample slice of 100–500 records from Real Intelligence — spanning contacts, companies, deals, and activities — and load them into a staging Odoo instance. We generate a field-level diff report showing every source field, its destination equivalent, the transformation applied, and any fields that required a custom field creation or value mapping. You review the diff, confirm the stage and owner mapping plan, and approve before the full migration proceeds.
Run full migration via Odoo XML-RPC API in sequenced batches
We export all Real Intelligence records in a defined sequence: companies first, then contacts linked to their parent companies, then tags and loss reasons, then deals (opportunities) with stage and owner mapping, then activities and attachments. Each batch is loaded via Odoo's xmlrpc/object/execute_kw API using batched create() calls of 100–500 records per request to stay within reasonable time-out thresholds. Custom field data is included in the same batch as the parent record. The full migration audit log records every create() operation with source record ID for traceability.
Capture delta changes and run final reconciliation
After the full migration run completes, a 24–48 hour delta window captures any records created or modified in Real Intelligence during the cutover period. We run a second export pass, de-duplicate against already-migrated records using the source_system_id__c field, and load the delta into Odoo. Finally, we run a reconciliation check comparing record counts, pipeline stage distribution, and activity totals between Real Intelligence and Odoo, and surface any discrepancies in a side-by-side report for manual review.
Platform deep dives
Real Intelligence
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 Real Intelligence 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
Real Intelligence: Inherits Salesforce API governor limits — typically 15,000 API calls per 24h for Enterprise Edition (varies by edition and add-on licensing)..
Data volume sensitivity
Real Intelligence exposes a bulk API — large-volume migrations stream efficiently.
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 Intelligence to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Real Intelligence 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 Intelligence
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.