ERP migration

Migrate from EF Enterprise to Dolibarr ERP

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

EF Enterprise logo

EF Enterprise

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

50%

6 of 12

objects map 1:1 between EF Enterprise and Dolibarr ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from EF Enterprise to Dolibarr is a platform-category migration: EF Enterprise is a Salesforce-built exhibit and event management system with a top-level Exhibition object containing Booths and linked Sponsors, while Dolibarr is a modular open-source ERP-CRM that uses llx_projet for projects, llx_societe for third parties, llx_product for products, and llx_societe_contact for people records. The two systems share no common API or data model lineage, so every object mapping requires a structural translation. We extract the EF Enterprise Salesforce schema during discovery to identify undocumented custom fields for exhibitor contract terms and sponsor tier flags, then recreate equivalent Dolibarr extrafield definitions before loading data. We disable Salesforce badge-print triggers before migration to prevent duplicate badge generation at cutover, and we surface all inactive EF Enterprise records so the customer decides whether each one migrates, is skipped, or is reassigned. Workflows, automations, and Apex triggers built inside EF Enterprise do not migrate; we deliver a written inventory of every automation requiring rebuild in Dolibarr's built-in workflow engine or a third-party module.

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

EF Enterprise logo

EF Enterprise

What's pushing teams away

  • The platform has minimal public documentation and few independent reviews, making it difficult for teams to evaluate fit or troubleshoot issues before committing.
  • No free tier or sandbox environment is advertised, so prospects must contact sales before evaluating the platform against alternatives like Cvent or Eventbrite.
  • Smaller event teams report that the Salesforce-native UX creates unnecessary overhead compared to purpose-built event platforms with simpler interfaces.
  • The niche focus means third-party integrations beyond Salesforce AppExchange are limited, and custom API work is required for non-Salesforce ticketing or badge-printing systems.

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

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

EF Enterprise

Exhibition

maps to

Dolibarr ERP

Project (llx_projet)

1:1
Fully supported

EF Enterprise Exhibitions (event name, dates, venue, status) map to Dolibarr llx_projet records. We extract the Exhibition name, start_date, end_date, and venue into Dolibarr extrafield columns on llx_projet (ef_exhibition_start, ef_exhibition_end, ef_venue) because Dolibarr's native Project fields cover only title, description, and status. Exhibition status (Draft, Active, Archived) maps to Dolibarr Project status (0=Open, 1=Closed, -1=Not started) via a status lookup table created during schema design. Exhibition is created first in the migration sequence so that its project_id (fk_projet) is available as a parent reference for Booths and Sessions.

EF Enterprise

Booth

maps to

Dolibarr ERP

Product (llx_product) + Warehouse (llx_entrepot)

1:many
Fully supported

EF Enterprise Booths (booth number, size, zone, per-booth pricing) map to Dolibarr llx_product records of type Service with extrafields for booth number, zone, and size. If the destination uses physical booth inventory tracking, we also create llx_entrepot records for venue zones and llx_product_stock entries per booth. Per-booth pricing migrates to llx_product.sellprice (for paid booths) or is flagged as Complimentary via an extrafield. Booth-Exhibition parent relationships are resolved via llx_projet.ref during migration so that each product is linked to the correct Dolibarr project as a WhatId equivalent.

EF Enterprise

Sponsor

maps to

Dolibarr ERP

Third Party (llx_societe)

1:1
Fully supported

EF Enterprise Sponsors (company name, tier, booth linkage) map to Dolibarr llx_societe records with extrafields for sponsor_tier (Gold, Silver, Bronze) and linked_booth_id. The sponsor's tier is stored in EF Enterprise as a custom Salesforce picklist; we recreate it as a Dolibarr extrafield picklist on llx_societe with equivalent values. Sponsors linked to specific Booths receive a llx_product reference via an extrafield column (ef_linked_booth_product) so that the booth-sponsor relationship is preserved. Sponsor contact persons (if any exist as separate Salesforce Contacts) migrate to llx_socpeople linked to the llx_societe sponsor record.

EF Enterprise

Attendee Registration

maps to

Dolibarr ERP

Contact (llx_societe_contact)

1:1
Fully supported

EF Enterprise Attendee Registrations (contact reference, session selections, badge type) map to Dolibarr llx_societe_contact records. The attendee's contact data (name, email, phone) is extracted from the linked Salesforce Contact and inserted as a llx_societe_contact entry. Session selections are stored as tags on the contact record using llx_categorie_contact and Dolibarr's category system, with a custom tag taxonomy built from the source session list. Badge type migrates to an extrafield ef_badge_type on llx_societe_contact. We do not migrate the custom registration-type fields and early-bird pricing flags that EF Enterprise stores as Salesforce custom fields without a schema export from the source org.

