ERP migration

Migrate from Grade to Dolibarr ERP

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

Grade logo

Grade

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

92%

11 of 12

objects map 1:1 between Grade and Dolibarr ERP.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Grade is a niche ERP platform with no documented API, no publicly available object model, and no confirmed export mechanism in the research record. Any migration from Grade to Dolibarr begins with a mandatory schema discovery phase where we inspect a live Grade instance to reverse-engineer its database tables, custom field definitions, and relationship keys before designing the Dolibarr destination schema. Dolibarr is an open-source, modular ERP and CRM with well-documented llx_* table architecture that covers third parties, contacts, products, invoices, orders, projects, contracts, and stock. We migrate records in dependency order—third parties first, then contacts, then financial documents, then activity history—using Dolibarr's native import module for flat files and direct SQL injection for bulk operations where performance requires it. Workflows, automations, and custom modules from Grade do not migrate; we deliver a written inventory for your admin to rebuild in Dolibarr's module 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

Grade logo

Grade

What's pushing teams away

  • Grade is purpose-built for services / agencies — companies that pivot toward manufacturing, retail, or inventory-heavy operations outgrow it because there is no MRP, BOM, or warehouse module.
  • Large enterprises with multi-entity consolidations, intercompany eliminations, and statutory reporting across many tax jurisdictions outgrow the platform's services-shaped object model.
  • Public review presence is thin — there is limited independent G2 / Capterra coverage, which makes procurement comparisons against Odoo, NetSuite, or Workday harder.
  • Regulated industries (banking, healthcare claims, pharma) that require validated environments, deep audit trails, or certified compliance modules will not find Grade fits procurement gates.
  • Pricing tiers per user mean costs grow linearly with team size — large delivery teams sometimes migrate to flat-fee enterprise ERPs once headcount passes a threshold.

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

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

Grade

Third Party / Organization

maps to

Dolibarr ERP

llx_societe (ThirdParty)

1:1
Fully supported

Grade's organizational records map to Dolibarr's llx_societe table. We discover the source column names during the schema discovery phase (mandatory before this mapping can be confirmed). Dolibarr stores the primary contact on each third-party record and supports separate contact sub-records on llx_socpeople. We use the Grade organization name as the nom (company name) field and infer the country code, VAT number, and postal address from any labeled Grade fields. Third parties must import before contacts because llx_socpeople.fk_soc references llx_societe.rowid.

Grade

Contact / Person

maps to

Dolibarr ERP

llx_socpeople (Contact)

1:1
Fully supported

Individual contacts from Grade map to llx_socpeople linked to a parent llx_societe record via fk_soc. We extract first name, last name, email, phone, and role/position from Grade. If Grade stores multiple contact roles per person, we create separate llx_socpeople records and use the llx_element_contact table to manage the many-to-many role linkage to Dolibarr objects (invoices, projects, orders). Dolibarr's contact type (customer, supplier, prospect) is set via the llx_socpeople.prospect, llx_socpeople.client, and llx_socpeople.fournisseur flags.

Grade

Product / Item

maps to

Dolibarr ERP

llx_product (Product or Service)

1:1
Fully supported

Grade products map to llx_product. We discover Grade's product fields (SKU, name, description, unit price, cost price, stock quantity) during the schema discovery phase. Dolibarr distinguishes products with stock tracking (type=0) from services (type=1). If Grade has a stock quantity field, we map it to llx_product.pmp (weighted average cost) and rely on Dolibarr's llx_product_stock table for actual stock levels. Product must exist before any invoice line items reference it.

Grade

Invoice / Bill (Customer)

maps to

Dolibarr ERP

llx_facture (Customer Invoice)

1:1
Fully supported

Grade customer invoices map to llx_facture with faciture=0 (customer invoice, not supplier). We map invoice number to ref, issue date to datef, due date to date_echeance, and total amount to total_ht, total_tva, and total_ttc. The fk_soc field links to llx_societe.rowid. Line items migrate to llx_facturedet with fk_product resolved against the product table. Invoice status (draft, validated, paid, abandoned) maps to Dolibarr's fk_statut field (0-2 range).

