ERP migration

Migrate from Reflex ERP to Dolibarr ERP

Field-level mapping, validation, and rollback between Reflex ERP and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.

Reflex ERP logo

Reflex ERP

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

100%

15 of 15

objects map 1:1 between Reflex ERP and Dolibarr ERP.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Reflex ERP to Dolibarr is a structural migration from a Canadian enterprise platform serving $10M-$500M revenue companies with 50 integrated modules down to a modular open-source ERP designed for small and medium businesses. Reflex organizes data around a unified database with cross-module relationships between Projects, Work Orders, Items with BOM structures, and Open AR/AP; Dolibarr uses a looser module architecture where Third Parties, Products, Projects, and Invoicing are distinct entities linked by foreign key lookups. We extract via direct database queries from Reflex, sequence the migration in dependency order (Accounts first, then Third Parties, then Transactions, then Work Orders), and load through Dolibarr's native import module using CSV or direct MySQL inserts with UTF-8 encoding. We do not migrate Workflows, custom Reflex modules, or the CCC login portal authentication layer; we deliver a written inventory of these for the customer to rebuild in Dolibarr's module activation framework.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Reflex ERP logo

Reflex ERP

What's pushing teams away

  • Intercompany banking has been called out by reviewers as not working seamlessly — works best when each legal entity does its own banking, which limits consolidated treasury operations.
  • Minimum 5 Full Client Access Licenses and a CA$50,000+ enterprise server license make Reflex out of reach for sub-$10M revenue businesses.
  • Customers outside North America face localization gaps — multi-currency, multi-country tax frameworks, and non-North American compliance are not the platform's strength.
  • No publicly documented REST API limits extensibility — integration partners rely on direct database access or the CCC portal rather than self-serve developer endpoints.
  • Customers who outgrow the platform's 50-module footprint and need hyperscaler-style elastic capacity or modern SaaS update cadence eventually move to NetSuite, Sage Intacct, or Acumatica.

Choosing

Dolibarr ERP logo

Dolibarr ERP

What's pulling them in

  • Free open-source core with no per-user license fee makes it the lowest-cost entry point for small teams needing ERP and CRM in one package.
  • Self-hosted deployment gives full data ownership and eliminates vendor lock-in, especially attractive to businesses with compliance requirements.
  • Modular architecture means teams enable only the features they use, keeping the interface uncluttered and reducing learning curve.
  • Fast installation with no technical knowledge required — one reviewer set up multiple businesses in minutes using their own hosting.
  • Active community forum and marketplace of third-party add-ons provide support and extension options without mandatory subscription costs.

Object mapping

How Reflex ERP objects map to Dolibarr ERP

Each row shows how a Reflex ERP object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Reflex ERP

Chart of Accounts

maps to

Dolibarr ERP

Accounting Account

1:1
Fully supported

Reflex GL account codes, descriptions, and account types (Asset, Liability, Equity, Revenue, Expense) map directly to Dolibarr's llx_accounting_account table. We extract account records with inactive flags and sort sub-account hierarchies into Dolibarr's pcg_version structure. Multi-company intercompany accounts must be consolidated or split during extraction because Dolibarr's standard accounting does not natively support intercompany elimination entries.

Reflex ERP

Customers

maps to

Dolibarr ERP

Third Parties (Customer type)

1:1
Fully supported

Reflex Customer master records (billing address, shipping address, payment terms, credit limits, contact details) map to Dolibarr's llx_societe with typethirdparty='C' and address, phone, email, and conditions stored in Dolibarr's standard third-party fields. We resolve any customer ID cross-references to AR invoice records before insert to preserve the AR aging relationship. Dolibarr requires country code in ISO format and does not accept free-text country names.

Reflex ERP

Vendors

maps to

Dolibarr ERP

Third Parties (Supplier type)

1:1
Fully supported

Reflex Vendor master records map to Dolibarr's llx_societe with typethirdparty='F', mirroring the Customer mapping with address, payment terms, and 1099 settings translated to Dolibarr's supplier conditions fields. Vendor IDs are required to resolve AP aging records. We extract vendor records before AP records to satisfy foreign key constraints during import.

