CRM migration

Migrate from Fello to Odoo CRM

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

Fello logo

Fello

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Fello and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Fello stores contacts with AI-generated lead scores, listing-propensity ratings, and TCPA consent records tied to a CRM owner. Odoo CRM separates leads (crm.lead) from partners (res.partner), with stages managed via stage_id on the lead object and teams via team_id. We map Fello contacts to res.partner records, Fello owner assignments to Odoo sales team membership, and Fello AI scores to custom float fields on res.partner. Fello's smart workflow automations do not migrate — they require Odoo Studio or server actions to rebuild. Our migration engine reads Fello's CSV export or API payload, transforms field names and pick-list values against Odoo's ir.model.fields schema, and writes via XML-RPC in sequence: partners first, then leads with partner_id foreign keys resolved, then custom fields as x_fello_lead_score, x_tcpa_consent, x_listing_propensity, and any other custom properties Fello stores. The engine preserves Fello's real-estate AI insights across to Odoo's modular ERP ecosystem, maintaining contact intelligence through the transition.

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

Fello logo

Fello

What's pushing teams away

  • Some agents outgrow Fello once their team scales beyond 10 seats, finding the platform better suited to individual agents and small teams than to larger brokerages.
  • The platform is narrowly scoped to real estate agent database prospecting, so teams seeking broader marketing automation or CRM capabilities eventually migrate to all-in-one platforms like HubSpot.
  • A subset of users find the lead score confidence misleading when high-scored contacts do not convert to listings, raising questions about the accuracy of the AI prioritization model.

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

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

Fello

Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Fello contact records map directly to Odoo res.partner. The contact's name, email, phone, and address fields translate to Odoo's standard partner fields without transformation. Owner assignment requires email-based matching to res.users before the partner record is linked, ensuring the assigned agent has an Odoo user account.

Fello

Contact / Lead Record

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Fello contacts with active engagement or scoring above a defined threshold become Odoo crm.lead opportunities. The crm.lead record stores the contact's email, phone, and source; the partner_id field links back to the res.partner record created in the preceding step, maintaining referential integrity.

Fello

Fello Owner

maps to

Odoo CRM

res.users + crm.team

1:1
Fully supported

Fello owner assignments map to Odoo res.users records matched by email address lookup. Sales-team membership comes from Odoo's crm.team model — if Fello contains team groupings, we map them to crm.team records and assign the user to team_id on the lead for proper routing.

Fello

AI Lead Score

maps to

Odoo CRM

res.partner (custom field)

1:1
Fully supported

Fello's numeric lead score (0–100) has no native Odoo equivalent field on res.partner. We create a custom float field x_fello_lead_score via ir.model.fields and write the original source value. Odoo's native predictive lead scoring can be layered on top post-migration if Enterprise features are enabled.

Fello

TCPA Consent Record

maps to

Odoo CRM

res.partner (custom field)

1:1
Fully supported

Fello's built-in TCPA consent flag and timestamp migrate to x_tcpa_consent (boolean) and x_tcpa_consent_date (datetime) on res.partner. Odoo has no native consent model in its CRM base module — these custom fields preserve the compliance record for reference only.

Fello

Listing Propensity Score

maps to

Odoo CRM

res.partner (custom field)

1:1
Fully supported

Fello's proprietary listing-propensity rating (distinct from general lead score) migrates as x_listing_propensity on res.partner. This field carries Fello's real-estate AI enrichment data — a concept specific to Fello that Odoo does not natively model, requiring a custom field to preserve the value.

Fello

Contact Segment / Tag

maps to

Odoo CRM

res.partner.category_id

1:1
Fully supported

Fello segments (e.g., 'Hot Seller', '6-Month Window') map to Odoo res.partner.category_id tag relationships. Categories are stored in res.partner.category and linked via a many2many relation — any tags without a matching Odoo category are created automatically during migration setup.

Fello

Fello Smart Workflow

maps to

Odoo CRM

Odoo Studio / server_action

1:1
Fully supported

Fello automations including score-triggered outreach, drip sequences, and consent-based routing do not migrate as executable objects. We export workflow definitions as a JSON blueprint and provide a rebuild guide mapping Fello triggers to Odoo ir.actions.server and automated actions, giving your admin a reference to reconstruct the logic.

