ERP migration

Migrate from PeppyBooks to Dolibarr ERP

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

PeppyBooks logo

PeppyBooks

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

86%

12 of 14

objects map 1:1 between PeppyBooks and Dolibarr ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from PeppyBooks to Dolibarr is a migration from a US-centric cloud ERP with tier-gated modules to an open-source, self-hosted ERP with a modular architecture. PeppyBooks organizes data across accounting and CRM layers with a customizable Chart of Accounts, while Dolibarr uses a module activation model where you enable only the features you need. The primary technical challenge is that PeppyBooks does not publish a public API with documented authentication or rate limits, which means we request CSV exports or negotiate direct database access. We then map PeppyBooks tax codes (US sales tax, Malaysian SST) to Dolibarr's tax system, which supports VAT, GST, and custom tax rules but requires manual configuration per tax authority. Dolibarr's third-party model consolidates what PeppyBooks separates into Clients and Vendors into a single llx_societe table with a Prospect/Customer/Supplier type flag, so we apply a type split during transform. Inventory (Products, SKUs, Warehouses), Purchase Orders, and Sales Orders map to Dolibarr's products and orders modules, which are activated separately in the Dolibarr module configuration. We do not migrate PeppyBooks Workflows, automations, or report configurations; we deliver a written inventory of these for the customer's admin to rebuild in Dolibarr.

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

PeppyBooks logo

PeppyBooks

What's pushing teams away

  • Customers outgrow the platform when they need multi-entity consolidation, advanced job costing, or ERP features like fixed-asset depreciation that PeppyBooks does not offer at any tier.
  • Lack of transparent public API documentation makes integrations with custom tools, e-commerce platforms, or payment processors difficult to maintain without developer assistance.
  • Pricing increases and tier-gated features force customers to upgrade as their business grows, and some report that essential features remain locked behind higher tiers even for legitimate operational needs.
  • Users with non-US tax requirements — particularly businesses with complex VAT reverse-charge scenarios or multi-state sales tax nexus — find PeppyBooks' tax compliance tools insufficient compared to purpose-built tax automation platforms.

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

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

PeppyBooks

Chart of Accounts

maps to

Dolibarr ERP

Accounting Account (llx_accounting_account)

1:1
Fully supported

PeppyBooks maintains a hierarchical COA with account codes, types (Asset, Liability, Equity, Revenue, Expense), and tax-mapping attributes. We export the full COA as a structured list and create matching accounts in Dolibarr's llx_accounting_account table. Account code lengths, naming conventions, and parent-child hierarchies vary by PeppyBooks customer, so we either merge source accounts into existing Dolibarr default accounts or create new ones. The source account name is preserved as the account label to assist accountants during reconciliation. This migration runs first so that account codes are available for all downstream transaction mapping.

PeppyBooks

Clients

maps to

Dolibarr ERP

Third Party - Customer (llx_societe, Tiers type = Customer)

1:1
Fully supported

PeppyBooks Clients with contact details, billing address, payment terms, and opening balance map to Dolibarr llx_societe records with the Tiers type flag set to Customer. PeppyBooks opening balance migrates as an opening balance entry in Dolibarr's accounting journal. Client-specific custom fields migrate to llx_societe_extrafields. PeppyBooks allows multiple contacts per Client; Dolibarr stores contacts separately in llx_socpeople and links via fk_soc, so we create one primary contact and flag additional contacts for manual linking post-migration.

PeppyBooks

Vendors

maps to

Dolibarr ERP

Third Party - Supplier (llx_societe, Tiers type = Supplier)

1:1
Fully supported

PeppyBooks Vendors mirror the Client structure with address, payment terms, and opening balance. They map to Dolibarr llx_societe with Tiers type = Supplier. Outstanding AP balances migrate as opening balance entries in the accounting journal linked to the appropriate vendor account. PeppyBooks Vendors and Clients are separate entity types; in Dolibarr they share the llx_societe table with a type distinction, so we split the PeppyBooks export by type flag during the transform step before loading.

PeppyBooks

Invoices (Customer)

maps to

Dolibarr ERP

Invoice (llx_facture)

1:1
Fully supported

PeppyBooks invoices linked to Clients, line items, tax codes, and COA revenue accounts map to Dolibarr llx_facture (type = Invoice). We export invoice status (Draft, Sent, Paid, Overdue), due dates, payment records, and multi-currency amounts with their original exchange-rate context. PeppyBooks tax codes (US sales tax rates, SST codes) map to Dolibarr tax rules configured per tax authority before invoice import. Invoice PDFs migrate as Dolibarr document attachments linked to llx_facture.

PeppyBooks

Expenses

maps to

Dolibarr ERP

Supplier Invoice (llx_facture, type = Invoice_Fournisseur)

