CRM migration

Migrate from FranConnect to Odoo CRM

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

FranConnect logo

FranConnect

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

46%

6 of 13

objects map 1:1 between FranConnect and Odoo CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from FranConnect to Odoo CRM is a franchise-specific data model migration into a general-purpose ERP-adjacent CRM. FranConnect organizes data around the franchise lifecycle: Leads, Units, Territories, and Royalty Manager records tied to franchisee agreements. Odoo CRM uses standard Contact, Account, and Project objects with no native franchise hierarchy. We resolve that structural gap during scoping by mapping FranConnect Units to Project records with custom fields for site address, owner, and territory; mapping Franchisees to Contacts with a Partner Role property; and mapping Royalty records to Odoo Accounting Invoices if the Odoo Accounting module is present. Drip campaigns, task checklists, and Site Visit workflows do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in Odoo. The BI/Analytics module does not export as data and is not migrated. We use FranConnect's REST API with proactive token refresh for extraction, and Odoo's XML-RPC API for import with batch chunking and parent-record lookup resolution.

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

FranConnect logo

FranConnect

What's pushing teams away

  • Interface navigation is non-intuitive for new users — the learning curve is steep and the home button layout requires multiple clicks to reach key sections
  • Perceived complexity for smaller franchise systems — some operators find the feature breadth overwhelming relative to their actual needs
  • Reports indicate the platform can slow during peak usage hours, affecting performance visibility when it matters most
  • Switching costs are significant given the franchise-specific data model — lead pipelines, task checklists, and royalty structures are tightly coupled to FranConnect conventions
  • Enterprise pricing without a free trial creates commitment risk, particularly for emerging brands evaluating fit before full adoption

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

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

FranConnect

Leads (Franchise Development)

maps to

Odoo CRM

CRM Lead

1:1
Fully supported

FranConnect Leads map to Odoo CRM Lead records. The Lead status, source category, owner assignment, and associated drip campaign membership migrate as custom fields on the Lead. We extract drip campaign enrollment as a computed property (e.g., campaign_id and enrollment_date) stored in an Odoo Char or Selection field. Territory assignment from FranConnect maps to a custom field on the Lead. No native Odoo Lead field exists for drip campaign sequence step; we represent campaign state as text properties for the customer's admin to rebuild in Odoo Automated Actions post-migration.

FranConnect

Contacts

maps to

Odoo CRM

Contact (res.partner)

1:1
Fully supported

FranConnect Contacts (both franchisor staff and franchisee representatives) map to Odoo res.partner records. Standard fields (name, email, phone, address) migrate directly. For franchisee representatives, we set Partner Type to Individual or Company as appropriate. Custom contact properties from FranConnect map to custom fields on res.partner using Odoo's ir.model.fields API. We resolve the country/state from FranConnect address fields to Odoo's country_id and state_id lookups using ISO country codes.

FranConnect

Units (Locations/Sites)

maps to

Odoo CRM

Project (project.project)

1:many
Mapping required

FranConnect Units represent franchise locations and have no direct Odoo CRM equivalent. We map Units to Project records (project.project) using a naming convention of Unit-[Unit Number]-[Location Name]. Each Project inherits the site address as the Project Address, the owner/franchisee as a Follower, and custom fields for unit_status, opening_date, and territory_id. If the customer requires unit-level reporting across a portfolio, we recommend a custom site model as a separate configuration; this is designed during the schema phase.

FranConnect

Franchisees

maps to

Odoo CRM

Contact (res.partner) with custom Role field

lossy
Mapping required

FranConnect Franchisees are the individuals or entities operating units. We map Franchisee records to res.partner with a custom field franchisee_role__c (char or selection) storing the franchisee type (e.g., individual owner, corporate franchisee, master franchisee). Agreement dates, territory exclusivity flags, and ownership stakes migrate as additional custom fields on the partner record. Multi-unit franchisees get one res.partner record with a custom units_managed__c field listing associated Unit IDs.

FranConnect

Territories

maps to

Odoo CRM

Custom Configuration Table

lossy
Mapping required

FranConnect Territories define geographic boundaries tied to franchise agreements and have no native Odoo equivalent. We map Territory records to a custom Odoo model (e.g., franchise.territory) with fields for territory_name, geographic_definition (text description or polygon JSON if available), exclusivity_flag (boolean), and associated_unit_ids (one2many to Project). Geographic coordinate data from FranConnect, if present, migrates as a text field for the customer's admin to integrate with a mapping tool if needed.

FranConnect

Tasks (Checklists)

maps to

Odoo CRM

Project Task (project.task)

1:many
Mapping required

FranConnect Tasks and checklists for opening procedures and compliance workflows map to project.task records linked to the corresponding Unit Project. Task groups become project.task records with a parent_id hierarchy for grouped checklists. Mandatory/optional flags and reminder schedules migrate as custom fields. We do not migrate active reminder triggers; these are represented as documentation for the customer's admin to rebuild using Odoo Planned Actions.

FranConnect

Site Visits

maps to

Odoo CRM

