CRM migration
Field-level mapping, validation, and rollback between Bitrix24 and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Bitrix24
Source
Odoo CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Bitrix24 and Odoo CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Bitrix24 to Odoo CRM is a cross-platform structural migration that requires resolving fundamental differences in how each platform organises CRM data. Bitrix24 uses a flat entity model where Leads, Deals, Contacts, and Companies are separate objects, while Smart Processes provide a fully custom entity type per customer. Odoo CRM consolidates some of these concepts under a Contact-centric model and uses Pipeline Stages configured per-crm.activity rather than a separate Pipeline entity. Bitrix24's native CSV export omits activity history — emails, calls, comments, and tasks — and we close this gap through batch REST API extraction. Odoo's open-source Community edition requires self-hosting and manual patching; the Enterprise edition ($70/user/mo) provides hosted cloud, automatic updates, and a support channel. We do not migrate Bitrix24 Workflows, Business Process Automation templates, Telephony configs, or Drive files; these require a separate rebuild scope with an Odoo implementation partner or the customer's internal admin.
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 Bitrix24 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.
Bitrix24
Company
Odoo CRM
Contact (company type)
1:1Bitrix24 Companies map to Odoo Contacts with the is_company flag set to True. The legal name, address fields, phone, email, and requisites from Bitrix24 become the corresponding fields on the Odoo res.partner record. We resolve the Odoo partner ID before importing any child Contact records that link to this Company via the CONTACT_COMPANY multi-link. Bitrix24 Company Industry and Type map to Odoo custom fields or tags depending on whether the customer uses the Enterprise tags module.
Bitrix24
Contact
Odoo CRM
Contact (individual)
1:1Bitrix24 Contacts map to Odoo res.partner records with is_company set to False. The parent_id field is resolved to the previously imported Company record by name or domain match. Bitrix24 custom fields on Contact (crm.contact.userfield.list) are read at scoping time and mapped to Odoo custom res.partner.fields. Multi-select fields from Bitrix24 map to Odoo tags or many2many fields depending on the field cardinality.
Bitrix24
Deal
Odoo CRM
Opportunity (crm.lead)
1:1Bitrix24 Deals map to Odoo crm.lead records with type='opportunity'. The deal stage maps to an Odoo CRM Stage id that we pre-create by name-match against the destination pipeline. The responsible Bitrix24 user maps to the Odoo user_id by email lookup. Closed-Won and Closed-Lost outcomes from Bitrix24 become Odoo Stage values. Deal amount and currency migrate to Odoo's expected_revenue and currency_id fields.
Bitrix24
Lead
Odoo CRM
Lead (crm.lead type=lead)
1:1Bitrix24 Leads map to Odoo crm.lead records with type='lead'. Lead status, source, and responsible user are preserved as custom fields or standard fields on the Odoo Lead. The Lead-to-Contact conversion that Bitrix24 handles natively is handled in Odoo through the crm.lead / convert wizard after migration: we preserve the lead's conversion state in a custom field so the Odoo admin can complete the conversion manually post-import if needed.
Bitrix24
Pipeline
Odoo CRM
CRM Stage Configuration
lossyBitrix24 Pipelines are read via crm.pipeline.list and crm.stage.list. Each Bitrix24 Pipeline becomes a named CRM Stage sequence in Odoo under the CRM app's Pipeline configuration. Stage sort order and colour attributes migrate to Odoo's sequence and legendcolour fields. We configure stage probabilities to match Bitrix24 percentages where available.
Bitrix24
Product (Catalog)
Odoo CRM
Product Template
1:1Bitrix24 Products from the catalog map to Odoo product.template records with Standard Pricing. SKU, product name, description, and list price migrate directly. We flag any inactive Bitrix24 products for Odoo admin review before import because Odoo does not have a soft-inactive product concept natively.
Bitrix24
Smart Process
Odoo CRM
Custom Fields on res.partner or crm.lead
lossyBitrix24 Smart Processes are customer-defined CRM entities stored under crm.item.{entity_code}. Each Smart Process creates a unique REST namespace with its own field schema. We read every Smart Process entity definition at scoping time, extract all custom fields, and pre-create matching Odoo custom fields on the appropriate standard object (Contact, Company, or Opportunity) or as a separate crm.lead.tags entry for simple enumerations. Complex Smart Processes with multi-level hierarchies require a custom mapping document for the Odoo implementation partner to build a dedicated Odoo module.
Bitrix24
Estimate
Odoo CRM
Sale Order (Quotation)
1:1Bitrix24 Estimates map to Odoo sale.order records in draft state. Line items are preserved with product references resolved to the imported product.template IDs. The linked Bitrix24 Deal becomes the Odoo crm_id on the Sale Order. We import Estimates in draft state to allow Odoo admin to review and confirm after migration rather than converting to confirmed Sale Orders that could trigger inventory or accounting actions.
Bitrix24
Task
Odoo CRM
Project Task (if Project installed) or CRM Activity
1:manyBitrix24 Tasks exist in two contexts: CRM-linked Tasks and the standalone Tasks module. CRM-linked Tasks migrate to Odoo crm.lead activities (log records). Standalone Tasks with subtasks and checklists migrate to project.task if the Odoo Project app is installed; otherwise they become CRM activities with a note about the reduced context. The 100-task limit on Bitrix24 free plan is verified at scoping time, and we flag any account that has triggered or is near the limit before migration begins.
Bitrix24
Activity: Email, Call, Meeting, Note
Odoo CRM
CRM Log Activity
1:1Bitrix24 does not include activities in CSV export. We extract email, call, meeting, and note records via batch REST API calls (crm.activity.items.list with 50-record pagination) to close this gap. Each activity type is mapped: emails become CRM Log notes with subtype email; calls become activities with subtype call and duration preserved; meetings become calendar events; notes become CRM Log records. The parent record (Contact, Company, or Deal) is resolved by name or email match before inserting. API rate limits on Bitrix24 Standard (50 burst) mean large activity histories require extended extraction windows.
Bitrix24
Drive (File attachments)
Odoo CRM
Not migrated
1:1Bitrix24 Drive files attached to CRM entities are stored in Bitrix24 document storage. There is no bulk file export API; files must be downloaded individually via the document API. We do not include Drive files in the standard migration scope. We provide a written inventory of all CRM-linked documents with their Bitrix24 URLs so the customer's admin can download them manually or via a separate file migration engagement after the CRM data is in Odoo.
Bitrix24
Responsible User (Owner)
Odoo CRM
User
1:1Bitrix24 responsible users on Deals, Contacts, Companies, and Leads are resolved by email match against Odoo res.users. We extract every distinct owner referenced across CRM records at scoping time. Any owner without a matching Odoo user is held in a reconciliation queue; the Odoo admin provisions missing users before the import phase resumes. Inactive Bitrix24 users are mapped to inactive Odoo users to preserve the assignment audit trail.
| Bitrix24 | Odoo CRM | Compatibility | |
|---|---|---|---|
| Company | Contact (company type)1:1 | Fully supported | |
| Contact | Contact (individual)1:1 | Fully supported | |
| Deal | Opportunity (crm.lead)1:1 | Fully supported | |
| Lead | Lead (crm.lead type=lead)1:1 | Fully supported | |
| Pipeline | CRM Stage Configurationlossy | Fully supported | |
| Product (Catalog) | Product Template1:1 | Fully supported | |
| Smart Process | Custom Fields on res.partner or crm.leadlossy | Fully supported | |
| Estimate | Sale Order (Quotation)1:1 | Fully supported | |
| Task | Project Task (if Project installed) or CRM Activity1:many | Fully supported | |
| Activity: Email, Call, Meeting, Note | CRM Log Activity1:1 | Fully supported | |
| Drive (File attachments) | Not migrated1:1 | Fully supported | |
| Responsible User (Owner) | User1: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.
Bitrix24 gotchas
Free plan 50-day inactivity auto-deletion
CSV export omits activities, comments, and emails
100-task limit on free plan
Import dependency order (Contacts/Companies before Deals)
Instagram integration restricted by follower count
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
Discovery and source audit
We audit the Bitrix24 source portal across plan tier, API rate limit envelope, CRM entity counts (Companies, Contacts, Deals, Leads, Smart Process entities), activity volume per type (emails, calls, meetings, notes), and Drive file count. We also identify all active Smart Process schemas (entity codes, field types, relationships) because each requires a custom mapping design. We extract owner and user lists and check for any account near the 100-task limit on free plans. The discovery output is a written migration scope document with record counts per entity, a Smart Process inventory, and an Odoo edition recommendation (Community vs Enterprise).
Destination schema design and Odoo edition setup
We design the Odoo CRM schema before any data moves. This includes configuring CRM Stages to match Bitrix24 pipeline stages by name and probability, creating custom fields on res.partner and crm.lead to receive Bitrix24 custom field data, pre-creating Smart Process translation maps for simple enumerations, and documenting complex Smart Processes that require a custom Odoo module. If Odoo Enterprise is chosen, we configure the CRM app in the Odoo cloud instance. If Community is chosen, we document the server, database, and SSL requirements and hand off infrastructure setup to the customer's IT team or hosting provider before the data migration phase begins.
Sandbox migration and reconciliation
We run a full migration into an Odoo test database using production-like data volume. The customer's CRM lead or Odoo admin reconciles record counts across all entity types, spot-checks 25-50 records against the Bitrix24 source for field-level accuracy, and reviews the Smart Process mapping before signing off. Activity history reconciliation is particularly important here because it is the most likely source of partial data due to API pagination limits. Any mapping corrections, custom field additions, or stage configuration adjustments happen in this phase, not in production.
Owner reconciliation and user provisioning
We extract every distinct Bitrix24 user referenced as a responsible user on any CRM record. Each user is matched by email to an existing Odoo res.users record. Users without a matching Odoo account are placed in a reconciliation queue. The Odoo admin provisions any missing users (active or inactive depending on whether the original Bitrix24 user is still with the company) before record import resumes. Because Odoo uses user_id as a required field on many standard CRM objects, this step is a hard gate: migration cannot proceed past Deal import without a complete owner resolution map.
Production migration in dependency order
We run the production migration in strict dependency order: Companies (as parent Contacts), individual Contacts (with parent_id resolved), Leads, Deals (with contact_id and company_id resolved), Products (to support Estimate line items), Estimates (in draft state), Activity history (emails, calls, meetings, notes via batch API), and Smart Process data (mapped to custom fields or deferred to a custom module). Each phase emits a row-count reconciliation report before the next phase begins. Bitrix24 API rate limits are respected with exponential backoff and batch chunking to avoid burst rejections on Standard-tier accounts.
Cutover, delta sync, and automation handoff
We freeze Bitrix24 write access during the cutover window, run a final delta migration of any records created or modified during the migration window, then set Odoo CRM as the system of record. We deliver a written inventory of Bitrix24 Workflows, Business Process Automation templates, and Telephony configs that require rebuild in Odoo, with Odoo Workflow Action recommendations for each. Drive file URLs are handed off in a documented list for the customer to download manually. We support a one-week hypercare window for reconciliation issues raised by the sales team. We do not rebuild Bitrix24 automations as Odoo server actions inside the migration scope; that is a separate engagement with an Odoo implementation partner.
Platform deep dives
Bitrix24
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 Bitrix24 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
Bitrix24: Standard plans: 50 burst requests at 2 req/sec; Enterprise: 250 burst requests at 5 req/sec. Limits are shared across all applications on the same Bitrix24 account..
Data volume sensitivity
Bitrix24 exposes a bulk API — large-volume migrations stream efficiently.
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 Bitrix24 to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Bitrix24 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 Bitrix24
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.