1:1
Fully supported

PeppyBooks expense records capture date, vendor, amount, COA debit account, and tax treatment. They map to Dolibarr llx_facture with type = Invoice_Fournisseur (Supplier Invoice). Each expense line item is linked to the PeppyBooks vendor now mapped as a Dolibarr supplier. Tax code mapping from PeppyBooks to Dolibarr tax rules is applied before expense import to ensure correct VAT or sales tax posting.

PeppyBooks

Manual Journals

maps to

Dolibarr ERP

Banking / Financial Account (llx_bank) or Journal Entry

1:1
Mapping required

PeppyBooks manual journal entries support multi-line debits and credits with optional references to invoices or expenses. We export the full journal entry including all line items and map them to Dolibarr llx_bank (for bank account movements) or llx_accountrprow (accounting ledger rows) depending on whether the journal entry represents a bank transaction or a pure ledger posting. PeppyBooks journal entry naming conventions are preserved as labels to aid reconciliation.

PeppyBooks

Products

maps to

Dolibarr ERP

Product or Service (llx_product)

1:1
Fully supported

PeppyBooks Product master records include name, SKU (hs_sku equivalent), unit price, cost, tax category, and stock-on-hand (Premium and above). They map to Dolibarr llx_product with type = Product (for inventory) or Service. PeppyBooks tax category maps to a Dolibarr product tax group. Stock-on-hand migrates with the product record; warehouse assignments (Premium tier) map to Dolibarr warehouse stock entries in llx_product_stock per warehouse location.

PeppyBooks

Warehouses (Premium tier)

maps to

Dolibarr ERP

Warehouse (llx_entrepot)

1:1
Fully supported

PeppyBooks multi-store warehousing is available on Premium and above. Warehouse location records map to Dolibarr llx_entrepot. Stock levels per product per warehouse migrate to llx_product_stock entries linked to the corresponding warehouse. If PeppyBooks tracks batch numbers, these map to Dolibarr's lot tracking module if activated; otherwise batch data is preserved as a product custom field.

PeppyBooks

Purchase Orders (Premium tier)

maps to

Dolibarr ERP

Purchase Order (llx_commande_fournisseur)

1:1
Fully supported

PeppyBooks Purchase Orders (headers and line items) at Premium tier map to Dolibarr llx_commande_fournisseur. PO workflow states (Open, Closed, Partial) map to Dolibarr status values (Draft, Validated, Approved, Ordered, Received). Line items link to the mapped Supplier third party and Product records. PeppyBooks PO-to-invoice conversion logic does not map directly to Dolibarr's purchasing workflow; we flag any partially-received POs for manual resolution by the purchasing team.

PeppyBooks

Sales Orders

maps to

Dolibarr ERP

Customer Order (llx_commande)

1:1
Mapping required

PeppyBooks Sales Orders with headers, line items, and fulfillment status map to Dolibarr llx_commande. Order-to-invoice conversion logic varies; PeppyBooks allows direct invoice creation from orders, which maps to Dolibarr's order-to-invoice action. Order status (Draft, Sent, Fulfilled, Cancelled) maps to Dolibarr status values. PeppyBooks custom order fields migrate to llx_commandedet_extrafields.

PeppyBooks

Leads

maps to

Dolibarr ERP

Lead (llx_societe prospects)

1:many
Mapping required

PeppyBooks CRM Leads with source, status, owner, and custom fields map to Dolibarr's llx_societe with Tiers type = Prospect. PeppyBooks lifecycle statuses (New, Contacted, Qualified, Lost) map to Dolibarr ProspectStatus values. PeppyBooks allows multiple contacts per Lead; Dolibarr stores contacts separately, so we create a primary contact and flag additional contacts. PeppyBooks Lead scores and custom fields migrate to llx_societe_extrafields.

PeppyBooks

Deals / Pipeline Stages

maps to

Dolibarr ERP

Opportunities (llx_projet with Opportunity flag) or Commercial Proposals

lossy
Mapping required

PeppyBooks Deals carry value, stage, expected close date, and associated contact/company. Dolibarr does not have a native CRM Opportunity object in all versions; we map Deals to llx_projet records with the Opportunity flag (Projet type = Opportunity) if the Project module is activated with the Opportunity feature, or to Dolibarr Commercial Proposals (llx_propal) for sales pipeline tracking. PeppyBooks pipeline stage names are fully customizable and map to Dolibarr project status or proposal status values configured during schema setup.

PeppyBooks

Activities (calls, emails, notes, tasks)

maps to

Dolibarr ERP

Interventions / Notes / Tasks (llx_actioncomm, llx_note, llx_task)

1:1
Fully supported