Reflex ERP

Items

maps to

Dolibarr ERP

Products / Services

1:1
Mapping required

Reflex Items with part numbers, descriptions, costing methods (FIFO/average), and pricing tiers map to Dolibarr's llx_product. Item type (stock vs service) determines product_type in Dolibarr. Pricing tiers from Reflex map to Dolibarr's price lists attached to the product. Dolibarr does not natively support complex pricing tier matrices; we collapse multi-tier pricing into the primary price list and document the remaining tiers in a supplemental import sheet.

Reflex ERP

Items / BOM Structures

maps to

Dolibarr ERP

BOM (Bill of Materials)

1:1
Fully supported

Reflex BOM relationships (parent item, component items, quantities, scrap percentages) map to Dolibarr's llx_product_bom and llx_bom_bom_product. Multi-level BOM explosion requires us to extract the full bill-of-materials tree from Reflex before migration and flatten or preserve the hierarchy in Dolibarr's BOM structure depending on whether the destination Dolibarr instance uses the MRP extension. We flag any BOMs with missing component Items for customer review before import.

Reflex ERP

Projects

maps to

Dolibarr ERP

Projects

1:1
Mapping required

Reflex Project headers, budget lines, and actuals map to Dolibarr's llx_projet and llx_projet_task. Project cost tracking (labor, materials, equipment) from Reflex becomes task-level time and expense entries in Dolibarr. Budget-versus-actual variance reporting is not native to Dolibarr's Project module; we document the budget columns as custom project fields or recommend a reporting module add-on. Sub-projects become top-level projects or tasks depending on the customer's reporting structure preference.

Reflex ERP

Open AR

maps to

Dolibarr ERP

Customer Invoices / Credit Notes

1:1
Mapping required

Reflex Open AR records (invoice number, customer ID, amount, due date, aging buckets, credit memos, prepayments) map to Dolibarr's llx_facture with invoice status set to unpaid at cutover. Credit memos become credit notes linked to the original invoice via fk_facture_source. Prepayments become down payment invoices. We extract open AR at a defined cut-off date and flag any invoices created after cutover for the customer's go-live window to be re-imported as a delta. Dolibarr's aging report uses the same due date logic as Reflex but requires the invoice date and payment term to be set correctly.

Reflex ERP

Open AP

maps to

Dolibarr ERP

Supplier Invoices / Credit Notes

1:1
Mapping required

Reflex Open AP records (vendor ID, invoice number, amount, due date, payment terms) map to Dolibarr's llx_facture_fourn with typethirdparty='F'. Credit memos from vendors become supplier credit notes. We extract open AP at cut-off date, map vendor IDs to Dolibarr supplier records, and load invoices with status unpaid. Any 1099 settings from Reflex vendor records map to Dolibarr vendor accounting configuration fields.

Reflex ERP

Fixed Assets

maps to

Dolibarr ERP

Assets

1:1
Mapping required

Reflex Fixed Asset records (acquisition date, cost, depreciation method, accumulated depreciation, useful life, asset category) map to Dolibarr's llx_asset and llx_asset_depreciation. Depreciation conventions (straight-line, declining balance, units of production) translate to Dolibarr's depreciation profile settings. We load accumulated depreciation as an opening depreciation entry so that net book value is correct at go-live. Asset disposal history and gain/loss entries are not migrated unless specifically scoped; we flag these for the customer's accounting team to handle post-migration.

Reflex ERP

Work Orders

maps to

Dolibarr ERP

Production Orders / MRP

1:1
Mapping required

Reflex Work Orders with linked Items, BOMs, labor hours, and material consumption map to Dolibarr's llx_mrp_production if the MRP module is activated. Open work orders migrate with status in progress; closed work orders migrate as historical records. Labor hours and material consumption from Reflex closed work orders are logged as production tracking entries in Dolibarr's mrp production lines. Closed work orders that impacted COGS and inventory simultaneously require a manual GL reconciliation entry because Dolibarr's standard accounting does not auto-reverse COGS postings from production closes.

Reflex ERP

Tax Codes

maps to

Dolibarr ERP

Tax / VAT Setup

1:1
Mapping required

