ERP migration
Field-level mapping, validation, and rollback between Herbst Insight ERP and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Herbst Insight ERP
Source
Odoo ERP
Destination
Compatibility
10 of 12
objects map 1:1 between Herbst Insight ERP and Odoo ERP.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Herbst Insight ERP to Odoo ERP is a platform exit and a schema redesign. Herbst Insight ERP runs on vendor-managed SaaS infrastructure with no public API and module-scoped Web Portal exports that do not preserve relational links between records. Odoo is a modular open-source platform where the customer chooses which apps are active and configures the chart of accounts, warehouse structure, and multi-company setup before data loads. We establish data extraction access (direct SQL, partner tooling, or staged CSV per module) during scoping, reconstruct the relational graph using foreign key fields present in Herbst exports, and sequence master data before transactional records so that account codes, customer IDs, and supplier IDs are available as foreign keys at load time. We do not migrate Workflows, automations, or custom Odoo modules as code. Payroll migration is scoped to summarised effective-dated compensation records due to Irish jurisdiction compliance, and binary document storage is not migrated. The Odoo Community edition is free; Odoo Enterprise pricing starts at $24.90 per user per month for the SaaS plan or a one-time perpetual license plus annual support fee for on-premise deployments.
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 Herbst Insight ERP object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Herbst Insight ERP
Customer
Odoo ERP
Res Partner (Customer type)
1:1Herbst Customers export as a single master record containing billing address, shipping address, and contact details. We map directly to Odoo res.partner records where partner_id.partner_type = 'customer'. Credit limits from Herbst become custom fields on res.partner; payment terms map to Odoo's account_payment_term lookup. Any customer with a Herbst default_price_list_id becomes an Odoo pricelist record linked to the partner before import.
Herbst Insight ERP
Supplier (Vendor)
Odoo ERP
Res Partner (Vendor type)
1:1Herbst Suppliers export with address, banking details, and purchasing terms. We map to Odoo res.partner records where partner_id.partner_type = 'supplier'. Herbst vendor hierarchy (parent vendor, sub-vendor) maps to Odoo's parent_id on res.partner. Open Purchase Orders linked to the supplier are reconciled separately using the Purchase Order mapping. Supplier banking details migrate to Odoo's res.partner.bank_ids with appropriate account type flags.
Herbst Insight ERP
Item (Product)
Odoo ERP
Product Template + Product Variant
1:1Herbst Items carry pricing, cost, stock-control flags, and BOM data for manufacturing variants. We map primary SKU to Odoo product_product.default_code as the dedupe key. Herbst item type (stockable, consumable, service) maps to Odoo product_product.type. Variant attributes from Herbst BOMs map to Odoo product_template.attribute_line_ids with corresponding product_product variants created at import time. Cost price from Herbst becomes product_product.standard_price.
Herbst Insight ERP
Chart of Accounts
Odoo ERP
Account Account
1:1Herbst COA exports with account codes, account names, and posting-level flags. We preserve the full account code structure (numeric, alphanumeric) from Herbst as Odoo account_account.code, because code is the Odoo account lookup key used on journal entries. Tax codes from Herbst become Odoo account_tax records linked to the appropriate sales or purchase account. This entity loads first before any journal entries or AP/AR balances can be posted.
Herbst Insight ERP
Open AP (Accounts Payable)
Odoo ERP
Account Move (Vendor Bill)
1:1Open payables migrate as Odoo account_move records with move_type = 'in_invoice' and state = 'draft' (or 'posted' if the balance has been cleared in Herbst). Herbst's AP header carries the supplier reference, invoice date, due date, and total amount; line items carry account code, description, and debit amount. We resolve each Herbst supplier_id to a res.partner vendor record and each Herbst account code to an Odoo account_account.code before loading. Unmatched AP lines are flagged to a reconciliation queue.
Herbst Insight ERP
Open AR (Accounts Receivable)
Odoo ERP
Account Move (Customer Invoice)
1:1Open receivables migrate as Odoo account_move records with move_type = 'out_invoice' and state = 'draft' or 'posted' depending on Herbst payment status. Herbst's AR header carries the customer reference, invoice date, due date, and open balance. We resolve Herbst customer_id to res.partner.customer_rank = 1 and Herbst account codes to Odoo account_account records. Orphaned lines (no matching partner or account) are escalated before load.
Herbst Insight ERP
Sales Order
Odoo ERP
Sale Order
1:1Herbst Sales Orders export with header status, line items, and fulfillment links. Status values from Herbst (Quoted, Confirmed, Despatched, Invoiced, Void) map to Odoo sale_order.state values. Line items carry product_id, quantity, and unit_price referencing the product mapping. Fulfillment references from Herbst become Odoo stock_picking records linked to the sale_order. Voided or partially voided orders are imported as draft records with a status flag for customer review.
Herbst Insight ERP
Purchase Order
Odoo ERP
Purchase Order
1:1Herbst Purchase Orders migrate to Odoo purchase_order with header status mapped to state values. Line items carry product_id, quantity, and purchase_price referencing the Items mapping. Herbst vendor_id resolves to res.partner.supplier_rank = 1. Open PO references attached to a supplier account are preserved as Odoo purchase_order.name for reconciliation against received goods and vendor invoices.
Herbst Insight ERP
Inventory (Stock)
Odoo ERP
Stock Quant + Stock Location
lossyHerbst stock records include warehouse location, batch, and serial number fields that vary by warehouse configuration. We create Odoo stock_location records per Herbst warehouse site, then map Herbst stock_on_hand quantities to Odoo stock_quant records with the resolved location_id and product_id. Multi-warehouse setups in Herbst generate multiple Odoo stock_location parent records. Bin-level data migrates to stock_quant with dedicated lot_id or lot_name references. Validation against Odoo's stock valuation method occurs before final load.
Herbst Insight ERP
Time and Attendance
Odoo ERP
Hr Attendance + Project Timesheet
1:1Herbst time entries and attendance logs export as dated records with employee_id, clock_in, clock_out, and attendance_type fields. We map to Odoo hr_attendance records for clock-in/out events and to hr_timesheet_sheet.sheet_line records for timesheet data linked to project tasks. Integration dependencies on the Herbst Time and Attendance module are flagged; Odoo's native Attendance app may require configuration to match the Herbst rule set.
Herbst Insight ERP
Production / BOM
Odoo ERP
Mrp Production + Mrp Bom
1:1Herbst manufacturing data (production orders, Bills of Materials, routing information) maps to Odoo mrp_production and mrp_bom records where the Odoo Manufacturing app is activated. Herbst BOM components map to mrp_bom_line records with component product_id and quantity_bom resolved against the Items mapping. Custom production workflows from Herbst are catalogued as configuration notes for Odoo manufacturing route setup.
Herbst Insight ERP
Documents and Attachments
Odoo ERP
Ir Attachment (metadata only)
lossyBinary document storage (invoice PDFs, images, uploaded files) is not accessible via Herbst's standard export tools and is marked as not migratable. We export document metadata (filename, file type, linked module, record reference) into an Odoo ir_attachment inventory, and the file transfer is handled separately by the customer via the Herbst Web Portal download or direct server access. Note attachments that are text-based may be extracted as Odoo mail.message records.
| Herbst Insight ERP | Odoo ERP | Compatibility | |
|---|---|---|---|
| Customer | Res Partner (Customer type)1:1 | Fully supported | |
| Supplier (Vendor) | Res Partner (Vendor type)1:1 | Fully supported | |
| Item (Product) | Product Template + Product Variant1:1 | Fully supported | |
| Chart of Accounts | Account Account1:1 | Fully supported | |
| Open AP (Accounts Payable) | Account Move (Vendor Bill)1:1 | Fully supported | |
| Open AR (Accounts Receivable) | Account Move (Customer Invoice)1:1 | Fully supported | |
| Sales Order | Sale Order1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Inventory (Stock) | Stock Quant + Stock Locationlossy | Mapping required | |
| Time and Attendance | Hr Attendance + Project Timesheet1:1 | Mapping required | |
| Production / BOM | Mrp Production + Mrp Bom1:1 | Fully supported | |
| Documents and Attachments | Ir Attachment (metadata only)lossy | Not 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.
Herbst Insight ERP gotchas
Herbst does not publish public API documentation or rate limits
Herbst Web Portal exports are module-scoped, not transactional graphs
SaaS hosting means migration windows depend on vendor co-operation
Payroll module migration requires jurisdiction-specific sign-off
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Extraction method confirmation and scoping
We engage Herbst Insight ERP's professional services or development team to confirm the available extraction method: direct SQL read access, Herbst partner export tool, or Web Portal module-scoped CSV reports. We audit the active Herbst modules (accounting, CRM, payroll, inventory, manufacturing, time and attendance), record counts per entity, and any custom field definitions. The scoping output is a written extraction plan, a migration object list, and a confirmed timeline range.
Odoo environment provisioning and app activation
We provision an Odoo Sandbox or development instance at the customer's target edition (Community or Enterprise) and activate the relevant apps based on the Herbst module audit: Accounting for the Chart of Accounts and AP/AR, Inventory for stock, Purchase for supplier orders, Sales for customer orders, Manufacturing if BOM data exists, and HR if employee records are in scope. We configure the company structure, fiscal year, and chart of accounts template before any data load begins.
Data profiling and cleansing
We run data profiling on the extracted Herbst data before any transformation. We identify duplicate customer and supplier records, items without SKUs, open AP/AR records with missing supplier or customer references, and inventory records with inactive product IDs. We deliver a data quality report to the customer's finance and operations leads and require explicit decisions on each flagged record before we proceed to transformation. This step prevents the migration from propagating legacy data problems into Odoo.
Schema mapping and sandbox migration
We build the field-to-field mapping document for each entity: Customers to res.partner, Items to product_template and product_product, Chart of Accounts to account_account, and transactional records to their respective Odoo move and order objects. We run a sandbox migration with production-like data volume, validate record counts and spot-check field accuracy, and require the customer's sign-off before production migration begins.
Production migration in dependency order
We run production migration in the correct dependency order: Chart of Accounts first (all account codes must exist before journal entries post), then res.partner records for customers and suppliers, then product records, then stock quant and location data, then open AP and AR as draft account_move records, then Sales and Purchase Orders, then time and attendance data, then payroll summaries (effective-dated compensation only, with jurisdiction sign-off), then document metadata inventory. Each phase emits a row-count reconciliation report before the next begins.
Cutover, validation, and automation rebuild handoff
We freeze Herbst writes during cutover, run a final delta migration of any records created or modified during the migration window, then designate Odoo as the system of record. We validate Odoo trial balance against the Herbst ledger closing balance, spot-check 25-50 records across entities, and resolve any reconciliation exceptions. We deliver a written inventory of Herbst automations, module-level configurations, and custom field definitions that require manual rebuild in Odoo. We do not rebuild automations or custom Odoo modules inside the migration scope.
Platform deep dives
Herbst Insight ERP
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP 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 Herbst Insight ERP and Odoo ERP.
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
Herbst Insight ERP: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Herbst Insight ERP 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 Herbst Insight ERP to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Herbst Insight ERP to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Herbst Insight ERP
Other ways to arrive at Odoo ERP
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.