ERP migration

Migrate from Tuhund to Dolibarr ERP

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

Tuhund logo

Tuhund

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

87%

13 of 15

objects map 1:1 between Tuhund and Dolibarr ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Tuhund to Dolibarr is a structural migration across two fundamentally different ERP philosophies. Tuhund is a branch-aware, multi-department platform from Bengaluru where the same entity (customer, product, user) can carry different configurations per branch. Dolibarr uses a flat, modular open-source model where users activate only the modules they need and third parties live as unified contact records without branch inheritance. We extract from Tuhund's integration API, scope the migration to a named branch or replicate across all branches, and resolve the multi-branch artifact layer before importing into Dolibarr's third-party, product, and document modules. We preserve line-item pricing on quotations and invoices, stock levels per location, and service request hierarchies. We do not migrate Tuhund's custom workflow approvals, branch-scoped automations, or department-level routing rules; these require rebuilding as Dolibarr module configuration post-migration. Dolibarr does not have a native cost-centre object, so Tuhund department associations on expense claims and purchase orders are preserved in custom fields for audit.

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

Tuhund logo

Tuhund

What's pushing teams away

  • Significant licensing, maintenance, and implementation cost positions Tuhund toward mid-market and enterprise rather than SMB — small organizations may find total cost of ownership prohibitive.
  • Typical 3-6 month implementation timeline is a meaningful project commitment compared with SaaS-first ERPs that promise faster time-to-value.
  • Limited public reviewer presence on G2 and Capterra makes peer validation difficult, especially for buyers outside ECS's existing customer regions.
  • Custom module deployment on top of the core means vendor services are typically required, increasing dependency on ECS for ongoing changes.
  • Pricing is not published, making early-stage budget conversations difficult without a sales engagement.

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 Tuhund objects map to Dolibarr ERP

Each row shows how a Tuhund 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.

Tuhund

Company

maps to

Dolibarr ERP

ThirdParty (mode = Company)

1:1
Fully supported

Tuhund Company records (B2B contacts) map to Dolibarr ThirdParty in Company mode. The Company name maps to the name field, address and phone fields map directly, and the email maps to the email field. We use the ThirdParty email as the dedupe key during import. Branch associations from Tuhund are preserved in a custom text field tuhund_branch__c for audit and reporting in Dolibarr.

Tuhund

Person

maps to

Dolibarr ERP

ThirdParty (mode = Individual)

1:1
Fully supported

Tuhund Person records (B2C contacts) map to Dolibarr ThirdParty in Individual mode. First name and last name split from the Tuhund full-name field using name-order detection, and the email maps to the email field. Individual mode enables Dolibarr's contact-specific fields (birthday, personal address) while preserving the original Tuhund Person ID in a custom field tuhund_person_id__c.

Tuhund

Branch

maps to

Dolibarr ERP

Extrafields on ThirdParty + Tag

lossy
Fully supported

Tuhund's multi-branch architecture has no direct Dolibarr equivalent because Dolibarr's third-party records are flat without branch inheritance. We map branch membership by creating a Dolibarr Tag for each Tuhund branch (e.g., branch_mumbai, branch_bengaluru) and attaching it to all third parties belonging to that branch via the Tag/Category system. This preserves branch provenance without requiring a custom branch object.

Tuhund

Department

maps to

Dolibarr ERP

Extrafields on User and Expense Claim

lossy
Fully supported

Tuhund departments associate with users, expense claims, and purchase orders. Dolibarr has no native department object, so we create a custom extrafields dropdown tuhund_department__c on Dolibarr User and Project records, populating it with the distinct department names from Tuhund. This keeps department provenance for audit without affecting Dolibarr's access control model.

Tuhund

Sales Quotation

maps to

Dolibarr ERP

Commercial Proposal (Propal)

1:1
Fully supported