EF Enterprise

Session

maps to

Dolibarr ERP

Task (llx_projet_task)

1:many
Fully supported

EF Enterprise Sessions (associated with Exhibitions, capacity limits, track classification) map to Dolibarr llx_projet_task records under the corresponding llx_projet Exhibition project. Multi-track sessions (sessions that run concurrently across different tracks within one exhibition) are flattened into individual llx_projet_task rows because Dolibarr's task model does not have a native track grouping concept; we add a extrafield ef_session_track to preserve the track classification. Session capacity limits migrate as task.fk_task_parent references or as an extrafield ef_capacity for informational purposes in Dolibarr's task view.

EF Enterprise

Badge Record

maps to

Dolibarr ERP

Contact extrafield (ef_badge_record on llx_societe_contact)

1:1
Fully supported

EF Enterprise Badge Records (attendee type, access levels, printing status) are stored as extrafields on the migrated llx_societe_contact records rather than as standalone Dolibarr objects, because Dolibarr does not have a native badge object. We create extrafield columns ef_badge_type, ef_access_level, and ef_print_status on llx_societe_contact and populate them from the source badge record data. Salesforce badge-print triggers that auto-generate badge print jobs on Attendee Registration insert are disabled before migration to prevent duplicate print jobs from firing during the batch load.

EF Enterprise

User and Owner Assignment

maps to

Dolibarr ERP

User

1:1
Fully supported

EF Enterprise Owner records (Salesforce Users assigned to Exhibitions, Booths, and Sponsors) are mapped to Dolibarr User accounts (llx_user). We resolve by email match. Any EF Enterprise Owner without a matching Dolibarr User is held in a reconciliation queue and the customer's Dolibarr admin provisions the corresponding user before the migration resumes. Inactive Salesforce Users (archived) are flagged for reassignment review during discovery rather than migrated as active Dolibarr users.

EF Enterprise

Attachment

maps to

Dolibarr ERP

Document (llx_ecm_files / llx_document)

1:1
Fully supported

EF Enterprise Attachments linked to Exhibitions, Booths, and Sponsors (typically exhibitor contract PDFs, floor plan images, sponsor logos) are exported from Salesforce ContentDocument via the Salesforce API and uploaded into Dolibarr's documents directory tree (documents/ef_migration/{object_type}/{record_id}/). We preserve the original filename and file type. Dolibarr's ECM module (Menu Home - Documents) indexes the migrated files and links them to the corresponding Dolibarr records via llx_ecm_files entries.

EF Enterprise

Tag and Custom Properties

maps to

Dolibarr ERP

Category (llx_categorie) + Multi-select extrafield

lossy
Fully supported

EF Enterprise uses a mix of Salesforce standard tags and custom property sets for exhibitor classification. We export the full tag taxonomy (exhibitor type, booth classification, sponsor category, session track, attendee type) and recreate it in Dolibarr as llx_categorie records under the appropriate category types (Category, Contact, Product, Project). Duplicate tags are merged at migration time using a deduplication table. If any tag taxonomy exceeds Dolibarr's native category depth, we use a multi-select extrafield on the target object instead.

EF Enterprise

Custom Objects

maps to

Dolibarr ERP

Custom tables via Dolibarr extrafields

lossy
Not supported

EF Enterprise custom objects for exhibitor contracts, floor plans, and lead retrieval are not migratable without a direct schema export from the source Salesforce org because these objects are not discoverable via the standard REST API without metadata access. We request a Salesforce schema export during discovery. If provided, we recreate the custom object schema in Dolibarr using extrafield definitions on the nearest native Dolibarr object (e.g., exhibitor contract PDFs linked to llx_societe as document entries). Without a schema export, custom objects are flagged as unsupported and excluded from the migration scope.

EF Enterprise

Exhibition Status and Archive Flag

maps to

Dolibarr ERP

Project status (llx_projet.statut)

lossy
Fully supported

EF Enterprise stores deprecated exhibitions as inactive records (a common Salesforce soft-delete pattern) rather than deleting them. We surface the full inactive Exhibition list during discovery review. Active Exhibitions map to Dolibarr project.statut = 0 (Open). Archived exhibitions map to project.statut = 1 (Closed) with an extrafield ef_archived__c = 1 to distinguish true archive state from normal closure. The customer decides for each inactive Exhibition whether it migrates as Closed or is excluded.

EF Enterprise

Exhibitor Contract Terms

maps to

Dolibarr ERP

Third Party extrafield (llx_societe_extrafields)