Project Task (project.task) or Custom Visit Model

lossy
Mapping required

FranConnect Site Visit records (inspections, audits, compliance visits) map to project.task records with a visit_scheduled_date, completion_status, scoring_data, and response_analysis. If visit records carry structured audit data, we recommend a custom visit model during schema design so that scoring and response fields are typed correctly. We preserve the visit summary as a large text field for reporting continuity.

FranConnect

Royalty Manager Records

maps to

Odoo CRM

Account Invoice (account.move) or Custom Financial Model

lossy
Mapping required

FranConnect Royalty Manager stores invoices, payments, and royalty calculations tied to Units and Franchisee agreements. Migration requires Odoo Accounting to be installed. If Odoo Accounting is present, Royalty invoices map to account.move records (type=out_invoice) with the franchisee partner as the partner_id and the Unit/Project referenced in an invoice line description. If Odoo Accounting is not in scope, we migrate Royalty records as a custom financial model for the customer's admin to import into their accounting system of record. We flag this decision during discovery.

FranConnect

Training Records

maps to

Odoo CRM

Custom Training Enrollment Model

1:1
Mapping required

FranConnect Training module tracks learning completion and certifications for franchisee employees. We migrate training enrollment records and completion status to a custom enrollment model. Quiz scores and course-specific metadata do not have a native Odoo equivalent and migrate as JSON text or are excluded based on customer priority during scoping. LMS-specific course content (video, SCORM) does not migrate.

FranConnect

Documents

maps to

Odoo CRM

IR Attachment (ir.attachment)

1:1
Mapping required

FranConnect stores documents linked to Leads, Units, Franchisees, and Tasks. We extract document metadata (filename, mime_type, creation_date, URL) and migrate as ir.attachment records linked via res_model and res_id to the corresponding migrated record. File binary transfers are handled via FranConnect's document export API, and files are attached to the Odoo record using ir.attachment's datas field (base64-encoded) or stored as external URLs.

FranConnect

Support Tickets

maps to

Odoo CRM

Helpdesk Ticket (helpdesk.ticket) or CRM Lead

lossy
Mapping required

FranConnect Trouble Tickets tied to franchisee users map to Odoo Helpdesk Ticket if the customer installs the Odoo Helpdesk app. Ticket status, department assignment, and conversations migrate to the helpdesk.ticket model. If Helpdesk is not installed, we map Support Tickets to CRM Leads or a custom ticket model. Conversation threads migrate as message records on the ticket.

FranConnect

Owner

maps to

Odoo CRM

User (res.users)

1:1
Fully supported

FranConnect Owners (franchisor staff managing leads, units, and operations) map to Odoo res.users records. We resolve owners by email match against the Odoo destination User table. Any FranConnect Owner without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Inactive FranConnect owners map to inactive Odoo Users to preserve assignment history.

FranConnect

Analytics and Reports (BI)

maps to

Odoo CRM

Not Migrated

1:1
Not supported

FranConnect's BI module generates platform-rendered visualizations and franchise performance dashboards. These are not exportable as data. We migrate the underlying data (Lead counts, Unit status, Royalty totals, Training completion rates) as custom fields on the migrated objects so that the customer's admin can rebuild equivalent reports in Odoo Reporting or a BI tool of choice. The dashboards themselves are not migrated.

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.

FranConnect logo

FranConnect gotchas

High

API access token expires in 12 hours with 30-day refresh window

Medium

Rate limit of 73,000 requests per hour per tenant and user

Medium

CSV import enforces strict date and character formatting

Medium

Not all modules have documented REST API endpoints

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

  • FranConnect franchise-specific objects lack Odoo equivalents

    FranConnect organizes data around franchise conventions (Units, Territories, Franchisees, Royalty Manager) that have no native Odoo CRM objects. Units, Territories, and Franchisees must be modeled using Odoo's Project, custom configuration, and res.partner with custom fields. Royalty records require Odoo Accounting to be installed; otherwise, they migrate to a custom financial model. We design this schema during the discovery phase and validate it in a staging environment before production migration. Skipping this design step results in franchise data landing in the wrong objects or being dropped during import.

  • Odoo custom field creation requires module development or studio

    Odoo custom fields are defined via module XML (for developers) or Odoo Studio (for admins with Enterprise). Unlike platforms where custom fields are created through a UI settings page, Odoo requires either a custom module or the Studio app. We scope custom field creation during schema design, deploy custom fields via an Odoo module we build during migration, and test field visibility in page layouts before production. If the customer lacks Studio or a developer resource, we deliver a module file that an Odoo partner can install post-migration.

  • FranConnect OAuth token refresh window is 30 days

    FranConnect's OAuth tokens expire after 12 hours and refresh tokens are valid for 30 days. For migrations spanning multiple days or weeks (large datasets, reconciliation passes), we schedule proactive token refreshes to avoid mid-run authentication failures. If a refresh token expires, the customer must re-authenticate with FranConnect credentials. We flag this risk upfront and plan extraction windows accordingly.

  • Drip campaigns and sequences do not migrate as active automations

    FranConnect drip campaigns (linked to Leads with sequence steps and enrollment status) have no direct Odoo equivalent. Odoo Automated Actions are trigger-based and do not replicate the cadence model. We migrate campaign membership and last-step status as text properties on the Lead record and deliver a written campaign inventory documenting trigger conditions, sequence steps, and estimated Odoo Automated Actions equivalents for the customer's admin to rebuild post-migration.

  • Not all FranConnect modules expose documented REST endpoints

    FranConnect's API documentation covers several modules but notably excludes the BI/Analytics module and some Operate module endpoints. During discovery we identify which modules have accessible API endpoints and use CSV-based exports where API access is unavailable. Some modules may require manual export via FranConnect's UI export wizard. We document any modules requiring manual export and incorporate them into the migration runbook.