Tuhund Sales Quotations and Proforma Invoices map to Dolibarr Commercial Proposal (Propal). We map line items (product reference, quantity, unit price, discount) directly, preserve the quotation date and expiry date, and link the proposal to the corresponding ThirdParty. The tuhund_quotation_id__c field stores the original Tuhund document ID for reconciliation.

Tuhund

Commercial Invoice

maps to

Dolibarr ERP

Invoice (Facture)

1:1
Fully supported

Tuhund Commercial Invoices map to Dolibarr Invoice. Invoice header fields (number, date, due date, total, tax amount) migrate with line items intact. Tuhund's tax calculation logic is not migrated; we preserve base amounts and tax amounts as separate fields in Dolibarr, and the customer reconciles tax accounts during post-migration setup. Invoice status (Draft, Validated, Paid, Cancelled) maps to Dolibarr's fk_statut.

Tuhund

Inventory / Product

maps to

Dolibarr ERP

Product

1:1
Fully supported

Tuhund product records map to Dolibarr Product. We preserve product categories (mapped to Dolibarr Product Category), stock levels per location, and the SKU/reference field. Stock balances migrate as static values at migration time; we flag any product with zero stock for inventory count reconciliation post-migration.

Tuhund

Stock Location

maps to

Dolibarr ERP

Warehouse

1:1
Fully supported

Tuhund stock locations map to Dolibarr Warehouse. Each warehouse record in Dolibarr stores the physical location, and stock entries per product per warehouse are created from Tuhund's stock-level data. Multi-location setups (one warehouse per Tuhund location) are preserved; if Tuhund has a single stock location, we default to the Dolibarr Default warehouse.

Tuhund

Purchase Order

maps to

Dolibarr ERP

Purchase Order (CommandeFournisseur)

1:1
Fully supported

Tuhund Purchase Orders map to Dolibarr Purchase Order. We map vendor reference (linked to the Tuhund vendor ThirdParty), PO number, line items, quantities, and amounts. The GRN (Goods Receipt Note) association from Tuhund is preserved as a custom field tuhund_grn_ref__c on the Dolibarr receipt line, but GRN itself is not a separate Dolibarr object unless the Receipt module is activated.

Tuhund

Goods Receipt Note (GRN)

maps to

Dolibarr ERP

Supplier Receipt (Reception)

1:1
Fully supported

Tuhund GRN records link to purchase orders and inventory updates. Dolibarr's Reception module (activated as part of the Purchase workflow) handles supplier receipt recording. We map GRN fields (receipt date, vendor, received quantities) to Dolibarr Reception, linking each receipt to the corresponding Purchase Order line item and updating product stock accordingly.

Tuhund

Service Request / Job Card

maps to

Dolibarr ERP

Ticket + Intervention

1:1
Fully supported

Tuhund Service Requests map to Dolibarr Ticket, and Job Cards map to Dolibarr Intervention (if the Interventions module is activated). We preserve request status, priority, requester ThirdParty link, and the job card timeline. Warranty tracking from Tuhund's Services module is stored as a custom field tuhund_warranty_end_date__c on the Ticket or Product record, as Dolibarr's warranty tracking requires a community add-on module.

Tuhund

Expense Claim

maps to

Dolibarr ERP

Expense Report (ExpenseReport)

1:1
Fully supported

Tuhund Expense Claims map to Dolibarr Expense Report if the HR module is activated. We migrate claim headers (submitter user, department, approval status), individual expense items (category, amount, date, description), and totals. Tuhund approval workflow state migrates as a read-only status field; approval routing is not migrated as Dolibarr does not replicate the same approval chain model.

Tuhund

Project / Task

maps to

Dolibarr ERP

Project + Task

1:1
Fully supported

Tuhund Projects map to Dolibarr Project, and tasks map to Dolibarr Task with parent project linkage. Milestones from Tuhund map to Dolibarr Project milestones if the Project module is configured accordingly. Assignees resolve by email against the Dolibarr User table. Custom fields at project level require schema inspection before import.

