CRM migration

Migrate from Funnel Leasing to Odoo CRM

Field-level mapping, validation, and rollback between Funnel Leasing and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Funnel Leasing logo

Funnel Leasing

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Funnel Leasing and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Funnel Leasing is a renter-centric CRM built for multifamily operators — its data model centers on Prospects, Properties, Units, and the full leasing lifecycle from inquiry to approved application. Odoo CRM uses a general-purpose crm.lead model that splits between Lead and Opportunity views, with res.partner for contacts and crm.team for sales group assignments. The migration must map Funnel's Prospect object to Odoo's crm.lead, Funnel's Contact records to res.partner, communication logs to Odoo's mail.message threading, and any custom leasing fields (property interest, unit preference, lease term) to Odoo custom fields on the lead model. Odoo has no native concept of lease terms or unit availability — those require custom fields and potentially the Odoo Property module if your team uses it. Funnel's AI workflow automations (lead routing, follow-up sequences) do not migrate; they must be rebuilt in Odoo using its Automation menu or Studio. We access Funnel via its Customer API using scoped read permissions, export in JSON batches, then load into Odoo via XML-RPC with a staging validation pass before the full run. Owner resolution maps Funnel user emails to Odoo res.users login accounts — unmatched owners receive a fallback assignment flagged for admin review. A 24–48 hour delta-pickup window closes after the cutover migration to capture any Funnel records modified during the switchover.

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

Funnel Leasing logo

Funnel Leasing

What's pushing teams away

  • Enterprise pricing lacks transparency, requiring a sales conversation with no published pricing for the Full Funnel tier, making budget forecasting difficult for large portfolios.
  • Third-party BI integrations like Tableau and Snowflake are not included in base pricing and add significant cost, frustrating data teams that need native analytics.
  • Operators with highly differentiated property types or small portfolios report that the centralized model works best for uniform mid-to-large portfolios and can be overkill for niche operators.
  • Support model changes over time have frustrated some customers who report reduced support access compared to earlier pricing tiers, particularly for mid-market accounts.

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 Funnel Leasing objects map to Odoo CRM

Each row shows how a Funnel Leasing 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.

Funnel Leasing

Prospect

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Funnel Prospect maps directly to Odoo crm.lead. In Odoo, crm.lead can represent both a Lead (unqualified) and an Opportunity (qualified deal). We import Funnel Prospects as crm.lead records in the New stage, then update stage_id to reflect Funnel's pipeline stage mapping. The lead's name field derives from the prospect's first name + last name or company name.

Funnel Leasing

Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Funnel Contact maps to Odoo res.partner. Odoo res.partner serves as both the contact/company master record — individual renters map as individual partners, property management contacts map as company partners. Partner addresses, phone, email, and website fields align directly with Funnel's Contact object fields.

Funnel Leasing

Prospect (when qualified)

maps to

Odoo CRM

crm.lead as Opportunity

1:1
Fully supported

When a Funnel Prospect reaches a qualifying stage (Application Submitted or later), we flag the Odoo crm.lead with type='opportunity' to transition it from Lead view to Opportunity/Kanban pipeline view in Odoo. The transformation happens by evaluating Funnel's stage_name field against a mapping table defined in the migration plan before the run.

Funnel Leasing

Property

maps to

Odoo CRM

product.product or x_property

1:1
Fully supported

Funnel Property objects have no native equivalent in Odoo CRM. If your team uses Odoo Inventory or Real Estate module, Properties map to product.product or estate.property. Otherwise, we create a custom x_property model in Odoo to store Property records with fields: name, address, unit_count, property_type. This requires Odoo custom module development or Enterprise Studio configuration.

Funnel Leasing

Unit

maps to

Odoo CRM

product.product (variant)

1:1
Fully supported

Funnel Unit records (individual apartments within a Property) map to product.product variants when Odoo Inventory is available. Units carry fields like unit_number, bedrooms, bathrooms, market_rent, and availability_status. When Odoo Inventory is not in scope, Units migrate as custom fields on the related Property record in the x_property model.

Funnel Leasing

Communication Log (email, text, call)

maps to

Odoo CRM

mail.message

1:1
Fully supported

Funnel's omnichannel communication logs (email threads, SMS messages, call recordings with notes) map to Odoo mail.message records linked to the corresponding res.partner. Original timestamps and direction (inbound/outbound) are preserved. Call duration and disposition are stored in custom fields on the message record.

Funnel Leasing

Appointment / Tour

maps to

Odoo CRM

calendar.event

1:1
Fully supported