Migration approach

Six steps for a successful FranConnect to Odoo CRM data migration

  1. Discovery and franchise schema mapping

    We audit the source FranConnect tenant across modules (Franchise Development, Location Management, Operations, Financials), extracting the object inventory, record counts, custom field definitions, and API endpoint availability per module. We pair this with an Odoo environment assessment to confirm which Odoo apps are installed (CRM, Project, Accounting, Helpdesk) and the version (Odoo Online, On-Premise, Odoo.sh). The discovery output is a written migration scope specifying which FranConnect objects map to which Odoo models, which require custom field definitions, and which require manual CSV export versus API extraction.

  2. Odoo schema design and custom field module build

    We design the destination schema in Odoo. This includes provisioning custom fields on res.partner (franchisee_role__c, units_managed__c), building a custom Territory model (franchise.territory) with geographic fields, configuring Project records for Units, and defining the Royalty financial mapping or custom model. If Odoo Accounting is present, we design the chart of accounts mapping for Royalty invoices. We deploy custom fields and models via a migration module (Python XML) into a staging Odoo database first for validation. The customer reviews the schema before we proceed to extraction.

  3. Staging migration and reconciliation

    We run a full migration into the staging Odoo environment using production-like data volume. The customer's franchise operations lead reconciles record counts (Leads in, Contacts in, Units/Projects in, Territory records in, Royalty records in), spot-checks 25-50 records against FranConnect source data, and validates that custom field values appear correctly on the Odoo forms. Any mapping corrections happen in staging. We do not move to production until the customer signs off on the staging results.

  4. Owner and user provisioning

    We extract every distinct FranConnect Owner referenced on Leads, Units, Tasks, Site Visits, and Royalty records and match by email against the Odoo destination's res.users table. Owners without a matching Odoo User go to a reconciliation queue. The customer's Odoo admin provisions any missing Users (active or inactive) before production migration resumes. Owner resolution is a prerequisite for record import because many Odoo default views filter by responsible User.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Territory configuration records first (no dependencies), then Contacts and Franchisees (res.partner), then Leads (CRM Lead with owner and territory resolved), then Projects (from Units), then Tasks and Site Visits (linked to Projects), then Royalty records (linked to franchisee partner and Unit/Project), then Documents (ir.attachment linked to parent records). Each phase emits a row-count reconciliation report before the next phase begins. We use Odoo's XML-RPC API with batch chunking for large record sets and exponential backoff on rate-limit responses.

  6. Cutover, validation, and automation rebuild handoff

    We freeze FranConnect writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. We deliver the campaign and drip automation inventory document, the custom field schema documentation, and the Odoo module file for custom fields to the customer's admin team. We support a one-week hypercare window for reconciliation issues. We do not rebuild FranConnect drip campaigns, task checklists, or automated reminders as Odoo Automated Actions inside the migration scope; that is a separate configuration engagement.

Platform deep dives

Context on both ends of the pair

FranConnect logo

FranConnect

Source

Strengths

  • Purpose-built for the entire franchise lifecycle from development through operations
  • Multi-location command center with real-time KPI dashboards across all units
  • REST API available for several modules with documented endpoints and OAuth authentication
  • Automated lead capture and drip campaign management with responsive support team
  • Performance benchmarking data showing 2.1x growth advantage for FranConnect customers

Weaknesses

  • Enterprise pricing without free trial or published tiers creates procurement friction
  • Navigation complexity — steep learning curve reported by new users on G2 reviews
  • Platform can experience performance slowdowns during peak usage hours
  • Switching costs are high due to franchise-specific data model tightly coupled to FranConnect conventions
  • Limited public API documentation for all modules — some modules lack documented export endpoints
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 FranConnect and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    FranConnect: Not publicly documented.

  • Data volume sensitivity

    A

    FranConnect exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 10,000 Leads, 2,000 Units, and 500 Franchisee records with a straightforward schema mapping. Migrations with large Royalty Manager histories (2,000+ financial records), complex multi-territory structures, manual CSV exports for modules lacking API access, or Odoo Accounting setup for Royalty records move to eight to twelve weeks because of schema design, module building, and financial reconciliation.

Adjacent paths

Related migrations to explore

Ready when you are

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