Fello

Fello Landing Page Data

maps to

Odoo CRM

crm.lead (source_id)

1:1
Fully supported

Contacts created via Fello landing pages carry UTM and source metadata. This maps to crm.lead.source_id (utm.source) and crm.lead.referrer (utm.medium) — Odoo's native UTM tracking fields handle this natively without requiring additional custom field creation.

Fello

Fello Widget / Form Submission

maps to

Odoo CRM

crm.lead (description)

1:1
Fully supported

Fello widget interactions such as home-value report requests appear as activity or note records on the contact. We append these as plaintext entries in crm.lead.description to preserve the context in the lead record, though they are not structured as separate activity or phonecall models.

Fello

Custom Property Fields

maps to

Odoo CRM

res.partner / crm.lead (custom fields)

1:1
Fully supported

Any Fello custom properties beyond standard fields (e.g., 'last_home_value_report_date', 'listing_interest_score', 'preferred_neighborhoods') migrate as Odoo custom fields. These are created via ir.model.fields before data import begins, with field type inferred from Fello's data sample values to match Odoo's column type requirements.

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.

Fello logo

Fello gotchas

High

No public API — all data export is CSV only

Medium

Automation workflows must be manually rebuilt

Low

Contact export requires filtering before export job

Medium

Lead score is Fello-computed and proprietary

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

  • Fello's AI lead score has no native Odoo equivalent — custom field creation required before import

    Fello generates a 0–100 lead score using proprietary real-estate AI that analyzes listing propensity, market data, and engagement signals. Odoo CRM has no native equivalent field on res.partner — the native lead scoring module in Odoo Enterprise uses behavioral signals rather than Fello's model. If you want the score visible in Odoo, our migration engine creates a custom float field x_fello_lead_score on res.partner before the import runs. Without this, the score is lost. The score does not drive Odoo's native predictive AI scoring — that runs independently on Odoo's own signals.

  • Fello Smart Workflows do not migrate — consent-based outreach sequences must be rebuilt in Odoo Studio

    Fello Smart Workflows automate outreach based on lead score thresholds, TCPA consent status, and listing-propensity changes. Odoo has no workflow migration path — automations in Odoo are built as server actions, automated actions (ir.actions.server), or Odoo Studio flows, none of which are generated by data migration tools. We export Fello workflow definitions as a JSON blueprint mapping triggers (score > 70, consent = True) to Odoo action types. Rebuilding typically takes 2–4 hours per workflow depending on complexity. Fello's Scale plan includes Smart Workflows; the absence of these in Odoo is a significant process change your team should plan for before go-live.

  • Odoo's crm.lead stage_id requires pre-created stage records before import — flat CSV imports fail without them

    Odoo's crm.lead.stage_id field is a many2one pointing to crm.stage records that must exist in the database before leads are imported. Fello has no equivalent stage object — contacts are scored but not staged. If your team uses Fello's implicit pipeline model (e.g., 'Hot', 'Warm', 'Cold' based on score), we translate score ranges to Odoo stage names and create the corresponding crm.stage records during migration setup. The stage creation must happen before any lead import; otherwise Odoo rejects the import with a foreign-key constraint error on stage_id.

  • Fello's TCPA consent flag is platform-native — Odoo has no compliance model so the field must be custom

    Fello builds TCPA consent collection directly into its contact forms and stores consent timestamps per record. This is a Fello-native compliance feature with no Odoo equivalent — Odoo does not have a built-in consent management module in its CRM. Our migration creates x_tcpa_consent (boolean) and x_tcpa_consent_date (datetime) custom fields on res.partner to preserve the consent record. These are reference fields only — Odoo's email marketing tools (mass_mailing) do not automatically read them. Your team must configure Odoo's mailing list consent checks manually post-migration to ensure the compliance logic carries forward.

  • Fello CSV export does not include activity history — logged calls, emails, and meeting notes require separate extraction

    Fello's contact export (Settings > Import & Export > Export) produces a flat CSV of contact records with current field values. It does not include the activity log — call logs, email threads, meeting records, and note history are stored separately in Fello and are not surfaced in the standard export. Odoo's crm.lead model supports activity tracking via mail.message and crm.phonecall, but these must be created programmatically from extracted Fello activity data. If your team relies on historical engagement notes for pipeline context, a separate activity extraction step is required before or after the main migration run.