Reflex tax codes (jurisdiction, rate, applicability to sales vs purchases) map to Dolibarr's llx_c_tva and llx_c_type_fees. We extract all active tax codes and map them to Dolibarr's VAT rate configuration, including compound tax scenarios and nexus-specific rates. Historical tax adjustments and multi-jurisdiction tax calculations are documented as supplemental configuration notes for the customer's admin to finalize based on their current tax obligations.

Reflex ERP

Users

maps to

Dolibarr ERP

Users

1:1
Fully supported

Reflex user records with role assignments and permissions map to Dolibarr's llx_user. We extract user names, emails, and role classifications, but permission sets are Reflex-specific and must be rebuilt in Dolibarr's module-level permission framework. Dolibarr's user access is managed through module activation and per-module permission flags, not a unified role-permission matrix like Reflex. We deliver a written permission map matching each Reflex user role to the equivalent Dolibarr module permission set for the customer's admin to configure post-migration.

Reflex ERP

Documents

maps to

Dolibarr ERP

Documents

1:1
Mapping required

Reflex Document Manager stores binary attachments linked to transactions and master records. We flag document associations during extraction (document type, linked record ID, file name) and re-link them post-migration in Dolibarr's documents directory using the same directory structure or a migration-specific subdirectory. Binary file migration requires UTF-8 encoding verification on file names; Dolibarr's document handler does not tolerate malformed encoding from Windows-exported files.

Reflex ERP

Sales Orders

maps to

Dolibarr ERP

Proposals / Customer Orders

1:1
Fully supported

Reflex Sales Orders map to Dolibarr's llx_commande with status mapped from Reflex order state to Dolibarr order status values (draft, validated, shipped, closed). Line items resolve to llx_commandedet with product references linked to the migrated product catalog. Open orders migrate with status preserved; completed orders migrate as historical records. Quotes without a converted order in Reflex map to Dolibarr proposals (llx_propal) for any quotes still in progress at cutover.

Reflex ERP

Purchase Orders

maps to

Dolibarr ERP

Supplier Orders

1:1
Fully supported

Reflex Purchase Orders map to Dolibarr's llx_commande_fournisseur with status translated to Dolibarr supplier order states. Vendor references resolve to the migrated supplier records. Open purchase orders migrate with status in progress for fulfillment tracking; closed purchase orders migrate as historical records.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Reflex ERP logo

Reflex ERP gotchas

High

Intercompany banking does not work seamlessly

Medium

Minimum 5 Full Client Access Licenses creates a floor on user count migration

Medium

Module-spanning data relationships require careful sequencing

Medium

Direct database access requires customer-side coordination

Dolibarr ERP logo

Dolibarr ERP gotchas

High

Foreign key constraint errors on cross-distribution database restore

High

SQL injection vulnerabilities in version 9.0.1

Medium

Custom fields stored as JSON in extraoptions require field-by-field deserialization

Medium

Decimal precision and rounding configuration affects price fields

Low

No native iOS/Android app forces reliance on browser