Grade

Invoice / Bill (Supplier)

maps to

Dolibarr ERP

llx_facture_fournisseur (Supplier Invoice)

1:1
Fully supported

Grade supplier invoices map to llx_facture_fournisseur. The same field mapping logic applies (datef, date_echeance, total_ht, total_tva, total_ttc) with faciture=1 flag. The fk_soc field links to the supplier's llx_societe record. Supplier invoice lines migrate to llx_facture_fourn_det with product references resolved. If Grade does not distinguish customer from supplier invoices, we flag this for customer confirmation during scoping.

Grade

Quote / Proposal

maps to

Dolibarr ERP

llx_propal (Commercial Proposal)

1:1
Fully supported

Grade quotes or sales proposals map to llx_propal. We map quote number to ref, date to datep, expiry date to date_lim_reglement, and line items to llx_propaldet. The fk_soc links to the customer. Quote status (draft, sent, won, lost) maps to fk_statut (0-3). Dolibarr's proposal can be converted to an invoice directly; we flag this workflow option for the customer admin post-migration.

Grade

Order / Purchase Order

maps to

Dolibarr ERP

llx_commande (Customer Order)

1:1
Fully supported

Grade customer orders map to llx_commande. We map order number to ref, order date to date_commande, expected delivery to date_livraison, and line items to llx_commandedet. The fk_soc field links to the customer. If Grade has purchase orders (supplier orders), these map to llx_commande_fournisseur with a separate import run and fk_soc pointing to the supplier third party.

Grade

Project / Task

maps to

Dolibarr ERP

llx_projet (Project)

1:1
Fully supported

Grade projects map to llx_projet with title, description, date_start, date_end, and budget amounts. We map the project status to fk_statut (0-2 for draft/active/closed). Tasks under a project map to llx_projet_task with fk_projet as the parent reference. If Grade stores task assignments, we resolve the assignee to llx_user.rowid via email matching. Dolibarr's project module must be enabled in Module setup before project data can import.

Grade

Contract / Subscription

maps to

Dolibarr ERP

llx_contrat (Contract)

1:1
Fully supported

Grade contracts or subscriptions map to llx_contrat linked to llx_societe via fk_soc. Contract start date, end date, and terms migrate to the corresponding llx_contrat fields. Line items for recurring services migrate to llx_contratdet. Dolibarr's contract module tracks service line status (in progress, fulfilled, terminated) via fk_statut. The llx_contrat_extrafields table is available for any Grade custom contract fields discovered during schema analysis.

Grade

Expense / Receipt

maps to

Dolibarr ERP

llx_expensereport (Expense Report)

1:1
Fully supported

Grade expense records map to llx_expensereport for the report header and llx_expensereport_det for individual expense lines. Expense date, amount, category, and description migrate to the corresponding fields. If Grade expense records are standalone (not wrapped in a report), we create a single llx_expensereport per record and set status to validated. The linked llx_user.fk_user_author field is resolved via email matching against the Dolibarr user table.

Grade

User / Employee

maps to

Dolibarr ERP

llx_user (Dolibarr User)

1:1
Fully supported