Migration approach

Six steps for a successful Fello to Odoo CRM data migration

  1. Extract Fello data and inspect schema

    We download the Fello contact CSV export and any supplemental data (activity logs, custom property exports) your team has access to. Our migration engine inspects the CSV headers to identify all standard and custom Fello fields. We also check for any available API endpoints Fello exposes for bulk data retrieval. The output is a field inventory document mapping each Fello column to its data type, sample values, and null frequency — used to plan Odoo custom field creation before any import runs.

  2. Create Odoo custom fields and stage structure

    Before any partner or lead records are written, our engine creates the Odoo custom fields identified in the Fello schema: x_fello_lead_score (float), x_listing_propensity (float), x_tcpa_consent (boolean), x_tcpa_consent_date (datetime), x_last_home_value_report (datetime), x_fello_id (char), and any other Fello custom properties. Simultaneously, we map Fello score tiers or deal stages to Odoo crm.stage records and create them via xmlrpc so stage_id foreign keys resolve correctly during import.

  3. Resolve owner and team assignments

    Fello owner IDs are resolved to Odoo res.users records by email address. For each unique owner email in the Fello export, we query res.users for a matching email — if no match exists, the record is assigned to the fallback user your team designates. Team assignments from Fello map to crm.team records — if a team name in Fello has no corresponding Odoo team, we create it. Owner resolution is logged so you can verify the mapping before the full run commits.

  4. Import partners, then leads with foreign-key resolution

    We write res.partner records first — Odoo's foreign-key constraints require partner records to exist before crm.lead records can reference them via partner_id. For each Fello contact, we create a partner record with all standard fields, custom fields, and category tags. After all partners are committed, we create crm.lead records for contacts that qualify as opportunities (score above threshold, deal fields present, or manually flagged). The crm.lead records reference the partner_id created in step 1 and write the resolved stage_id and user_id.

  5. Run sample migration with field-level diff

    A representative slice — typically 100–500 records spanning different segments, score tiers, and owner assignments — migrates first. We generate a field-level diff showing each source field value alongside the destination field value, highlighting any null fills, transformed values, or dropped fields. You review the diff to verify custom field mapping, stage assignment logic, and owner resolution before the full run is authorized.

  6. Execute full migration with delta-pickup window

    After sample approval, the full migration runs. A delta-pickup window (24–48 hours) captures any Fello records modified or created during the cutover window. An audit log records every create and update operation with source record ID, destination record ID, field mappings applied, and timestamp. If reconciliation finds discrepancies, a one-click rollback reverts all FlitStack-written records so the migration can be re-run with corrected mapping logic.

Platform deep dives

Context on both ends of the pair

Fello logo

Fello

Source

Strengths

  • Generates seller leads from existing CRM contacts using AI scoring rather than requiring new lead acquisition.
  • Built-in TCPA compliance for automated calling and texting reduces legal exposure for real estate agents.
  • Seamless CRM integration layer means agents do not abandon their existing contact management workflow.
  • High G2 rating (4.9/5) with 94% five-star reviews reflecting strong user satisfaction and ease of use.
  • Two-week guided onboarding with a dedicated advisor reduces time from signup to first pipeline activity.

Weaknesses

  • No public API documentation found; all data export is CSV-based and requires manual download or export-job download link processing.
  • Automation workflows cannot be transferred programmatically and must be manually rebuilt at the destination, per Fello's own support documentation.
  • Narrowly scoped to real estate agent use cases; teams in other verticals have no path forward within the platform.
  • Platform functions as a CRM overlay, so it has no value without an existing populated CRM database to enrich.
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 Fello and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Fello 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

    Fello: Not publicly published..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Fello-to-Odoo migrations complete in 48–72 hours of clock time for under 25,000 records. Larger setups with 100k+ records or multiple custom fields (AI scores, consent records, property-enrichment data) extend to 5–10 days. The longest planning step is pre-creating Odoo custom fields and crm.stage records so foreign-key constraints resolve correctly during import. Field mapping and owner-resolution planning typically takes 1–2 days before the migration engine runs.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Fello.
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