PeppyBooks Activity records capture calls, emails, notes, and tasks linked to contacts or deals. They map to Dolibarr llx_actioncomm (for calendar events and calls), llx_note (for text notes), and llx_task (for task records). Activity type taxonomy differs; we classify PeppyBooks call records as Dolibarr Interventions (llx_fichinter), emails as Notes with an email flag, and tasks as llx_task. Historical timestamps are preserved as ActivityDate on the Dolibarr record. PeppyBooks CRM attachment links migrate as Dolibarr document attachments.

PeppyBooks

Projects (Professional plan)

maps to

Dolibarr ERP

Project (llx_projet)

1:1
Fully supported

PeppyBooks Projects, Milestones, and Tasks are available on the Professional plan tier. They map to Dolibarr llx_projet with the Project type (not Opportunity). Milestones map to Dolibarr Task parent records, and PeppyBooks Tasks map to Dolibarr child Task records. PeppyBooks Resource Allocation and Time Spent tracking fields migrate to Dolibarr llx_projet_task_time if the TimeSpent module is activated; otherwise they are preserved in project custom fields for manual time entry.

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.

PeppyBooks logo

PeppyBooks gotchas

High

No published public API with documented auth or rate limits

High

Tier-gated features create schema gaps in migrated data

Medium

Malaysia SST and multi-regime tax handling complicates transaction migration

Medium

Chart of Accounts is customizable and may not align with destination defaults

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

  • PeppyBooks has no public API requiring CSV export or DB access

    PeppyBooks does not publish a public API reference with authentication method, endpoint list, or rate-limit specs. The marketing materials mention APIs for the Customer Online Order Portal, but no standalone API documentation is publicly available. This prevents programmatic authentication to pull data during migration scoping. We handle this by requesting CSV exports from PeppyBooks (where available per tier) and negotiating direct database access where the customer has appropriate database credentials. PeppyBooks tier-gated features mean some data (inventory, projects) is only available for export on Premium and Professional tiers respectively. We surface tier limitations at scoping and plan the export scope against the customer's committed PeppyBooks tier.

  • Dolibarr module activation is prerequisite for object coverage

    Dolibarr's feature set depends entirely on which modules are activated in the destination installation. A default Dolibarr installation may not include invoicing, inventory, purchasing, or project management modules. Before migration begins, we confirm which Dolibarr modules are active or will be activated: Accounting (for Chart of Accounts), Third Parties (for Clients and Vendors), Products (for inventory), Bills (for invoices), Purchases (for POs), Projects (for Deals and Projects), and Interventions (for activity records). Module activation is a pre-migration configuration step that the customer's Dolibarr admin performs; we cannot import into modules that are not enabled.

  • PeppyBooks tier-gated schema creates export gaps

    Inventory tracking (Products, SKUs, Warehouses) is only available on PeppyBooks Premium and above. Projects and time tracking are a separate Professional plan. Multi-branch accounting and manufacturing are Ultimate only. When migrating from PeppyBooks, records tied to locked features cannot be exported without the customer upgrading first. We surface this at scoping and scope the migration against the tier the customer commits to before work begins. Any data that exists only in locked tiers is documented as a gap in the migration inventory with an upgrade recommendation.

  • US sales tax codes and Malaysian SST require manual tax authority setup in Dolibarr

    PeppyBooks carries US sales tax codes and Malaysian SST tax codes that do not have direct Dolibarr equivalents. Dolibarr's tax system supports VAT, GST, and custom tax rules, but US state sales tax rates and SST reverse-charge rules require manual configuration per tax authority in Dolibarr's Tax Categories and Rules setup. We map each PeppyBooks tax code to a Dolibarr tax rule stub and flag the configuration for the customer's admin to complete with the correct rates and accounts before the migrated transactions are considered tax-compliant.

  • PeppyBooks Clients and Vendors split to Dolibarr single third-party table

    PeppyBooks maintains separate Client and Vendor entity types. Dolibarr uses a single llx_societe table with a Tiers type flag (Customer, Supplier, Prospect) rather than separate tables. During transform, we split the PeppyBooks export by entity type and set the appropriate flag on each Dolibarr third-party record. Any PeppyBooks record that acts as both a Client and a Vendor requires two Dolibarr records (one as Customer, one as Supplier) with a link established via the company name match.

Migration approach