Grade user accounts that represent employees or system operators map to llx_user. We resolve by email address as the dedupe key. The migration user (FlitStack AI's service account) is created in Dolibarr before any data import begins to serve as the fk_user_author on audit fields. Grade users that are purely contact records (no system login) are mapped to llx_socpeople instead. The customer's Dolibarr admin provisions the active user accounts post-migration if Grade user data is incomplete or the password hashes cannot be imported.

Grade

Custom Object / Unknown Entity

maps to

Dolibarr ERP

Dolibarr custom table (llx_extrafields or custom module)

lossy
Fully supported

Grade's undocumented custom objects require discovery before mapping. We inspect the Grade database for tables not matching standard ERP naming conventions, identify foreign key relationships, and either map them to existing Dolibarr modules (Projects, Contracts, Orders) or create a Dolibarr custom table. Custom fields on standard objects (e.g., extra fields on invoices) use Dolibarr's llx_extrafields tables with the pattern llx_[object]_extrafields. The migration does not include custom module code from Grade; only the data migrates if the module structure can be reverse-engineered.

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.

Grade logo

Grade gotchas

High

Cross-module data lineage (time entry -> invoice -> payroll) must be preserved

High

Services-shaped data model does not include inventory or MRP

Medium

Resume files and AI-parsed candidate data are two separate artifacts

Low

Free / discounted tiers (non-profits, Ukrainian companies) carry feature restrictions

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

  • Grade has no documented export API or confirmed data schema

    Web research found no API reference, no documented data model, no CSV export feature, and no pricing or tier documentation for Grade. Any migration must begin with a live-instance schema discovery phase where we inspect Grade's database directly (via database credentials if available, or through Grade's admin export interface if one exists) to reverse-engineer the table names, column names, and relationships. Without this phase, no mapping is confirmable. This discovery phase adds one to two weeks to the project timeline and is scoped as a prerequisite before the actual data migration begins.

  • Dolibarr module activation is required before importing module-specific data

    Dolibarr's modular architecture means that importing project data fails silently if the Projects module is not enabled. We activate the required Dolibarr modules (Third Parties, Products, Invoicing, Projects, Contracts, Stock, HR, Expense Reports) during the schema setup phase before any data import begins. Each module activation may require running the corresponding install SQL script via Dolibarr's /install/ page. The llx_extrafields tables for custom fields are only created after the parent module is enabled and its setup page has been visited at least once by an admin user.

  • Dolibarr SQL migration scripts between versions can fail on database constraints

    Dolibarr's own GitHub repository documents multiple cases where upgrade SQL scripts fail due to key length constraints (InnoDB 767-byte limit on index keys, documented in Dolibarr GitHub issue #16315), foreign key constraint violations (#29775, #30995), and PostgreSQL-specific migration errors (#33587). If the target Dolibarr installation is not at the same version as what the migration was designed for, the database migration scripts may abort mid-upgrade. We resolve this by using a Dolibarr version confirmed stable for the import target, or by applying manual ALTER TABLE corrections documented in the Dolibarr forum before proceeding with data import.

  • Custom fields and cross-object data linkage require llx_element_element resolution

    Dolibarr's llx_element_element table stores all links between objects of different modules (e.g., linking an Invoice to a Project, or an Intervention to a Contact). If Grade stored custom field data that references objects across modules, those cross-references require discovery of Grade's equivalent linkage table during the schema phase. We then recreate the linkage in Dolibarr's llx_element_element with the correct fk_source and fk_target rowid values resolved after the source records have been inserted and their new Dolibarr rowids are known. Without explicit linkage recreation, cross-module relationships are silently lost.

  • Grade workflows, automations, and scheduled tasks do not migrate

    Dolibarr's workflow system uses trigger-based module hooks (e.g., llx_workflow_workflow) and the workflow module must be manually configured per business process. Grade's automations (if any exist) are not migratable as code to Dolibarr. We deliver a written inventory of any discovered Grade workflow rules—trigger conditions, actions, and timing—documented during schema discovery with a Dolibarr equivalent recommendation. The customer's admin rebuilds these in Dolibarr's Workflow module or via custom module development post-migration.

Migration approach

