CRM migration
Field-level mapping, validation, and rollback between Fireberry and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Fireberry
Source
Odoo CRM
Destination
Compatibility
8 of 14
objects map 1:1 between Fireberry and Odoo CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Fireberry to Odoo CRM is a migration between two modular platforms with fundamentally different data models. Fireberry organizes CRM data around user-defined Components — custom objects, custom fields, and workflow blocks that require explicit schema discovery before export to avoid silently dropping unexposed structures. Odoo CRM uses an ERP-adjacent data model where CRM data sits alongside Accounting, Inventory, and Project apps; this means Deals (Opportunities) have a natural Many2One relationship to Partners (Contacts/Companies), and Odoo's Activity model consolidates calls, meetings, and tasks under a single Thread model. We enumerate the live Fireberry schema during scoping, map Components to Odoo custom fields and custom models, and sequence the Odoo import to satisfy foreign-key dependencies before any child records are loaded. Workflow rules and automation blocks do not migrate as reusable definitions; we deliver a structured inventory of every active rule for the customer's Odoo administrator to rebuild in Odoo Studio or via server actions.
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 Fireberry 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.
Fireberry
Contact
Odoo CRM
res.partner (contact type)
1:1Fireberry Contact records map to Odoo res.partner with partner_type = 'contact'. Name, email, phone, address, and owner assignment migrate directly. Fireberry's lifecycle stage maps to a custom Char field fb_lifecycle_stage__c on res.partner for audit continuity. We import res.partner before any Deals to satisfy the Many2One partner_id foreign key on crm.lead (Odoo's opportunity model).
Fireberry
Company / Account
Odoo CRM
res.partner (company type)
1:1Fireberry Company records map to Odoo res.partner with partner_type = 'company'. Industry, company size, and address fields migrate to the corresponding Odoo res.partner fields. The Company-to-Contact parent relationship maps to res.partner's child_ids (child partners). Company domain becomes the Website field for deduplication during import.
Fireberry
Deal / Opportunity
Odoo CRM
crm.lead
1:1Fireberry Deals map to Odoo crm.lead in opportunity mode. Deal amount maps to Odoo's Planned Revenue field. Fireberry's pipeline assignment maps to a crm.team scoped stage within Odoo, and dealstage maps to crm.lead stage_id with stage probability migrated from Fireberry. The Contact and Company links on the Deal become crm.lead partner_id and partner_id.company_held references respectively.
Fireberry
Pipeline and Pipeline Stages
Odoo CRM
crm.team + crm.stage
lossyFireberry pipelines become Odoo crm.team records with their own stage sequences. Each Fireberry pipeline stage maps to an Odoo crm.stage entry with Is Won and Stage Type flags configured. We reconstruct stage ordering and probability percentages per Odoo's stage model. Stages with zero records in Fireberry are flagged for the customer to decide whether to create them in Odoo or drop them.
Fireberry
Activity (calls, meetings, tasks, notes)
Odoo CRM
mail.activity + mail.message
1:1Fireberry Activities map to Odoo mail.activity for planned actions (calls, meetings, tasks) and mail.message for historical records (logged calls, completed meetings). Activity type from Fireberry determines Odoo activity_type_id. Owner assignment resolves to Odoo res.users by email match. Timestamps and duration fields migrate to mail.activity date_deadline and Odoo's activity type duration fields.
Fireberry
Custom Object (Fireberry Component)
Odoo CRM
ir.model (custom model)
1:1Fireberry Custom Objects (user-defined Components that function as standalone record types) map to Odoo IrModel custom models. We pre-create the Odoo custom model schema — including all custom field definitions (IrModelField with ttype, relation, and required flags — before any data import. Fireberry Component names become Odoo model names with a custom_ prefix, and field names are mapped to Odoo's snake_case naming convention.
Fireberry
Custom Field (on standard objects)
Odoo CRM
ir.model.field (x_fireberry_* custom fields)
lossyFireberry custom fields on standard objects (Contact, Company, Deal) map to Odoo custom fields on the equivalent model. Text fields map to Odoo char or text; numeric fields map to float or integer; date fields map to date or datetime; picklist fields map to Odoo selection fields. We create the Odoo field definitions in the target environment before importing data. Any formula or computed fields from Fireberry are noted as requiring Odoo computed field replacement.
Fireberry
Tag / Label
Odoo CRM
crm.tag or res.partner.category
lossyFireberry tags on Contacts and Companies migrate to Odoo crm.tag records for Deals and res.partner.category for Contacts and Companies. Tags are exported as flat lists per record and imported as tag_ids many2many relationships in Odoo. The customer chooses at scoping whether tags should be unified across object types or kept separate per Odoo's native tag scoping.
Fireberry
Attachment (file reference)
Odoo CRM
ir.attachment
1:1Fireberry file attachments are included as download references in the export. We preserve attachment filenames, MIME types, and linked record references. Attachments hosted internally by Fireberry require re-upload; we document every attachment reference and flag any that are Fireberry-internal-hosted so the customer can re-upload them post-migration. Odoo ir.attachment records are created with the correct res_model and res_id references to the parent migrated record.
Fireberry
User / Owner
Odoo CRM
res.users
1:1Fireberry Owner records (name, email, role, team) map to Odoo res.users. We resolve Fireberry owners by email match against the destination Odoo instance. Any Fireberry Owner without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision the User before record import proceeds, because OwnerId references are required on crm.lead and res.partner.
Fireberry
Product
Odoo CRM
product.template + product.product
1:1If Fireberry contains product records, they map to Odoo product.template (and product.product variants). Product name, SKU, unit of measure, and list price migrate directly. Odoo's product variant model is created only if Fireberry products have variant attributes; otherwise product.template alone suffices.
Fireberry
Workflow / Automation Rule
Odoo CRM
ir.actions.server or base.automation (rebuild required)
lossyFireberry workflow rules (trigger-action pairs stored as configuration) are captured as structured text records during scoping but cannot be exported as reusable definitions. We deliver a written inventory of every active Fireberry workflow with its trigger, conditions, actions, and recommended Odoo Server Action or Automated Action equivalent for the customer's admin to rebuild in Odoo Studio post-migration. This is not a code migration; it is a documented handoff.
Fireberry
Report / Dashboard
Odoo CRM
N/A (rebuild required)
lossyFireberry reporting views are configuration-dependent and not exportable as reusable report definitions. Underlying data — Deals, Activities, Contacts — migrates so Odoo pivot, graph, and spreadsheet views can be rebuilt. We provide a written report inventory listing each Fireberry report's metrics, filters, and chart type for the customer to recreate in Odoo Reporting or via Odoo Spreadsheet.
Fireberry
Billing / Subscription data
Odoo CRM
account.move (invoice history)
many:1If Fireberry contains historical invoice or subscription records, these map to Odoo account.move entries. Fireberry invoice data (line items, amounts, dates, partner references) merges into Odoo accounting records, but only if the Odoo Accounting app is active in the destination instance. If the customer is using only the CRM module without Accounting, we flag invoice data as requiring a separate accounting migration scope.
| Fireberry | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner (contact type)1:1 | Fully supported | |
| Company / Account | res.partner (company type)1:1 | Fully supported | |
| Deal / Opportunity | crm.lead1:1 | Fully supported | |
| Pipeline and Pipeline Stages | crm.team + crm.stagelossy | Fully supported | |
| Activity (calls, meetings, tasks, notes) | mail.activity + mail.message1:1 | Fully supported | |
| Custom Object (Fireberry Component) | ir.model (custom model)1:1 | Fully supported | |
| Custom Field (on standard objects) | ir.model.field (x_fireberry_* custom fields)lossy | Fully supported | |
| Tag / Label | crm.tag or res.partner.categorylossy | Fully supported | |
| Attachment (file reference) | ir.attachment1:1 | Fully supported | |
| User / Owner | res.users1:1 | Fully supported | |
| Product | product.template + product.product1:1 | Fully supported | |
| Workflow / Automation Rule | ir.actions.server or base.automation (rebuild required)lossy | Fully supported | |
| Report / Dashboard | N/A (rebuild required)lossy | Fully supported | |
| Billing / Subscription data | account.move (invoice history)many: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.
Fireberry gotchas
Free plan caps at 3 Projects and 100+ Components
Custom Objects and Components require explicit schema discovery
Workflow automations do not export as reusable definitions
Billing cycle determines the migration window
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
Schema discovery and Odoo environment audit
We enumerate the live Fireberry schema via API access: every standard object (Contact, Company, Deal, Pipeline, Activity), every active Component (custom object and field definitions), and every active workflow rule. We pair this with an Odoo environment audit: which apps are installed (CRM only vs CRM + Accounting, Inventory, Project), which Odoo edition is in use, and whether multi-company mode is active. The discovery output is a written migration manifest listing every object to migrate, every field to map, every custom Odoo model to pre-create, and every workflow to document for rebuild.
Odoo custom model pre-creation and field mapping
Before any data is moved, we create the Odoo custom model schema. This means creating IrModel records for each Fireberry custom Component, creating IrModelField definitions for every custom field (with correct ttype: char, float, selection, many2one, etc.), and creating crm.tag and crm.stage records to match Fireberry pipeline structures. Field mapping from Fireberry field names to Odoo field names is validated in a staging environment before production migration begins. Any Fireberry formula or computed fields are flagged as requiring Odoo computed field replacement.
Sandbox migration and reconciliation
We run a full migration into an Odoo test database (or Sandbox equivalent) using production-like data volumes. The customer's team reconciles record counts (Partners in, Deals in, Activities in), spot-checks 25-50 random records against the Fireberry source, and validates pipeline stage labels, tag assignments, and owner assignments. Schema corrections and mapping adjustments happen in the test environment before any production import is attempted. This step typically takes one to two weeks depending on data volume and correction scope.
Owner and User provisioning
We extract every distinct Fireberry Owner referenced on Contacts, Companies, Deals, and Activities and match by email against the Odoo destination's res.users table. Any Fireberry Owner without a matching Odoo User goes to a provisioning queue. The customer creates the missing Odoo Users (active or inactive depending on whether the original Fireberry user is still employed) before production migration resumes. Owner resolution is a hard prerequisite for proceeding past the Accounts/Companies import phase.
Production migration in dependency order
We run production migration in strict record-dependency order: Companies (res.partner, company type), Contacts (res.partner, contact type), Product templates, Deals (crm.lead with partner_id resolved), Activities (mail.activity for planned, mail.message for historical), Custom Objects (using pre-created IrModel records), Attachments (ir.attachment with res_model and res_id linked), and Tags (crm.tag and res.partner.category). Each phase emits a row-count reconciliation report before the next phase begins. Fireberry writes are frozen during the cutover window.
Cutover, validation, and workflow rebuild handoff
We run a final delta migration of any records modified in Fireberry during the migration window, then enable Odoo as the system of record. We deliver the workflow inventory document listing every active Fireberry automation rule with its trigger, conditions, and actions, mapped to an Odoo Studio Automated Action or server action equivalent. We support a one-week hypercare window for the customer to report reconciliation discrepancies. Workflow rebuilds, report rebuilds, and any Odoo Accounting or Inventory configuration are outside standard migration scope and are handled by the customer's Odoo administrator or a separate Odoo implementation engagement.
Platform deep dives
Fireberry
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 Fireberry 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
Fireberry: Not publicly documented.
Data volume sensitivity
Fireberry 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 Fireberry to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Fireberry 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 Fireberry
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.