CRM migration
Field-level mapping, validation, and rollback between Realpage and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Realpage
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Realpage and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
RealPage's data model is anchored on property management — prospects for future tenants, lease records tied to units, and property-specific fields like unit numbers, lease start/end dates, and rent amounts. Odoo CRM has no native property or lease object: prospects land as crm.lead, tenant contacts as res.partner, and every RealPage property-specific field needs a custom field created on the crm.lead model. The migration extracts contacts, companies, prospects, activities, and attachments from RealPage via its API and CSV exports, then validates relationships such as prospect-to-property and lease-to-tenant before writing records into Odoo. Custom fields for property name, unit number, lease start/end dates, rent, deposit, and status are created on the crm.lead model prior to the first load. Any automation, lease‑renewal workflow, or permission set that cannot be transferred is flagged for manual rebuild. A delta‑pickup window of 24–48 hours after the initial batch captures records created or modified in RealPage during the cutover, ensuring Odoo reflects the final state at go‑live. Post‑migration, a reconciliation report details record counts, attachment links, and any items requiring manual review.
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 Realpage 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.
Realpage
Prospect
Odoo CRM
crm.lead
1:1RealPage prospects map directly to Odoo crm.lead. The prospect status field (New, Touring, Application, Lease Signed) determines the initial stage_id in the target pipeline, linking each status to a corresponding crm.stage record. Prospect type (rental, commercial) can be stored as a custom selection field on crm.lead, created via Odoo Studio or the ORM before migration. This mapping preserves core data while allowing property‑specific attributes to be added as custom fields.
Realpage
Contact / Tenant
Odoo CRM
res.partner
1:1RealPage tenant and contact records map to Odoo res.partner. The partner's type (tenant vs. company) maps to Odoo's is_company flag, and RealPage contact category can be stored as a tag in res.partner.category. Email, phone, and address fields transfer directly, while the contact name splits into firstname and lastname on the res.partner record. If a contact appears multiple times, the migration deduplicates by email and keeps the most recent entry.
Realpage
Property
Odoo CRM
crm.lead (custom fields)
1:1RealPage property records have no native equivalent in Odoo CRM. Property name, address, and type are preserved as custom char fields on crm.lead. If the migration includes multiple properties per lead, a separate property reference table is created in Odoo and linked by a custom many-to-one field.
Realpage
Unit
Odoo CRM
crm.lead custom field
1:1RealPage unit numbers and unit types (studio, one-bedroom, etc.) become custom char fields on crm.lead. Unit status (available, leased, under maintenance) maps to a custom selection field. Multiple units per prospect are stored as a comma-separated string or a related sub-record depending on volume.
Realpage
Lease Record
Odoo CRM
crm.lead (custom fields)
1:1Lease-specific fields — lease start date, lease end date, monthly rent, security deposit, and lease status (Active, Expired, Pending Renewal) — map to custom date, monetary, and selection fields on crm.lead. The lease status drives Odoo lead stage when mapped alongside the prospect lifecycle.
Realpage
Company / Business Entity
Odoo CRM
res.partner (is_company=True)
1:1RealPage business entities associated with prospects map to Odoo res.partner with is_company=True. Company name, domain, industry, and employee count translate directly, while RealPage company category can be stored as a tag in res.partner.category. Multi‑business portfolios in RealPage generate multiple res.partner records, each representing a separate parent entity; subsidiary contacts are linked via parent_id to the top‑level company. The migration deduplicates companies by name and domain to avoid duplicate records.
Realpage
Activity (Call, Email, Meeting)
Odoo CRM
crm.activity
1:1RealPage logged calls, emails, and meetings map to Odoo crm.activity records linked to the corresponding crm.lead or res.partner. The activity type (call, email, meeting) maps to activity_type_id, and any notes or descriptions are transferred as the activity's note field. Owner resolution follows the same email‑matching logic used for leads, preserving the original timestamp for reporting continuity.
Realpage
Document / Attachment
Odoo CRM
ir.attachment
1:1RealPage documents (lease applications, signed leases, correspondence) are exported as a file package and re‑uploaded to Odoo as ir.attachment records linked to the appropriate res.partner or crm.lead. The original filename and document type are stored in the attachment's name and description fields. File size limits from RealPage's export format are respected, and any file that exceeds Odoo's upload limit is flagged in the reconciliation report for manual handling.
Realpage
Owner / Assigned Agent
Odoo CRM
res.users (via user_id on crm.lead)
1:1RealPage owner IDs are resolved by email match against Odoo res.users. Unmatched owners are flagged in the pre‑migration audit report — teams either invite the user to Odoo first or assign their records to a designated fallback owner before the migration runs.
Realpage
Prospect Source
Odoo CRM
crm.lead source_id
1:1RealPage prospect source fields (Website, Referral, Walk‑in, etc.) map to Odoo CRM's source_id on crm.lead, which references crm.tracking.source. If RealPage captures UTM parameters or campaign codes, those values are stored in custom fields on the crm.lead for later marketing analysis. Custom RealPage sources that have no Odoo equivalent are added to crm.tracking.source as new records before the migration, ensuring every lead retains its original referral information.
Realpage
Lead Score / Priority
Odoo CRM
crm.lead priority
1:1RealPage priority levels (High, Medium, Low) map to Odoo CRM's priority field using a value mapping table, where each RealPage level corresponds to a specific Odoo priority value (e.g., 1 = Low, 3 = Medium, 5 = High). Any custom priority values present in RealPage that do not exist in Odoo's default set are added to the crm.lead priority selection during the schema setup phase. This ensures every migrated lead retains its original urgency classification.
Realpage
Campaign / Marketing Source
Odoo CRM
crm.tracking.mediium
1:1RealPage marketing campaign associations on prospects map to Odoo CRM's crm.tracking.mediium and crm.tracking.campaign records. The campaign name, medium, and any UTM parameters (source, medium, term, content) captured in RealPage are stored in the corresponding tracking fields on each crm.lead, enabling detailed ROI analysis within Odoo. If a campaign does not already exist in Odoo, it is created automatically during the migration using the data from RealPage.
| Realpage | Odoo CRM | Compatibility | |
|---|---|---|---|
| Prospect | crm.lead1:1 | Fully supported | |
| Contact / Tenant | res.partner1:1 | Fully supported | |
| Property | crm.lead (custom fields)1:1 | Fully supported | |
| Unit | crm.lead custom field1:1 | Fully supported | |
| Lease Record | crm.lead (custom fields)1:1 | Fully supported | |
| Company / Business Entity | res.partner (is_company=True)1:1 | Fully supported | |
| Activity (Call, Email, Meeting) | crm.activity1:1 | Fully supported | |
| Document / Attachment | ir.attachment1:1 | Fully supported | |
| Owner / Assigned Agent | res.users (via user_id on crm.lead)1:1 | Fully supported | |
| Prospect Source | crm.lead source_id1:1 | Fully supported | |
| Lead Score / Priority | crm.lead priority1:1 | Fully supported | |
| Campaign / Marketing Source | crm.tracking.mediium1: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.
Realpage gotchas
Antitrust and algorithmic pricing scrutiny
Product lineage creates schema variation
GL export requires manual cleanup
Utility billing uses property-specific allocation logic
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 RealPage data and design Odoo schema
We extract RealPage data via API and CSV exports — covering prospects, contacts, companies, activities, documents, and any custom properties. We profile record counts, relationship graphs (prospect-to-property, lease-to-tenant), and identify property-specific fields needing Odoo custom field creation. The output is a migration plan specifying which RealPage fields map to Odoo crm.lead and res.partner fields, which require custom fields, and which stage and owner mapping tables need to be built in Odoo before migration.
Create custom fields and stage mapping in Odoo
Before any data is written, we create the custom fields on Odoo's crm.lead model — x_property_name, x_unit_number, x_lease_start_date, x_lease_end_date, x_monthly_rent, x_security_deposit, x_lease_status, and x_property_type — plus any value mappings for stage_id and priority. We also add missing RealPage source values to Odoo's crm.tracking.source. If Odoo Studio is available, these fields are created via the UI; otherwise, they are added via the Odoo ORM before the migration batch runs.
Resolve owners and validate data relationships
RealPage owner IDs are resolved against Odoo res.users by email address match. Any RealPage owner without a corresponding Odoo user is flagged in a pre-migration audit report — your team either invites the user to Odoo first or assigns a fallback owner for their records. We also validate referential integrity: prospects without a valid property link, contacts without a resolved company, and orphaned activities are surfaced for manual decision before the migration writes begin.
Run sample migration with field-level diff
A representative slice of 200–500 records — spanning prospects, contacts, companies, and activities across multiple properties — migrates first. We generate a field-level diff comparing source values in RealPage against destination values written to Odoo crm.lead and res.partner. You review the diff to verify stage mapping, custom field population, owner resolution, and attachment re-links before the full migration commits. Adjustments to the mapping table are made and the sample re-run if needed.
Execute full migration with delta-pickup window
The full dataset migrates against the live Odoo CRM instance. A delta-pickup window of 24–48 hours after the initial batch captures any records created or modified in RealPage during the cutover — particularly important if leasing agents are still processing applications during the transition. Audit logs record every operation; one-click rollback is available if reconciliation against the RealPage source data reveals unexpected gaps. Post-migration, we deliver a reconciliation report showing record counts, attachment links, and any records that require manual review.
Platform deep dives
Realpage
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Realpage and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Realpage and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Realpage and Odoo CRM.
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
Realpage: Not publicly documented.
Data volume sensitivity
Realpage 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 Realpage to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Realpage 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 Realpage
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.