Pair-specific challenges

  • Reflex has no documented public API

    Reflex ERP does not expose a documented REST or GraphQL API for external data extraction. Access is through the CCC login portal or direct database queries against Reflex's proprietary schema. We extract data via direct SQL queries against the Reflex database, which requires read-only database credentials or a database export performed by the customer's Reflex administrator. If the Reflex database is hosted by Reflex Enterprise Solutions on their managed infrastructure, the customer must request a data export through their account representative before migration scoping can proceed.

  • Dolibarr does not natively support BOM explosion in base installation

    Reflex's Work Orders with multi-level BOM structures (parent assemblies, sub-assemblies, components) require Dolibarr's MRP module to be activated and configured before Work Order import. The base Dolibarr installation includes a product BOM feature but the full MRP production module is a separate extension. If the customer's migration scope includes manufacturing work orders with nested BOMs, we scope the MRP module activation as a prerequisite, configure the BOM structure, and migrate work orders only after the MRP module is validated in a test environment.

  • Historical AR/AP aging requires GL-side carry-forward entry

    Open AR and AP records from Reflex carry forward into Dolibarr as unpaid invoices, but Dolibarr's aging reports depend on correctly configured payment terms and due dates. If Reflex used custom aging buckets or payment terms not represented in Dolibarr's standard payment term configuration, the aging report in Dolibarr may display different bucket distributions than Reflex. We document the Reflex aging bucket definitions during discovery and either configure matching payment term durations in Dolibarr or deliver a supplemental aging configuration guide for the customer's accountant to reconcile post-migration.

  • UTF-8 encoding mismatches corrupt accented characters and file names

    Reflex databases used in Quebec and other French-speaking regions often store data in Latin-1 (ISO-8859-1) or Windows-1252 encoding, while Dolibarr's MySQL backend expects UTF-8 (utf8mb4). During extraction we detect the source encoding and convert to UTF-8 before loading. File names with accented characters in the Reflex Document Manager must also be converted to UTF-8 when migrated to Dolibarr's documents directory; failure to do so results in broken document links in Dolibarr's attachment list.

  • Dolibarr's basic accounting lacks cost centers and intercompany features

    Reflex ERP supports cost centers, profit centers, and intercompany consolidation entries that have no direct equivalent in Dolibarr's standard accounting module. If the customer's Reflex instance uses cost center tracking on Projects or Work Orders, those allocations do not map to a native Dolibarr accounting dimension. We document each cost center usage as a supplemental accounting note, and the customer's accountant either reconstructs cost center reporting using Dolibarr's project-based reporting or a third-party accounting module add-on. Intercompany GL entries require manual reconstruction post-migration.

Migration approach

Six steps for a successful Reflex ERP to Dolibarr ERP data migration

  1. Discovery and data source assessment

    We audit the Reflex ERP instance via direct database queries or CCC portal access. We inventory the Chart of Accounts structure, third-party volumes (customers, vendors, contacts), item catalog size and BOM depth, project and work order record counts, open AR/AP aging buckets and cut-off date, fixed asset register, and document attachment count and storage size. We also assess the Reflex database encoding (Latin-1 vs UTF-8) and hosting model (customer-managed vs Reflex-hosted managed infrastructure) to determine whether database credentials or an export request is required. The discovery output is a written migration scope document with record counts, encoding confirmation, and a go/no-go on BOM and work order scope based on MRP module availability in the destination Dolibarr instance.

  2. Dolibarr instance provisioning and module activation

    We provision the destination Dolibarr instance either on the customer's self-hosted infrastructure or via DoliCloud at €9 per user per month. We activate the required modules based on the migration scope: Third Parties (Customers and Suppliers), Products/Services, Invoicing, Project Management, Stock/MRP (if BOM and Work Order scope is confirmed), Asset Management, and Accounting. We configure the accounting chart using the pcg_version framework matching the Reflex account structure. We set the Dolibarr database charset to utf8mb4 regardless of source encoding to prevent character corruption during import.

  3. Data extraction, cleansing, and encoding conversion

    We run direct SQL extracts from the Reflex database in dependency order: Chart of Accounts first (no dependencies), then third parties (Customers and Vendors in parallel), then Products/Items with BOM relationships extracted as a separate related set, then Projects, then open AR and AP at the agreed cut-off date, then fixed assets, then work orders, then sales and purchase orders, then document metadata. We convert all text fields from the Reflex encoding (detected during discovery) to UTF-8 before writing staging files. We deduplicate third-party records where Reflex maintains separate billing and shipping address records as distinct entities and Dolibarr uses a single third-party with address sub-table. We flag any BOM components missing from the item extract for customer resolution before BOM import.

  4. Staging import and sandbox validation

    We load staging data into the Dolibarr instance using Dolibarr's native import module (CSV or direct MySQL inserts for larger volumes) and validate record counts, referential integrity, and character rendering. We run the Dolibarr accounting trial balance after loading the Chart of Accounts and open AR/AP to confirm debits equal credits. We spot-check 25-50 records per object against the Reflex source data. Any encoding issues, missing required fields (Dolibarr requires third-party name, country ISO code, and third-party type for every record), or foreign key violations are corrected in the staging files and re-loaded. The customer reviews the validated staging and signs off before production migration.

  5. Production migration in dependency order

    We run the production migration in strict record-dependency order: Chart of Accounts, Third Parties (Customers then Vendors), Products (with BOM parent-child relationships resolved), Accounting configuration (tax codes, payment terms), Projects, Fixed Assets, Open AR (with customer lookups resolved), Open AP (with vendor lookups resolved), Sales Orders and Proposals, Purchase Orders, Work Orders (with MRP module activated and BOM lookups resolved), and document metadata with re-linkage instructions. Each phase emits a row-count reconciliation report. Any records rejected during production import are logged to an exception file for customer review and manual correction or re-import.

  6. Cutover, document migration, and automation rebuild handoff

    We freeze Reflex data entry at cutover, run a final delta migration for any records modified during the production migration window, and switch the customer's system of record to Dolibarr. We migrate document binary files from Reflex's document storage to Dolibarr's documents directory structure using the document-linkage map built during extraction, and verify that attachment links resolve in the Dolibarr UI. We deliver a written inventory of Reflex workflows, custom Reflex modules, and permission structures for the customer's admin to rebuild in Dolibarr's module activation and permission framework. We support a one-week post-go-live hypercare window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