Six steps for a successful PeppyBooks to Dolibarr ERP data migration

  1. Discovery and tier audit

    We audit the source PeppyBooks account across tier (Growth/Premium/Ultimate/Professional), enabled modules, custom Chart of Accounts structure, third-party record count (Clients and Vendors), transaction volume (invoices, expenses, journal entries), inventory records (Products, SKUs, Warehouses), and open purchase and sales orders. We also identify any PeppyBooks tier-gated data that requires an upgrade before export. On the destination side, we confirm the Dolibarr installation version, active modules, and hosting environment (self-hosted VPS, managed LAMP, or Dolibarr Cloud). The discovery output is a written migration scope, an export checklist per PeppyBooks tier, and a Dolibarr module activation checklist for the customer's admin.

  2. Export request and data extraction

    We request CSV exports from PeppyBooks for each object identified in scoping. Where CSV export is not available for tier-gated objects (inventory on Growth tier, projects on Growth tier), we coordinate with the customer to either upgrade PeppyBooks temporarily for export or provide direct database credentials if the customer has self-hosted PeppyBooks or database access. We extract the Chart of Accounts first as a structured list, followed by third-party records (Clients and Vendors), then transaction records (invoices and expenses), then inventory and orders. Each export is validated against a row-count reconciliation report before transformation begins.

  3. Schema design and tax authority configuration

    We design the destination Dolibarr schema by mapping the PeppyBooks COA to Dolibarr llx_accounting_account, configuring the PeppyBooks tax codes as Dolibarr tax rules, and setting up the Dolibarr third-party type flags (Customer, Supplier, Prospect) based on the PeppyBooks entity split. We pre-create any missing Dolibarr modules not yet activated by the customer's admin, including Products, Purchases, Projects, and Interventions. The customer configures US sales tax rates or SST tax authorities in Dolibarr's Tax Categories before transaction import; we document the tax rule mapping as a configuration guide with each PeppyBooks tax code as a stub entry.

  4. Data transformation and import sequencing

    We run data transformation in dependency order: COA accounts first (so account codes are available for transaction mapping), then third parties (Clients and Vendors split by type flag), then Products and Warehouses (for inventory), then open purchase orders and sales orders, then invoices and expenses (with tax code stubs resolved to Dolibarr tax rule IDs), then activity records. PeppyBooks multi-currency amounts are preserved with their original exchange-rate context in custom fields until the customer configures the Dolibarr multi-currency module and exchange rate table. We load data through Dolibarr's native CSV import wizard for standard objects and through direct database insert for custom fields and lookup resolutions that the import wizard cannot handle.

  5. Sandbox validation and reconciliation

    We run a full migration into a Dolibarr test environment (a separate database or a staged copy of the destination installation) before production import. The customer reconciles record counts (Accounts, Third Parties, Products, Invoices, Expenses, Orders), spot-checks 25-50 random records against the PeppyBooks source, and validates that PeppyBooks tax codes resolved to the correct Dolibarr tax postings. Any mapping corrections, tax rule gaps, or module activation issues are resolved in the test environment before production migration begins.

  6. Production cutover and automation inventory handoff

    We freeze PeppyBooks writes during the cutover window, run a final delta migration of any records modified since the test migration, then point the customer's team to Dolibarr as the system of record. We deliver a written inventory of PeppyBooks Workflows, automations, and report configurations that do not migrate to Dolibarr, with a per-item description of the original behavior and a recommended Dolibarr equivalent (Dolibarr's workflow module or manual process guidance). We do not rebuild PeppyBooks automations as Dolibarr workflows inside the migration scope; that is a separate engagement or an internal admin task. We support a one-week post-cutover window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

PeppyBooks logo

PeppyBooks

Source

Strengths

  • US-aligned Chart of Accounts pre-built for IRS and sales-tax reporting requirements.
  • Bundled CRM and accounting eliminates separate system purchases and data re-entry for small businesses.
  • Tiered inventory management scales from simple product tracking to multi-warehouse SKU and batch management.
  • Multi-currency handling with configurable exchange rate management across transactions.
  • Cloud-based access with user-role permissions and read-only accountant sharing built in.

Weaknesses

  • No publicly documented public API with published authentication, rate limits, or endpoint schema, limiting programmatic integrations and migration tooling.
  • Manufacturing, lot tracking, and multi-branch accounting are locked behind the highest Ultimate tier, pricing out smaller businesses with those needs.
  • Project management features are a separate Professional tier add-on not included in the core accounting or CRM plans.
  • Tax compliance tools are US and Malaysia SST/GST focused; multi-state US sales tax automation and EU VAT are not documented as built-in features.
  • No published data export or backup mechanism in the marketing materials, which raises data-portability concerns for customers considering migration.
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 PeppyBooks 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

    PeppyBooks: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your PeppyBooks 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 10,000 third-party records, 5,000 invoices, and a standard COA with no tier-gated export gaps. Migrations with large inventory records (Products, SKUs, multiple Warehouses), multi-currency transaction history, open purchase orders, PeppyBooks tier-gated schema gaps requiring customer upgrade coordination, or new Dolibarr hosting setup move to eight to twelve weeks because of export coordination, tax authority configuration, and test environment reconciliation.

Adjacent paths

Related migrations to explore

Ready when you are

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