CRM migration
Field-level mapping, validation, and rollback between monday CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
monday CRM
Source
Odoo CRM
Destination
Compatibility
6 of 12
objects map 1:1 between monday CRM and Odoo CRM.
Complexity
BStandard
Timeline
2-3 weeks
Try the reverse
Overview
Moving from monday CRM to Odoo CRM is a structural remapping, not a simple record copy. monday CRM stores contacts as People entities and Deals as CRM-typed Items inside Pipeline containers — there is no relational hierarchy between contacts and companies at the data layer. Odoo CRM uses a full relational model: Contacts belong to Companies (Accounts), Deals attach as Opportunities to the Contact and Account, and Leads feed into the CRM pipeline via a separate lead queue. We resolve the monday board structure (Boards, Items, Subitems, People) into Odoo's Contact, Account, Lead, and Opportunity objects during scoping, design the Account-to-Contact linkage rules, and preserve pipeline stage names and deal values against the correct Opportunity record. We do not migrate monday automations (Sentence Builder or the new workflow system) or board views; we deliver a written inventory of automation rules for Odoo automated action rebuild and document any non-table board configurations that require manual recreation in Odoo Studio.
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.
Source platform
monday CRM platform overview
Scorecard, SWOT, gotchas, and pricing for monday CRM.
Destination platform
Odoo CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Odoo CRM.
Data migration guide
The complete Odoo CRM migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
monday.com CRM migration guide
Understand the data you're exporting from monday CRM before mapping it.
Destination checklist
Odoo CRM migration checklist
Pre- and post-cutover tasks for moving onto Odoo CRM.
Source checklist
monday.com CRM migration checklist
Exit checklist for unwinding your monday CRM setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a monday CRM 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.
monday CRM
People (Contacts)
Odoo CRM
Contact
1:1monday CRM People records map to Odoo CRM Contact records. The People entity (name, email, phone, CRM-specific properties) is monday's closest equivalent to a Contact object. We map email as the dedupe key, preserve the original monday Person ID in a custom field monday_person_id__c on the Contact for reconciliation, and attach People records to the parent Odoo Account resolved from the monday CRM board's company column if one exists. If monday stores companies as separate board Items rather than through the People entity, we merge those Items into the Account object first.
monday CRM
Company board Items
Odoo CRM
Account
many:1monday boards often represent companies as Item rows with company name, address, and industry in custom columns. These board Items map to Odoo CRM Account records. The Account Name becomes the Item's title, address fields map from monday text or location columns, and Industry maps to Odoo's industry_id picklist. Multiple monday board Items representing the same company (identified by matching domain or name) are merged into a single Account during transformation before Odoo import.
monday CRM
Deals (CRM Items)
Odoo CRM
Opportunity
1:1monday CRM Deals are CRM-typed Items attached to a Pipeline. Each Deal has standard columns (deal value, close date, stage) plus optional custom columns. We map the deal value to Odoo Opportunity expected_revenue, close date to date_deadline, and the Pipeline stage to Odoo's crm_stage_id via a stage mapping table built during scoping. The Deal's People column (owner contact) links to the Odoo Contact record via partner_id. Deal custom columns map to Odoo custom fields on Opportunity created in Odoo Studio before migration.
monday CRM
Pipeline
Odoo CRM
Stage configuration
lossymonday Pipelines are the grouping structure for Deals, each containing ordered Stages with optional probability percentages. We preserve pipeline definitions and stage order as Odoo CRM Stage records. Probability percentages migrate from monday stage settings to Odoo's stage_probability float field. If the customer has multiple monday Pipelines, each becomes a separate Odoo Sales Team (crm.team) with its own stage sequence.
monday CRM
Board
Odoo CRM
crm.team or Sales Team
lossymonday CRM Boards that are not Pipeline boards (used for account management, activity tracking, or secondary deal views) map to Odoo CRM Sales Teams. Each Sales Team gets its own team member assignments based on the monday board's assignees. Board-level custom columns that track non-pipeline data (e.g., account health, onboarding status) become custom fields on the related Account or Contact object in Odoo.
monday CRM
Subitems
Odoo CRM
Opportunity Task or Meeting
1:manymonday Subitems are nested rows inside a Deal Item, often used for line items, activities, or sub-tasks. Subitems do not appear in monday's bulk account export or Excel export — we enumerate each subitem individually via the monday API using the parent Item's ID. In Odoo, subitems representing activities (calls, meetings, tasks) map to Odoo's crm.activity plan records or mail.activity records linked to the parent Opportunity. Subitems representing line items map to Odoo OpportunityLine records if the Odoo Sale or Inventory app is also deployed.
monday CRM
Custom Columns
Odoo CRM
Custom Fields on Contact, Account, Opportunity
lossymonday board custom columns (text, numbers, dates, dropdowns, checkboxes, formulas, dependencies) require Odoo Studio configuration before migration. We pre-create equivalent custom fields in Odoo with matching field types and map column values during the transform phase. Formula columns and Dependency columns in monday have no direct Odoo equivalent and are flagged as manual-rebuild items. Column types that rely on monday's runtime (mirror columns, item link columns) are documented and excluded from automated migration.
monday CRM
Updates and Activity Log
Odoo CRM
mail.message or Note
1:1monday Updates are per-item comment threads. We preserve update text and timestamps as Odoo mail.message records linked to the parent Contact, Account, or Opportunity via the mail.thread model. The author of each update is resolved to an Odoo User by email. Updates do not migrate attachments automatically; attachment URLs are retrieved via the monday API and reattached to the Odoo record if the Odoo instance has document storage configured.
monday CRM
Users / Team Members
Odoo CRM
User
1:1monday account Users map to Odoo CRM Salespersons (res.users). We match by email address. Each monday User's name, email, and role (admin, member, viewer) map to the corresponding Odoo User fields. Enterprise multi-level permissions and SAML SSO configurations in monday are not part of the standard export; these are flagged for manual Odoo security configuration (Access Rights groups in Settings > Users > Access Rights).
monday CRM
Files / Attachments
Odoo CRM
ir.attachment
1:1Files uploaded to monday board Items are stored in monday's file storage and referenced via API URL. We retrieve attachment URLs for each Item and re-attach them to the mapped Odoo record (Contact, Account, or Opportunity) using Odoo's ir.attachment model. Attachments are downloaded and re-uploaded rather than linked by URL to avoid broken references if monday storage changes. Large attachment volumes (over 10,000 files) increase migration timeline due to download-reupload overhead.
monday CRM
Dashboards
Odoo CRM
Odoo Studio Reports / Custom Views
lossymonday Dashboards aggregate data across boards into chart and summary widgets. These are live-referencing and cannot be exported as static definitions. We migrate the underlying data (Items, Deals, People) into Odoo so that the same data is available for Odoo reporting. The customer rebuilds key dashboard views using Odoo Studio (graph, kanban, pivot) or installs a reporting app from the Odoo App Store. Board views (Kanban, Calendar, Chart, Map) that differ from the default table view are documented during pre-migration review for manual recreation.
monday CRM
Automations (Sentence Builder and new workflows)
Odoo CRM
Automated Actions (ir.actions.server)
1:1monday automations (Sentence Builder recipes being deprecated, and the new monday workflows system) are workflow logic, not data, and are not migrated. We capture automation rule definitions during pre-migration review and deliver a written inventory with each rule's trigger, conditions, actions, and recommended Odoo automated action equivalent. The customer's Odoo admin or an Odoo implementation partner rebuilds automations post-migration. This is explicitly out of scope for the data migration engagement.
| monday CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| People (Contacts) | Contact1:1 | Fully supported | |
| Company board Items | Accountmany:1 | Fully supported | |
| Deals (CRM Items) | Opportunity1:1 | Mapping required | |
| Pipeline | Stage configurationlossy | Fully supported | |
| Board | crm.team or Sales Teamlossy | Fully supported | |
| Subitems | Opportunity Task or Meeting1:many | Mapping required | |
| Custom Columns | Custom Fields on Contact, Account, Opportunitylossy | Mapping required | |
| Updates and Activity Log | mail.message or Note1:1 | Mapping required | |
| Users / Team Members | User1:1 | Fully supported | |
| Files / Attachments | ir.attachment1:1 | Mapping required | |
| Dashboards | Odoo Studio Reports / Custom Viewslossy | Mapping required | |
| Automations (Sentence Builder and new workflows) | Automated Actions (ir.actions.server)1: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.
monday CRM gotchas
Subitems are not included in bulk exports
Daily API call limits vary sharply by plan
Legacy automations (Sentence Builder) are being deprecated
Excel and account exports only include table views
Enterprise admins can disable non-admin exports
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 API scoping
We audit the monday CRM account across plan tier (Basic/Standard/Pro/Enterprise), People count, Deal count, Pipeline count, subitem volume, board count, custom column definitions, automation rule inventory, and attachment count. We confirm the destination Odoo edition (Online Standard, Online Enterprise, or Community self-hosted), the Odoo version (v15, v16, or v17), and any additional Odoo apps being deployed alongside CRM (Sale, Inventory, Accounting). The discovery output is a written migration scope with record counts per object, API call volume estimate against monday's daily limit, and a Odoo edition recommendation.
monday-to-Odoo object mapping design
We design the destination schema in Odoo before any data extraction. This includes creating Odoo Studio custom fields on Contact, Account, and Opportunity to receive monday custom column data; configuring CRM Stages to match monday Pipeline stages with probability percentages; setting up Sales Teams mapped to monday Pipelines; and defining the Contact-to-Account linkage strategy based on monday's company column or domain-matching logic. For Odoo Online destinations, schema is deployed into the production environment before migration. For Odoo Community, schema is deployed to the local instance.
Data extraction with subitem enumeration and API pacing
We extract monday data in phases: People records first (as the base Contact set), then Company Items (mapped to Accounts), then Deals with pipeline stage values (mapped to Opportunities), then Subitems enumerated per parent Item with API throttling to respect the plan tier's daily call limit. We use monday's GraphQL API for structured queries and retrieve file attachment URLs for each Item. Updates (comments) are enumerated per Item and captured with author email and timestamp. All extractions log API call counts against the daily limit to track progress and schedule remaining work for the next available window on Standard-tier accounts.
Transformation and Contact-Account reconciliation
We transform monday records into Odoo's XML-CSV import format. The critical reconciliation step is linking monday People contacts to monday Company Items to produce Odoo Contact-Account pairs. Where monday stores company association as a free-text column rather than a formal relationship, we match contacts to companies by company name or email domain. Deal values, close dates, and stage assignments map to Opportunity fields. Custom column values transform to Odoo custom field values with type conversion (monday dropdown to Odoo selection, monday checkbox to boolean, monday date to Odoo datetime). Subitems transform to Odoo mail.activity records linked to the parent Opportunity.
Staging migration and reconciliation
We run a full migration into a Odoo staging environment (or the production environment with a test batch of 100 records) to validate mapping accuracy. The customer's CRM admin reconciles record counts (People imported as Contacts, Company Items as Accounts, Deals as Opportunities, Subitems as Activities), spot-checks 25-50 random records against the monday source, and confirms that stage values and deal values landed correctly. Any mapping corrections (wrong field assignments, missing lookups, failed subitem links) are resolved here before the production migration runs. Owner reconciliation (matching monday Users to Odoo Users by email) also completes at this stage.
Production migration and cutover
We freeze monday CRM writes during cutover, run a final delta extraction of any records modified during the migration window, then execute the production migration in dependency order: Accounts first (required for Contact lookup), Contacts (with Account linked), Opportunities (with Contact and Account linked and stage resolved), Activities (subitems as mail.activity records). File attachments are uploaded to Odoo's ir.attachment model in a parallel job. We deliver the automation and board-view inventory document to the customer's Odoo admin for post-migration rebuild. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's sales team. We do not rebuild monday automations as Odoo automated actions inside the standard migration scope.
Platform deep dives
monday CRM
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between monday CRM and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across monday CRM and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between monday CRM and Odoo CRM.
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
monday CRM: Varies by plan — 200/day (Free/Trial), 1,000/day (Basic/Standard), 10,000/day soft limit (Pro), 25,000/day soft limit (Enterprise). Per-minute limits also apply..
Data volume sensitivity
monday CRM 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 monday CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your monday CRM 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 monday CRM
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.