lossy
Fully supported

EF Enterprise uses undocumented Salesforce custom fields to store exhibitor contract terms, ROI tracking values, and booth pricing tier flags. Without a schema export from the source org, these fields are not discoverable via the public API. We request a Salesforce schema export during discovery and validate every custom field before building the migration map. If schema access is unavailable, we migrate only standard fields and flag the custom fields as unmigrated in the discovery report. With schema access, we recreate each custom field as a named extrafield column on llx_societe_extrafields and populate it during the Sponsor migration.

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.

EF Enterprise logo

EF Enterprise gotchas

High

Undocumented custom Salesforce fields are not migratable by default

Medium

Archived (inactive) records behave differently from deleted records

Medium

Badge print triggers fire on record insert, risking duplicate badges at cutover

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

  • Undocumented custom Salesforce fields are not migratable without schema export

    EF Enterprise extends the standard Salesforce schema with custom fields for exhibitor contract terms, sponsor ROI tracking, and booth pricing tiers. These fields are not discoverable via the public API without a Salesforce schema export (the field ID and API name mapping must come from within the source org). We request a Salesforce schema export during discovery and validate every custom field before building the migration map. If the customer cannot provide schema access, we flag custom field objects as unsupported and migrate only standard fields. This is a blocking issue for teams that rely heavily on exhibitor contract data stored in custom fields because that data will not appear in Dolibarr without a schema mapping.

  • Dolibarr extrafields use per-table column storage unlike Salesforce's flexible field model

    Dolibarr's extrafield system creates a separate llx_{object}_extrafields table with column-per-field rather than a key-value store. Each extrafield column is added via Dolibarr's module descriptor or admin interface before migration begins. The migration script must be aware of the extrafield column names and types at migration time, not after. If EF Enterprise has more than 20 custom fields, we create the extrafield schema in a pre-migration step and validate the Dolibarr target instance before loading any records. This differs from Salesforce where custom fields can be created and referenced dynamically.

  • Badge print triggers fire on record insert and will generate duplicate badges at cutover

    Many EF Enterprise implementations have Salesforce Flow or Apex triggers that auto-generate badge print jobs when an Attendee Registration record is inserted or updated. During migration, we disable all outbound badge-print triggers before loading attendee records and re-enable them only after a manual post-load verification step. This prevents a batch of migrated attendees from inadvertently generating print jobs at cutover. If the customer's Dolibarr instance has a third-party badge-print module activated, we also document the equivalent trigger-disabling steps for that module before the attendee migration phase.

  • Dolibarr's REST API has lower throughput than Salesforce Bulk API

    Dolibarr's REST API is not designed for high-volume batch ingestion. Rate limits and response time vary by hosting configuration (self-hosted on shared hosting is slower than a dedicated VPS). For migrations exceeding 10,000 records, we use Dolibarr's CSV import mechanism via the import.php endpoint or direct SQL INSERT with batch chunking rather than individual REST API calls, which would be prohibitively slow and risk timeouts. We validate the target Dolibarr instance's API throughput during the sandbox phase before committing to the production migration approach.

  • Archived (inactive) records must be explicitly decided during discovery

    EF Enterprise marks deprecated exhibitor records as inactive rather than deleting them, a common Salesforce pattern. Inactive records are included in the standard export unless filtered. We surface the full inactive record list (Exhibitions, Booths, Sponsors, and Attendees) during the discovery review so the customer can decide whether to migrate each record as a closed/archived Dolibarr entry, skip it, or reassign ownership. Without this decision, inactive records silently land in Dolibarr as active entries or cause orphaned parent-child relationships that break the exhibition-booth-sponsor hierarchy.

Migration approach