Funnel's property tour and appointment records map to Odoo calendar.event entries. The event links to the related crm.lead (prospect) and res.partner (contact). Start/end times, location (property address), and assigned leasing agent (mapped via email to Odoo user) are preserved. Odoo Calendar integration with email is handled by the mail module.

Funnel Leasing

Lease Application

maps to

Odoo CRM

Custom x_lease_application model

1:1
Fully supported

Funnel Lease Application records (applicant data, income verification, background check status, co-applicant details) have no Odoo CRM equivalent. We create an x_lease_application custom model linked to the crm.lead via a many2one relationship. Fields like application_status, submitted_date, approval_date, and income_to_rent_ratio are stored as custom fields on this model.

Funnel Leasing

User / Owner

maps to

Odoo CRM

res.users

1:1
Fully supported

Funnel user accounts (leasing agents, property managers) map to Odoo res.users by email address matching. Active Funnel users who have a corresponding Odoo login receive their records via owner_id on crm.lead. Funnel users without an Odoo account are flagged and assigned to a fallback migration user pending admin provisioning.

Funnel Leasing

Tag / Label

maps to

Odoo CRM

crm.tag

1:1
Fully supported

Funnel's prospect tagging system (e.g., 'referral', 'renewal', 'high‑intent') maps to Odoo's crm.tag records. Tags are applied to crm.lead records via the tag_ids many2many relationship. Funnel tags that have no matching Odoo tag are automatically created in Odoo during the migration, ensuring every source tag appears on the corresponding leads after the import completes.

Funnel Leasing

Custom Prospect Property (e.g., desired_bedrooms, move_in_date)

maps to

Odoo CRM

x_ (Community) or Studio custom field on crm.lead

1:1
Fully supported

Funnel allows unlimited custom properties on Prospect and Contact objects. Each custom property requires a corresponding Odoo field creation before migration. We inventory all Funnel custom properties, map their data types (text, number, date, picklist) to Odoo field types (char, float, datetime, selection), and create the fields on crm.lead or res.partner via Odoo Studio (Enterprise) or Python model definition (Community).

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.

Funnel Leasing logo

Funnel Leasing gotchas

Medium

Funnel is not a party to rental transactions

Medium

PMS integration fees are bundled into per-unit pricing

High

No publicly documented bulk export API for large portfolios

Low

AI-generated fields are proprietary and may not map directly to destination fields

Medium

ResApp resident portal accounts are not migratable

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

  • Funnel's renter-centric custom fields have no Odoo CRM native home

    Funnel Leasing stores leasing-specific prospect data (desired move-in date, income verification status, desired bedrooms, max budget) as custom properties. Odoo CRM has no native fields for these concepts. Before migration, your team must create custom fields on crm.lead via Odoo Studio (Enterprise) or by defining new fields in a custom module (Community). FlitStack delivers a custom field creation checklist as part of the pre-migration plan so Odoo is schema-ready before data lands. Failure to pre-create these fields means the data gets dropped or stored in an unstructured notes field, breaking reporting continuity.

  • Funnel's leasing pipeline stages map to Odoo stages per team, not globally

    Funnel's leasing pipeline has specific stage names (New Inquiry, Touring, Application, Under Review, Approved, Leased) that reflect the rental application lifecycle. Odoo's crm.stage records are scoped per crm.team. If your organization has multiple property teams or sales groups in Odoo, Funnel's stages must be created under each relevant Odoo team, and crm.lead records must be assigned to the correct team_id so the stage_id resolves correctly. We include a team mapping review in the planning phase to prevent orphaned stage assignments.

  • Lease Application records require a custom Odoo model

    Funnel tracks the full lease application lifecycle including income verification, co-applicant data, and approval status. Odoo CRM has no Lease Application object. We create an x_lease_application custom model linked to crm.lead via a many2one field, but this requires Odoo custom module development (Community) or Enterprise Studio configuration. The custom model and its fields must exist before the migration loads application records. If your team does not use Odoo Studio, this is a developer-level step that extends the planning phase.

  • Odoo Community edition requires x_ prefix for programmatic custom fields

    In Odoo Community, custom fields added via Python model definition must use the x_ prefix (e.g., x_desired_move_in_date). In Odoo Enterprise, Studio-created custom fields display without the prefix in the UI but still use x_ internally. Our field mapping references the internal field names. If your Odoo instance is Community edition, the fields must be created with x_ prefix in the ir.model.fields record. This is a configuration step your Odoo admin must complete before migration validation runs.

  • Communication logs map to mail.message but call metadata requires custom fields

    Funnel's omnichannel communication logs include call duration, disposition, and recording links. Odoo's mail.message model stores the message body and metadata but lacks native fields for call duration or recording URLs. To preserve this information, we extend mail.message with custom fields x_call_duration (integer, seconds) and x_recording_url (char, URL) using the same field‑creation workflow applied to crm.lead. In Odoo Community the fields must use the x_ prefix; in Enterprise they can be created via Studio without a visible prefix. Without these fields, call details are omitted, leaving only the message text and timestamp in Odoo, which reduces the fidelity of conversation history.