Reflex ERP logo

Reflex ERP

Source

Strengths

  • All 50 modules share a unified database — true cross-module data lineage from Project to Invoice to GL to Fixed Asset.
  • Vertical depth for construction, manufacturing, distribution, property management, and land development.
  • Implementation in ~6 months versus a ~17-month industry average for comparable mid-market ERPs.
  • Average project cost ~CA$300K versus ~CA$1.3M industry reference for big-box mid-market ERPs.
  • Real-time tracking and reporting across project progress, resource utilization, and budget performance.

Weaknesses

  • Intercompany banking is not seamless — best when each legal entity does its own banking.
  • Minimum 5 Full Client Access Licenses plus a CA$50K+ enterprise server license puts Reflex out of reach for small businesses.
  • No publicly documented REST API; extensibility relies on direct database access or the CCC portal.
  • North America-focused — localization for non-NA tax / currency / compliance is limited.
  • Traditional release cadence rather than SaaS-style continuous delivery.
Dolibarr ERP logo

Dolibarr ERP

Destination

Strengths

  • Free core software with AGPL license and no per-user mandatory fee for self-hosted deployments.
  • Modular architecture lets teams activate only needed features, keeping the interface focused and the database lean.
  • Self-hosted option provides full data sovereignty and avoids recurring SaaS subscription costs.
  • Built-in CSV/Excel import and export wizard with saved profiles simplifies recurring data operations.
  • Low-code Module Builder allows functional extensions without writing PHP code.

Weaknesses

  • No native documented REST API for programmatic bulk operations — all migrations depend on the import/export wizard or direct database access.
  • Reporting and analytics are weak without paid add-ons, and built-in charts are limited compared to modern SaaS platforms.
  • UI design is described as dated by multiple reviewers, with infrequent visual updates to the default theme.
  • Community-only support for self-hosted deployments means no SLA or guaranteed response time for issues.
  • Security vulnerabilities (CVE-2024-5314, CVE-2024-5315) in version 9.0.1 with no immediate patch reported.

Complexity grading

How hard is this migration?

Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Reflex ERP and Dolibarr ERP.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Reflex ERP: Not publicly documented.

  • Data volume sensitivity

    B

    Reflex ERP doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Reflex ERP to Dolibarr ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Reflex ERP to Dolibarr ERP data migrations

Answers to the questions buyers ask most during Reflex ERP to Dolibarr ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Reflex ERP to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Master-data-only migrations (Accounts, Customers, Vendors, Products, Projects) under 10,000 third-party records and 2,000 projects typically complete in six to ten weeks. Migrations that include full open AR/AP aging, fixed asset depreciation history, multi-level BOM structures, work order history, and document re-linkage expand to fourteen to twenty-two weeks because of BOM explosion validation, GL reconciliation against Reflex real-time reporting outputs, and document binary migration scope. Reflex-hosted managed infrastructure customers should add two to four weeks for data export coordination through their Reflex account representative.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Reflex ERP.
Land in Dolibarr ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day