Six steps for a successful EF Enterprise to Dolibarr ERP data migration

  1. Discovery and EF Enterprise schema extraction

    We audit the source EF Enterprise Salesforce org: we request a full schema export (field IDs, API names, data types, and picklist values) from the customer, extract record counts for Exhibitions, Booths, Sponsors, Attendee Registrations, Sessions, and Badge Records, and identify all active Salesforce Flow and Apex triggers. We also extract the Salesforce ContentDocument library for attachments. The schema export is the gating item; without it, custom field mapping is not possible. We surface inactive records (archived Exhibitions, archived Sponsors, inactive Booths) and deliver the full record list for customer review before any migration design begins.

  2. Dolibarr target schema design and extrafield creation

    We configure the destination Dolibarr instance: we enable the required modules (Third Parties, Products, Projects, Tasks, Contacts, Categories, ECM/Documents, and any relevant third-party modules), create all extrafield columns on llx_societe_extrafields (sponsor tier, exhibitor contract fields), llx_projet_extrafields (venue, exhibition dates, status), llx_product_extrafields (booth number, zone, size, linked sponsor), llx_projet_task_extrafields (track, capacity), and llx_societe_contact_extrafields (badge type, access level, print status). We configure llx_categorie entries for the full tag taxonomy from the source. The extrafield schema is deployed into a Dolibarr sandbox instance first for validation before production migration begins.

  3. Sandbox migration and reconciliation

    We run a full migration into the Dolibarr sandbox instance using production-equivalent data volume. The customer reconciles record counts (Exhibitions in llx_projet, Booths in llx_product, Sponsors in llx_societe, Attendees in llx_societe_contact, Sessions in llx_projet_task), spot-checks relationship integrity (each Booth's linked Exhibition project, each Sponsor's linked Booth product, each Attendee's linked Sessions via tags), and verifies that custom field data populated correctly from the schema-mapped Salesforce fields. Any mapping corrections are documented and applied to the production migration script before the sandbox is signed off.

  4. Badge print trigger disablement and owner reconciliation

    We disable all Salesforce Flow and Apex triggers related to badge printing before migrating any Attendee Registration records. We also disable any Dolibarr badge-print automation module triggers if one is installed. Simultaneously, we reconcile EF Enterprise Owner IDs against Dolibarr User accounts by email. Any EF Enterprise Owner without a matching Dolibarr User goes to a reconciliation queue for the customer's admin to provision. Migration of Exhibitions, Booths, Sponsors, and Sessions can proceed during owner reconciliation; Attendee migration waits until owner resolution is complete because attendee records may be owner-assigned.

  5. Production migration in dependency order

    We run production migration in record-dependency order: llx_projet (Exhibitions first, as the parent for Booths and Sessions), llx_societe (Sponsors), llx_product (Booths linked to the llx_projet Exhibition records and linked to sponsor llx_societe records via extrafields), llx_projet_task (Sessions linked to their parent Exhibition project), llx_societe_contact (Attendees linked to their Exhibition project and tagged with session categories), and llx_ecm_files (Attachments linked to the correct Dolibarr records). Each phase emits a row-count reconciliation report before the next phase begins. We use batch CSV import or SQL INSERT with chunking rather than individual REST API calls for performance.

  6. Cutover, validation, and automation inventory handoff

    We freeze EF Enterprise writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable Dolibarr as the system of record. We re-enable badge-print triggers in both the source (now read-only) and destination after manual post-load verification confirms no duplicate print jobs were generated. We deliver the automation inventory document listing every Salesforce Flow and Apex trigger from EF Enterprise with a recommended Dolibarr workflow rebuild approach (Dolibarr's native workflow engine or a third-party automation module). We support a one-week hypercare window for reconciliation issues. Workflow and automation rebuild is outside standard migration scope and is a separate engagement.

Platform deep dives

Context on both ends of the pair

EF Enterprise logo

EF Enterprise

Source

Strengths

  • Flat-rate pricing avoids per-seat billing surprises for seasonal event staff
  • Built on Salesforce, enabling native integration with existing Salesforce CRM data
  • Exhibition-booth-sponsor object hierarchy reflects real-world event structure
  • Supports Apex and Salesforce Flow extensibility for custom automations
  • Salesforce AppExchange availability for approved third-party integrations

Weaknesses

  • Minimal public documentation and low web visibility makes evaluation difficult
  • No advertised free trial or sandbox limits pre-purchase evaluation
  • Niche focus means limited third-party integrations beyond Salesforce ecosystem
  • Smaller teams may find Salesforce-native UX overengineered for simple events
  • Sparse independent reviews make competitive assessment challenging
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 EF Enterprise and Dolibarr ERP.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between EF Enterprise 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

    EF Enterprise: Salesforce API governor limits apply (varies by Salesforce edition).

  • Data volume sensitivity

    A

    EF Enterprise exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most EF Enterprise to Dolibarr migrations land between three and five weeks for accounts with under 5,000 Exhibitions, Booths, and Sponsors combined and no custom Salesforce object extensions. Migrations exceeding 20,000 records, with extensive custom field hierarchies (more than 20 custom fields per object), multi-exhibition data spanning several years, or a large badge record history move into seven to eleven weeks because of Dolibarr extrafield schema creation, Salesforce schema extraction coordination, and per-record booth-sponsor relationship resolution. The gating item is always the Salesforce schema export; without it, custom field mapping is not possible and the migration scope must be reduced.

Adjacent paths

Related migrations to explore

Ready when you are

Move from EF Enterprise.
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