Migration approach

Six steps for a successful Funnel Leasing to Odoo CRM data migration

  1. Audit Funnel custom properties and Odoo custom field plan

    FlitStack inventories all Funnel Prospect and Contact custom properties via the Funnel Customer API. We compare the full property list against your target Odoo instance's existing fields. A custom field creation plan is generated, specifying field name, Odoo internal name (x_ prefix for Community), data type, and target model (crm.lead or res.partner). Your Odoo admin or our team creates these fields before migration validation begins.

  2. Design Funnel-to-Odoo stage and team mapping

    We extract Funnel's pipeline stages and assigned agent data via API. A stage mapping table is built: each Funnel stage name maps to a specific Odoo crm.stage record under a defined crm.team. If your Odoo has multiple teams (e.g., by property portfolio), we map Funnel's assigned agent to the appropriate team_id in Odoo so stage assignments resolve correctly on load.

  3. Run a sample migration with field-level diff

    A representative slice of 100–500 records — spanning Prospects across all Funnel stages, Contacts, and a sample of communication logs — migrates first. We generate a field-level diff comparing source values from Funnel against destination values written to Odoo. You verify stage mapping, custom field population, owner resolution, and communication log threading before the full run commits. Any mapping errors are corrected in the transformation layer before re-running the sample.

  4. Execute full migration with delta-pickup window

    The full Funnel dataset migrates to Odoo via XML‑RPC in batched API calls, typically 500 records per request to stay within Odoo's session limits. After the initial load completes, a delta‑pickup window of 24–48 hours captures any records created or modified in Funnel during the cutover period. Owner resolution logs unmatched Funnel users for admin review, while the audit log records every record written, transformed, or skipped so reconciliation is fully traceable.

  5. Reconciliation report and rollback readiness

    FlitStack generates a reconciliation report comparing Funnel record counts by object and stage against Odoo crm.lead and res.partner counts. Any gaps are flagged with the source Funnel ID for manual review. One-click rollback is available if reconciliation fails — this reverts Odoo to its pre-migration state by removing migrated records using the FlitStack audit log. The rollback is not a partial operation; it is a full reversion scoped to the migration run ID.

Platform deep dives

Context on both ends of the pair

Funnel Leasing logo

Funnel Leasing

Source

Strengths

  • AI-powered leasing automation embedded natively without requiring separate AI tool subscriptions
  • Transparent per-unit pricing model with published rates on Essentials and Intelligence tiers
  • Renter-centric data architecture gives a single view of each prospect and resident across the entire portfolio
  • Omnichannel communication logging unifies emails, calls, texts, and chats into one contact profile
  • Claims 70% faster approval-to-lease distribution through integrated online leasing workflows

Weaknesses

  • Enterprise pricing requires a sales conversation with no published Full Funnel tier rates
  • Third-party BI tool integrations (Tableau, Snowflake) incur additional costs not included in base pricing
  • Centralized portfolio-wide model may be unnecessarily complex for small or niche portfolios
  • API documentation is not publicly indexed at scale, requiring developer account access for schema reference
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. All 8 core objects map 1:1 between Funnel Leasing and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Funnel Leasing and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Funnel Leasing and Odoo CRM.

  • 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

    Funnel Leasing: Not publicly documented..

  • Data volume sensitivity

    B

    Funnel Leasing doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Funnel Leasing 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 Funnel Leasing to Odoo CRM data migrations

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

Can't find your answer?

Walk through your Funnel Leasing to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Funnel Leasing to Odoo CRM migrations complete in 48–72 hours for setups under 50,000 records. The longest planning step is custom field creation — Funnel stores leasing-specific prospect properties (move-in date, income verification) that require Odoo custom fields to be defined before data loads. Setups exceeding 100,000 records or requiring a custom x_lease_application model extend to 5–10 days. The delta-pickup window (24–48 hours) adds to the total cutover timeline but does not require downtime in Funnel.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Funnel Leasing.
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