Tuhund

User

maps to

Dolibarr ERP

User

1:1
Fully supported

Tuhund User records map to Dolibarr User. We resolve by email match and preserve the Tuhund role assignment and branch/department associations in Dolibarr extrafields. Tuhund's permission model does not map to Dolibarr's permission set system; we deliver a role-reconciliation table as part of the migration output.

Tuhund

Attachment

maps to

Dolibarr ERP

Document via ContentDocumentLink

1:1
Fully supported

Tuhund attachments associated with service requests, expense claims, and documents are downloaded via the Attachment Download API and stored in Dolibarr's documents directory, linked to the corresponding record via ContentDocumentLink. We flag attachments where the listing API does not expose the full set; the customer verifies completeness against Tuhund's document storage during the scoping walkthrough.

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.

Tuhund logo

Tuhund gotchas

High

Per-customer module configuration creates schema drift

High

No publicly documented developer API

Medium

Long implementation cycles imply long extraction cycles

Low

Geographic vendor presence affects support cadence

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

  • Tuhund branch architecture has no direct Dolibarr equivalent

    Tuhund's multi-branch model means the same entity (customer, product, user) can carry different data per branch, and branch-scoped custom fields are common. Dolibarr has no native branch or cost-centre object; all third parties, products, and users are flat records. We map branch membership using Dolibarr Tags on third parties and extrafields on users, but this is an annotation rather than a functional branch system. Teams that rely on Tuhund branch-level reporting, approvals, or data isolation must plan for a flat schema in Dolibarr and rebuild branch-level logic as module configuration or custom development post-migration.

  • Tuhund department associations require extrafields configuration in Dolibarr

    Tuhund departments attach to users, expense claims, and purchase orders for workflow routing. Dolibarr's HR and Project modules do not have a native department object; instead, departments are typically handled via tags, extrafields, or third-party add-ons. We create custom extrafields tuhund_department__c on User, ExpenseReport, and Project records during schema setup, but approval workflows built around department routing in Tuhund do not migrate as functional rules. The customer admin rebuilds routing logic using Dolibarr's module configuration after migration.

  • Tuhund custom fields at branch and department level require schema inspection before import

    Tuhund supports custom fields scoped to branches and departments that are not exposed in the standard API documentation. We inspect the Tuhund field schema during scoping by querying the field metadata endpoint and cross-referencing against a sample export. Custom fields identified this way are created in Dolibarr's extrafields table before migration begins. Fields with branch-specific value lists require mapping to Dolibarr picklist values, which may require manual value translation if the picklist options differ significantly between systems.

  • Tuhund warranty and service request history requires manual review of completeness

    Tuhund's Services module stores warranty records, service request histories, and solutions databases. The Attachment Download API does not expose all attachment types in its listing endpoint, and community forum posts confirm this limitation affects migration completeness for file-heavy service records. We download all accessible attachments linked to service requests and job cards, but the customer must verify coverage against Tuhund's document storage directly. Any gap in attachment coverage is documented in the migration completion report.

Migration approach