Six steps for a successful Grade to Dolibarr ERP data migration

  1. Schema discovery and Grade instance inspection

    We begin by inspecting a live Grade instance via database credentials (MySQL or PostgreSQL read access) or through any available admin export interface. We enumerate all tables, identify naming conventions, map foreign key relationships, and locate custom field storage. We produce a Grade Data Dictionary document listing every source table, its columns, and its relationships. This phase is mandatory before Step 2 because no reliable mapping can begin without confirmed source schema information. It typically requires one to two weeks and access to Grade's hosting environment or a database backup.

  2. Dolibarr destination setup and module activation

    We provision the Dolibarr instance (self-hosted on the customer's server or via DoliCloud) and activate the required modules based on the discovered Grade schema. We create the custom field structures (llx_extrafields tables) for any Grade custom fields that do not map directly to standard Dolibarr fields. We configure third-party type flags (customer, supplier, prospect) and any required Dolibarr dictionaries (countries, price categories, VAT rules). This phase requires a Dolibarr admin login and runs in parallel with the Grade schema discovery.

  3. Staging migration and record reconciliation

    We run a full migration into a staging Dolibarr instance using a Grade data snapshot. We reconcile record counts (third parties in, contacts in, products in, invoices in) against the source snapshot, spot-check 20-30 random records for field-level accuracy, and verify that cross-object links (invoice-to-third-party, project-to-task) are intact in the llx_element_element table. Any mapping corrections happen in staging before production migration begins. We do not migrate to production until the staging sign-off is received from the customer's designated data owner.

  4. User reconciliation and admin provisioning

    We extract every distinct user and contact reference from Grade's data and match them against the Dolibarr user table. Grade users that represent system operators map to llx_user and require the customer to provision the accounts with correct email and role (sales, admin, readonly). Grade contacts that represent business contacts map to llx_socpeople and are imported during the contact phase. Any orphaned references (Grade users with no matching Dolibarr user) are flagged for manual provisioning before the final production migration run.

  5. Production migration in dependency order

    We run production migration in strict dependency order: third parties (llx_societe) first, then contacts (llx_socpeople with fk_soc resolved), then products (llx_product with price entries), then financial documents (invoices, quotes, orders with fk_soc and product references resolved), then projects and contracts, then activity history, then expense reports. Each phase emits a row-count reconciliation report before the next phase begins. If Grade uses a database not natively supported by Dolibarr's PHP backend, we export to CSV and use Dolibarr's native import module for flat files.

  6. Cutover, final delta, and automation inventory handoff

    We freeze writes to Grade during the cutover window, run a final delta migration capturing any records created or modified during the migration run, then hand over a cutover report with record counts by object and any unresolved items. We deliver the Grade workflow and automation inventory document to the customer's admin for rebuild in Dolibarr. We support a five-business-day hypercare window for reconciliation issues. We do not rebuild Grade workflows as Dolibarr workflows inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Grade logo

Grade

Source

Strengths

  • Projects, Finance, HR / Recruiting, and Sales share one data model — no glue code between modules.
  • 1-2 day deployment is unusually fast for an ERP-class product.
  • EU regional data hosting with GDPR compliance and AES / TLS encryption.
  • AI-powered resume parsing and an AI assistant included in the platform rather than as paid add-ons.
  • Stated 'unlimited integrations' via API, webhooks, and automations covers HubSpot, QuickBooks, Jira, Slack, and Google Workspace.

Weaknesses

  • No inventory, MRP, or BOM modules — limits fit for manufacturing, distribution, or retail.
  • Limited third-party independent reviews on G2 / Capterra makes evaluation harder.
  • Per-user pricing means costs scale linearly with team size.
  • Services-shaped finance module is not a substitute for a full GAAP GL with multi-entity consolidation.
  • Made-in-Ukraine positioning, while a strength for EU buyers, may slow procurement in some enterprise / regulated environments.
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?

Moderate ERP migration. 2 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

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

  • Object compatibility

    D

    2 of 8 objects need a manual workaround.

  • 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

    Grade: Not publicly documented — rate limits are not published on the marketing site..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Grade to Dolibarr migrations land between three and five weeks for organizations under 10,000 records with standard ERP objects (contacts, products, invoices) and a confirmed Grade export path. The mandatory schema discovery phase (one to two weeks) adds to the timeline if Grade's database is not yet accessible for inspection. Migrations with undocumented custom objects, multi-currency invoice structures, large product catalogs (over 5,000 SKUs), or historical transaction volumes exceeding 50,000 rows move to six to ten weeks because of staging reconciliation and Dolibarr module configuration time.

Adjacent paths

Related migrations to explore

Ready when you are

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