CRM migration
Field-level mapping, validation, and rollback between Bluetrait and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Bluetrait
Source
Odoo CRM
Destination
Compatibility
12 of 14
objects map 1:1 between Bluetrait and Odoo CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Bluetrait to Odoo CRM is a platform migration from an Australian MSP-centric helpdesk and company management tool into a modular open-source ERP with a native CRM layer. Bluetrait organizes work around Tickets, Companies, Clients, Timesheets, Projects, and Billing in a single tiered platform; Odoo distributes these objects across CRM, Helpdesk, Project, Timesheet, and Accounting modules that the customer activates independently. We map Bluetrait's Companies and Clients into Odoo Contacts and Companies, route ticket histories to Odoo Helpdesk Tickets, map timesheets to Odoo Timesheets with optional project linkage, and split Bluetrait billing records across Odoo Invoices, Sale Orders, and Purchase Orders. A critical scoping constraint: Bluetrait's REST API requires a Standard plan or above. Free-tier customers migrate via CSV, which bypasses relationship fields that require API traversal. We flag custom fields, recurring billing rules, and article-to-ticket associations as migration-critical because they carry relationships that do not export cleanly and require manual work post-migration.
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 Bluetrait 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.
Bluetrait
Customer / Client
Odoo CRM
Lead, Contact, and Company
1:manyBluetrait's Customers and Clients map across three Odoo objects. Companies map to Odoo CRM Company (res.partner with type=company). Active clients with an established relationship map to Odoo Contact (res.partner with type=contact) attached to the Company. Prospects or unqualified leads without a company attachment map to Odoo CRM Lead. We apply a lifecycle stage split during scoping based on Bluetrait's CRM status values and preserve the original customer type and status in custom fields on the Odoo Contact for audit. Company domain names from Bluetrait populate the Website field on the Odoo Company record and serve as the dedupe key.
Bluetrait
Company
Odoo CRM
Company
1:1Bluetrait Companies map directly to Odoo CRM Company (res.partner with partner_type=company). Company address, phone, email, and custom fields migrate as typed Odoo partner fields. The Bluetrait company-client linking property migrates as a many2many field on the Odoo Company record, allowing the customer's admin to view associated contacts. Company-level custom fields are pre-created in Odoo before migration to avoid schema errors during data load.
Bluetrait
Ticket
Odoo CRM
Helpdesk Ticket
1:1Bluetrait Tickets map to Odoo Helpdesk Ticket (helpdesk.ticket) when the Helpdesk app is active. Ticket status, priority, due date, assignee, internal notes, and tags migrate directly. Custom Bluetrait ticket fields map to custom fields on the helpdesk.ticket model. Ticket conversations (comments and internal notes) migrate as Odoo ticket messages using mail.message. The link between tickets and associated Bluetrait Companies and Clients resolves to the Odoo Company and Contact records created in earlier phases. If the customer does not activate the Helpdesk app, tickets map to CRM Lead as a fallback with the ticket ID preserved in a custom field.
Bluetrait
Ticket (MSP-specific)
Odoo CRM
Lead or Project Task
lossyBluetrait tickets linked to MSP agents (endpoints) do not have a direct Odoo equivalent. Agent-level ticket history migrates as CRM Lead records with the MSP endpoint name preserved in a custom field endpoint_name__c. If the customer activates the Odoo Project app for MSP task tracking, these records can be re-linked manually post-migration using our endpoint inventory document. Watchdog restart logs and alert configurations are not migratable and are documented separately for the customer's IT team.
Bluetrait
Timesheet
Odoo CRM
Timesheet Entry
1:1Bluetrait Timesheet entries (date, hours, user, task/project link, and timesheet type) map to Odoo Timesheet entries (account.analytic.line). The employee record in Odoo is resolved by matching the Bluetrait user email to an Odoo User, and the analytic account links to the project if the Project app is active. Bluetrait's timesheet type is preserved as a custom tag on the Odoo timesheet entry. If the customer uses Bluetrait's auto-billing-from-timesheet feature, the line item descriptions carry the timesheet type; we document these patterns for manual rebuild in Odoo Accounting.
Bluetrait
Project
Odoo CRM
Project
1:1Bluetrait Projects (with project names, budgets, and task counts) map to Odoo Project (project.project). Project budgets migrate as custom fields on the Odoo Project record. Custom project statuses and budget thresholds map as custom selection fields. Tasks within the project migrate as Odoo Project Tasks (project.task) with task name, description, assigned user, and deadline preserved. Task counts from Bluetrait are reconciled against the task records created in Odoo as a post-import validation step.
Bluetrait
Invoice
Odoo CRM
Customer Invoice
1:1Bluetrait invoices (open and historical, including line items, taxes, and payment status) map to Odoo Account Invoice (account.move with move_type=out_invoice). Invoice status (paid, open, cancelled) migrates as the Odoo payment_state field. Line items map to invoice lines with product reference, quantity, unit price, and tax account preserved. Recurring billing automation does not export and is documented separately for Odoo Accounting reconfiguration. Historical invoices are migrated as posted records if paid or as open records if unpaid.
Bluetrait
Quote
Odoo CRM
Sale Order
1:1Bluetrait quotes map to Odoo Sale Order (sale.order). Quote status (draft, sent, won, lost) maps to Odoo state (draft, sent, sale, cancel). Line items on the quote map to sale.order.line with product, quantity, and price preserved. If Bluetrait quotes have expiry dates, these migrate as validity dates on the Odoo Sale Order. Notes and terms from the Bluetrait quote migrate as order-level internal notes on the Odoo Sale Order.
Bluetrait
Purchase Order
Odoo CRM
Purchase Order
1:1Bluetrait purchase orders map to Odoo Purchase Order (purchase.order). PO status (draft, confirmed, received, cancelled) maps to Odoo state (draft, purchase, done, cancel). Line items, vendor references, and expected delivery dates migrate as purchase.order.line records. The vendor company from Bluetrait maps to an Odoo Vendor (res.partner with supplier_rank > 0) created or matched during the Company phase.
Bluetrait
Product
Odoo CRM
Product
1:1Bluetrait Products (with quantities, recurring billing frequencies, and pricing) map to Odoo Product (product.product for variants, product.template for the product template). ProductCode from Bluetrait maps to product.default_code. Recurring billing frequency is preserved as a custom field on the Odoo Product; the customer's admin configures subscription cadence in Odoo Subscription or Invoicing post-migration. Product-to-billing associations migrate as custom line-item metadata on the corresponding invoice or sale order line.
Bluetrait
User
Odoo CRM
User
1:1Bluetrait Users (username, role, permissions group, and Two-Factor Authentication status) map to Odoo User records (res.users). We match by email address. 2FA status is noted but cannot be migrated for security reasons; the customer resets 2FA for migrated users as a post-migration step. If a Bluetrait User has no email, a placeholder email is generated and flagged in the reconciliation report for the admin to update. Active/inactive status from Bluetrait maps to the Odoo User active flag.
Bluetrait
Agent (MSP)
Odoo CRM
Configuration inventory
1:1Bluetrait MSP Agents represent managed endpoints with watchdog status, installed software, and alert configurations. Odoo has no native RMM equivalent. We migrate agent endpoint names, associated client companies, and basic endpoint metadata as CRM Lead records with custom fields (endpoint_name__c, watchdog_status__c, installed_software__c). Health monitoring and alert configuration rules are documented in an MSP endpoint inventory report for the customer to re-implement in their chosen RMM tool or Odoo.sh infrastructure monitoring. This is a configuration-only mapping; no live monitoring data transfers.
Bluetrait
Article
Odoo CRM
Knowledge Base Article
1:1Bluetrait knowledge base articles and their categories can be exported and map to Odoo Knowledge Base (knowledge.article). Article title, body content, and category structure migrate. Article-to-ticket linking is not preserved automatically through either the Bluetrait export or the Odoo Knowledge import API. We generate a cross-reference document mapping each Bluetrait article ID to the ticket IDs it references so the customer's admin can re-link articles manually in Odoo Knowledge post-migration. This cross-reference is delivered as a spreadsheet alongside the migration package.
Bluetrait
Password Entry
Odoo CRM
N/A (not migratable)
1:1Bluetrait Passwords module entries are not accessible via API or CSV export for security reasons. We cannot migrate credentials directly. We generate a full inventory of password entries including folder name, entry name, associated system, and any notes visible to the migration user. This inventory is delivered as a reference document for the customer to manually recreate entries in their chosen password manager (Odoo has no native password module; Bitwarden, 1Password, or a similar tool is recommended). This step is not a migration blocker but requires post-migration customer action.
| Bluetrait | Odoo CRM | Compatibility | |
|---|---|---|---|
| Customer / Client | Lead, Contact, and Company1:many | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Ticket | Helpdesk Ticket1:1 | Fully supported | |
| Ticket (MSP-specific) | Lead or Project Tasklossy | Fully supported | |
| Timesheet | Timesheet Entry1:1 | Fully supported | |
| Project | Project1:1 | Fully supported | |
| Invoice | Customer Invoice1:1 | Fully supported | |
| Quote | Sale Order1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Agent (MSP) | Configuration inventory1:1 | Fully supported | |
| Article | Knowledge Base Article1:1 | Fully supported | |
| Password Entry | N/A (not migratable)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.
Bluetrait gotchas
API access requires Standard plan or higher
Recurring billing automation does not export
Password module stores credentials that cannot be extracted
Xero module must be disabled before bulk export
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 plan verification
We audit the source Bluetrait account across tier (Free/Standard/Professional/Enterprise), API availability, and data volumes for all objects. We identify which objects are accessible via API versus CSV, flag custom fields, enumerate recurring billing configurations, and inventory the password vault structure. We pair this with an Odoo edition and app activation checklist: CRM app (for Leads, Contacts, Companies), Helpdesk app (for ticket migration), Project app (for project and task migration), Timesheet app (for timesheet migration), and Accounting app (for invoice, quote, and PO migration). The discovery output is a written migration scope, an Odoo app activation plan, and a recommendation on whether the customer needs a Bluetrait Standard plan upgrade for API access.
Schema design and custom field pre-creation
We design the destination Odoo schema before any data is loaded. This includes activating the required Odoo apps (CRM, Helpdesk, Project, Timesheet, Accounting), pre-creating custom fields on each target model (helpdesk.ticket, project.task, account.analytic.line, account.move, sale.order, etc.) to match Bluetrait custom fields, and configuring picklist values for status and priority fields. We use Odoo's XML-RPC or CSV import to deploy the schema to a staging database first. Ticket-to-project linking rules (which Bluetrait handles implicitly) are documented as Odoo Helpdesk Ticket Type and Project Task configurations that the customer's admin applies in Odoo after migration.
Sandbox migration and reconciliation
We run a full migration into an Odoo staging database using production data volume. The customer reconciles record counts across all objects (Tickets in to Helpdesk Tickets in, Companies in to Companies in, Timesheets in to Timesheet lines in), spot-checks fifteen to twenty records per object for field-level accuracy against the Bluetrait source, and validates that article-to-ticket associations appear in the cross-reference document. Any field mapping corrections, missing custom fields, or picklist value gaps are resolved here before production migration begins. This step is mandatory for all marquee-tier migrations.
Owner and user provisioning
We extract every distinct Bluetrait User referenced on Tickets, Timesheets, Projects, and Billing records and match by email against the Odoo destination User table. Any Bluetrait User without a matching Odoo User goes to a reconciliation queue. The customer's Odoo admin provisions missing Users in Odoo before record import resumes. 2FA reset instructions are delivered alongside the user provisioning guide. Password module entries cannot be provisioned automatically; the customer follows the password inventory instructions delivered in step one.
Production migration in dependency order
We run production migration in record-dependency order: Companies first (as res.partner records with type=company), then Contacts and Leads (with Company resolved), Products and Pricelist entries, Projects and Tasks, Timesheet entries (with project reference resolved), Invoices and Sale Orders (with company and product references resolved), Purchase Orders, Helpdesk Tickets (with Company and Contact resolved and ticket messages imported as mail.message), and finally custom object records if present. Each phase emits a row-count reconciliation report before the next phase begins. The Helpdesk app must be activated before ticket import; the Timesheet app must be activated before timesheet import; the Accounting app must be activated before invoice import.
Cutover, validation, and automation rebuild handoff
We freeze Bluetrait writes during cutover, run a final delta migration of any records modified during the migration window, and enable Odoo as the system of record. We deliver the recurring billing automation inventory spreadsheet to the customer's admin team for Odoo Accounting reconfiguration, the article-to-ticket cross-reference for Odoo Knowledge re-linking, and the password vault inventory for manual recreation in the customer's chosen password manager. We support a five-business-day hypercare window where we resolve reconciliation issues raised by the customer's team. We do not rebuild Bluetrait automations as Odoo server actions inside the migration scope; that is a separate engagement.
Platform deep dives
Bluetrait
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Bluetrait and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Bluetrait and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Bluetrait 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
Bluetrait: Not publicly documented.
Data volume sensitivity
Bluetrait 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 Bluetrait to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Bluetrait 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 Bluetrait
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.