Six steps for a successful Tuhund to Dolibarr ERP data migration

  1. Schema inspection and branch scoping

    We query Tuhund's field metadata endpoint to identify all standard and custom fields across Companies, Persons, Sales Quotations, Invoices, Products, Purchase Orders, Service Requests, and Projects. We identify branch-scoped custom fields and department-level value lists. If the Tuhund instance spans multiple branches, we confirm the migration scope with the customer: a single named branch or all branches replicated into a single Dolibarr instance. The output is a written field mapping document covering every source field to its Dolibarr destination, including data types, picklist values, and any transformation logic required.

  2. Dolibarr module activation and schema setup

    We activate the required Dolibarr modules in a fresh installation or in a DoliCloud-hosted instance: ThirdParty/Contact, Product/Stock, BOM/Manufacturing (if applicable), Commercial Proposal, Invoice, Purchase Order, Reception, Ticket/Intervention, Project, and HR/ExpenseReport. We create extrafields for tuhund_branch__c, tuhund_department__c, and the original Tuhund record IDs. We configure Warehouse records to map against Tuhund stock locations and verify product categories align with Tuhund's product category hierarchy. All schema changes are tested in a staging Dolibarr instance before production data load.

  3. Data extraction from Tuhund

    We extract data from Tuhund's integration API in dependency order: ThirdParties (Companies then Persons), Users, Products with stock levels per location, Sales Quotations, Commercial Invoices, Purchase Orders, Goods Receipt Notes, Service Requests and Job Cards, Expense Claims, and Projects with Tasks. Each extraction produces a CSV or JSON snapshot with the original Tuhund record ID preserved in every row for reconciliation. We use exponential backoff and batch chunking on the Tuhund API to handle rate limits without data loss. Attachments are downloaded in parallel using the Attachment Download API.

  4. Transformation and branch resolution

    We apply the transformation logic identified during schema inspection: name splitting for Persons, email-based dedupe for ThirdParties, branch tag assignment for third parties and users, department extrafield population, and line-item extraction for all documents. For records originating from multiple branches, we resolve branch assignments and apply the appropriate tag. Custom field values are mapped from Tuhund's branch-specific value lists to Dolibarr picklist values using the translation table created during scoping. The transformation output is a set of import-ready files per Dolibarr entity.

  5. Staged import into Dolibarr

    We run import in dependency order: ThirdParties first (Companies then Persons), then Users, Products, Warehouses and stock entries, Commercial Proposals, Invoices, Purchase Orders, Receptions, Tickets and Interventions, Expense Reports, and Projects with Tasks. Each phase is validated with a row-count reconciliation report and a spot-check of 20-30 records against the source snapshot. Dolibarr's built-in import tool handles CSV loads for standard objects; larger volumes use the Dolibarr REST API with batch chunking and error retry. Attachments are linked to their parent records via ContentDocumentLink after all primary records are confirmed imported.

  6. Cutover and migration completion

    We freeze writes in Tuhund, run a final delta extraction for any records modified during the migration window, load the delta into Dolibarr, and confirm all row counts match. We deliver the migration completion report including record counts per entity, any records that could not be imported with reason codes, the attachment coverage summary, and the role-reconciliation table for Dolibarr User permissions. We provide a one-week hypercare window to resolve post-migration data discrepancies. We do not rebuild Tuhund's branch-scoped workflows, department approval routing, or warranty automation rules; these are documented in the workflow inventory and rebuilt by the customer's admin as Dolibarr module configuration.

Platform deep dives

Context on both ends of the pair

Tuhund logo

Tuhund

Source

Strengths

  • Broad module footprint (finance, inventory, supply chain, manufacturing, PM, CRM, HRM, analytics) on a single core.
  • Core platform includes meaningful functionality out of the box.
  • Cloud and on-premise deployment for regulated and data-residency-sensitive customers.
  • Multi-region vendor presence (US, Canada, UK, Australia, India).
  • Subscription licensing that scales users and modules over time.

Weaknesses

  • High total cost of ownership positions Tuhund away from SMB.
  • 3-6 month implementation timelines.
  • Limited public reviewer presence.
  • No public developer API — integrations require vendor services.
  • Pricing not published, slowing early-stage evaluation.
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. All 8 core objects map 1:1 between Tuhund and Dolibarr ERP.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Tuhund and Dolibarr ERP.

  • 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

    Tuhund: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Tuhund 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 Tuhund to Dolibarr ERP data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 5,000 contacts, 2,000 products, and 500 documents. Migrations spanning multiple Tuhund branches, large inventory datasets (over 20,000 SKUs), or complex service request histories move to eight to twelve weeks because of schema inspection for branch-scoped custom fields, stock-location mapping, and service module configuration in Dolibarr.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Tuhund.
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