ERP migration
Field-level mapping, validation, and rollback between Selly Erp and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
Selly Erp
Source
Dolibarr ERP
Destination
Compatibility
10 of 12
objects map 1:1 between Selly Erp and Dolibarr ERP.
Complexity
BStandard
Timeline
3-6 weeks
Overview
Moving from Selly Erp to Dolibarr is a manual-first migration. Selly Erp publishes no REST or GraphQL API, which means every export requires the customer to perform an in-app CSV or Excel dump before we can begin ingestion. We extract Customers, Contacts, Deals, Pipeline Stages, Invoices, Quotes, Activities, Users, and Custom Fields from those dumps, transform field values to match Dolibarr's schema requirements, and load through Dolibarr's REST API with validation at each stage. Dolibarr's modular architecture means we activate only the modules relevant to the migration scope: ThirdParty, Contact, Commercial Proposals, and Invoices. Workflow automations, quote templates, and reports do not migrate; we deliver written specifications for the customer's admin to rebuild in Dolibarr.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Selly Erp object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Selly Erp
Customer
Dolibarr ERP
ThirdParty
1:1Selly Erp Customer records map to Dolibarr ThirdParty (societe) objects with a direct field-to-field mapping for company name, address, postal code, city, country, phone, email, and VAT number. The customer type distinction (customer versus prospect versus supplier) maps to Dolibarr's Client, Prospect, or Fournisseur classification. Company domain from Selly's website field populates the ThirdParty url. Multi-address customer records require one ThirdParty per address in Dolibarr, and we extract all address records during scoping to split them correctly.
Selly Erp
Contact
Dolibarr ERP
Contact
1:1Selly Erp Contact records (first name, last name, email, phone, job title) map directly to Dolibarr Contact records. Each Contact is linked to a parent ThirdParty via the srowid (fk_soc) foreign key, which we resolve by matching the ThirdParty name or company email domain during the import phase. The Contact's primary flag from Selly sets the isprimary() status in Dolibarr. Custom fields on Contact map to Dolibarr extrafields in the llx_socpeople_extrafields table.
Selly Erp
Lead
Dolibarr ERP
ThirdParty (Prospect)
1:1Selly Erp Leads with unqualified status map to Dolibarr ThirdParty records with the Prospect client type (prospect = 2) rather than the Customer type. We set the prospect status during import so that Dolibarr's CRM pipeline can treat these records as pipeline entries. Lead source and score data from Selly map to custom fields that we pre-create in Dolibarr's extrafields schema before the import runs.
Selly Erp
Deal
Dolibarr ERP
Commercial Proposal (Propal) + Opportunity status
1:1Selly Erp Deals map to Dolibarr Commercial Proposals (Propal). The deal name, estimated value, currency, expected close date, and owner all transfer directly. Selly's deal stage (won, lost, open) maps to Dolibarr Proposal status (Draft, Open, Signed, Closed Won, Closed Lost). Closed-Lost and Closed-Won reasons from Selly custom fields become notes on the Dolibarr Proposal record. We flag any multi-currency deal values for currency conversion before import into Dolibarr's euro-default configuration.
Selly Erp
Pipeline Stage
Dolibarr ERP
Dictionary Entry (dict)
lossySelly Erp pipeline stage names are stored as a configurable list per account and map to Dolibarr's dictionary table (llx_c_departements_planning or llx_c_stde) or the Proposal status dictionary. We extract the complete stage list during scoping, create matching entries in Dolibarr's dictionary administration panel, and assign numeric codes that the Proposal import references by rowid. Stage ordering and probability percentages carry over as dictionary labels and the probabilite field on Proposals.
Selly Erp
Invoice
Dolibarr ERP
Invoice (Facture)
1:1Selly Erp invoice records map to Dolibarr Invoice (Facture) objects. We extract invoice number, date, due date, customer reference (ThirdParty), line items (description, quantity, unit price, VAT rate), totals, and payment status. Currency and date formats require pre-import transformation because Dolibarr's date field regex enforces strict YYYY-MM-DD HH:MM:SS formatting. The original invoice PDF is archived separately and linked to the Dolibarr Invoice record as a document attachment for reference; the structured line-item records carry the accounting value.
Selly Erp
Quote
Dolibarr ERP
Commercial Proposal (Propal)
1:1Selly Erp Quotes map to Dolibarr Commercial Proposals with identical field coverage: line items, totals, validity date, and reference to the parent ThirdParty. Quote status from Selly (draft, sent, accepted, expired) maps directly to Dolibarr Proposal status codes. Custom quote templates and branded layouts from Selly do not transfer and must be rebuilt in Dolibarr's document template editor after migration. We deliver a written template specification noting fonts, colors, and layout from the source export.
Selly Erp
Activities (calls, emails, meetings, notes)
Dolibarr ERP
Event
1:1Selly Erp Activity history (calls, emails, meetings, tasks, notes) maps to Dolibarr Event records linked to the parent Contact or ThirdParty via the fk_soc and fk_contact foreign keys. We set the event type (call, meeting, email, task) using the fk_element_type code and preserve the original timestamp in the datep and datep2 fields. Note body content transfers as an Event with type NOTE, linked to the appropriate record. Activity metadata such as call duration or email subject line migrates to Event's description field or to custom extrafields we pre-create before import.
Selly Erp
User and Owner
Dolibarr ERP
User
1:1Selly Erp user accounts map to Dolibarr User records by email address match. We extract all distinct owner identifiers on Deals, Invoices, and Activities and reconcile them against Dolibarr's llx_user table before the main import begins. Inactive or archived Selly users receive the Dolibarr status that matches their source account status. Owner assignment on Deals and Invoices resolves to the matching Dolibarr User rowid at migration time. Any Selly owner without a Dolibarr user match enters a reconciliation queue for the customer's admin to provision.
Selly Erp
Custom Fields
Dolibarr ERP
Extrafields
lossySelly Erp custom fields on any object map to Dolibarr extrafields in the llx_<table>_extrafields tables. We extract the full list of custom field names, data types, and values during scoping, then pre-create the matching Dolibarr extrafield definitions (type, label, param options for dropdowns) via the Dolibarr setup interface or direct database insert before any data loads. Dropdown values from Selly's custom field options map to Dolibarr's param options structure so that enumerated values render correctly in Dolibarr forms.
Selly Erp
Attachments
Dolibarr ERP
Document (linked via ContentDocument equivalent)
1:1File attachments linked to Selly Erp records (Customer, Contact, Deal, Invoice) are extracted from the export dump and stored in a secure archive. We do not load them through Dolibarr's bulk import because attachments frequently fail or corrupt during batch processes. After the main migration completes and records have Dolibarr rowids, we provide a file-to-record mapping spreadsheet and instructions for the customer's admin to re-upload documents using Dolibarr's native file attachment interface. The original file names and record associations are preserved in the archive.
Selly Erp
Quotes and Deals relationship
Dolibarr ERP
Proposal linked to ThirdParty
1:1Selly Erp Quotes are generated from Deal records and carry the deal reference. During import, we preserve the deal-to-quote relationship by matching the Quote's external reference field to the Deal's external reference, then store the cross-reference in Dolibarr's ref_ext field on both the Proposal and any linked Deal-equivalent records. If the customer is not using Dolibarr's full project or Opportunity tracking, the Proposal record serves as the standalone commercial record and the relationship is informational rather than enforced by a foreign key.
| Selly Erp | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Customer | ThirdParty1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Lead | ThirdParty (Prospect)1:1 | Fully supported | |
| Deal | Commercial Proposal (Propal) + Opportunity status1:1 | Fully supported | |
| Pipeline Stage | Dictionary Entry (dict)lossy | Fully supported | |
| Invoice | Invoice (Facture)1:1 | Fully supported | |
| Quote | Commercial Proposal (Propal)1:1 | Fully supported | |
| Activities (calls, emails, meetings, notes) | Event1:1 | Fully supported | |
| User and Owner | User1:1 | Fully supported | |
| Custom Fields | Extrafieldslossy | Mapping required | |
| Attachments | Document (linked via ContentDocument equivalent)1:1 | Mapping required | |
| Quotes and Deals relationship | Proposal linked to ThirdParty1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Selly Erp gotchas
No public API forces manual data export
Invoice PDFs are not exported as structured records
Workflow automations are undocumented and non-transferable
Dolibarr ERP gotchas
Foreign key constraint errors on cross-distribution database restore
SQL injection vulnerabilities in version 9.0.1
Custom fields stored as JSON in extraoptions require field-by-field deserialization
Decimal precision and rounding configuration affects price fields
No native iOS/Android app forces reliance on browser
Pair-specific challenges
Migration approach
Discovery and extraction planning
We audit Selly Erp across every active module (CRM, Deals, Invoices, Quotes, Activities, Custom Fields) and produce a record count estimate. We identify the customer as the primary export operator because Selly Erp has no REST API, and we provide a written export checklist specifying which modules to dump, what file formats to use, and which fields to include. We schedule a data delivery date and begin transformation design concurrently. The discovery output is a migration scope document, a field mapping sheet, and an extraction guide for the customer to follow inside Selly Erp's in-app export function.
Manual export and data validation
The customer performs the in-app CSV or Excel export from Selly Erp for each module and delivers the files. We validate each dump for record count, column headers, date format compliance, and presence of required fields. We flag any empty files, malformed rows, or missing modules and coordinate a re-export before transformation begins. We transform all date fields to YYYY-MM-DD HH:MM:SS, normalize currency codes to match Dolibarr's configuration, split multi-address customer records into separate ThirdParty entries, and resolve owner email addresses to Dolibarr User rowids. The validation output is a confirmed-clean dataset ready for Dolibarr import.
Dolibarr schema design and module activation
We activate the relevant Dolibarr modules (ThirdParty, Contact, Commercial Proposal, Invoice, Event) and configure the schema to receive the migrated data. This includes creating extrafields for any custom fields from Selly Erp, configuring dictionary entries for pipeline stages and status values, setting the correct client/prospect/supplier classification per ThirdParty, and provisioning Dolibarr User accounts for every resolved owner. We run a sandbox migration with a subset of records to validate the field mappings, verify that records appear in Dolibarr's UI under the correct module, and correct any mapping errors before the production import begins.
Production migration in dependency order
We run production migration in the correct record-dependency order: Dolibarr Users first (to resolve Owner rowids), ThirdParty records second (to resolve the fk_soc foreign key on Contacts), Contacts third, then Commercial Proposals, Invoices, and Activity history. Each phase emits a row-count reconciliation report that we compare against the source export totals. We resolve any missing parent records, orphaned children, or validation errors before proceeding to the next phase. Attachments are archived separately and re-linked by the customer's admin after migration using the file-to-record mapping spreadsheet we provide.
Cutover, validation, and automation rebuild handoff
We freeze Selly Erp from new writes during the cutover window, run a final delta migration of any records modified during the migration run, and enable Dolibarr as the live system of record. We deliver the automation rebuild specification documenting every Selly Erp workflow rule with its trigger, conditions, and recommended Dolibarr equivalent, plus the owner reconciliation report listing any Selly Erp users without a Dolibarr account. We offer a one-week post-migration hypercare window where we resolve any data issues reported by the customer's team. Workflow rebuild, admin training, and new feature onboarding fall outside standard scope and are separate engagements.
Platform deep dives
Selly Erp
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between Selly Erp and Dolibarr ERP.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Selly Erp and Dolibarr ERP.
Object compatibility
All 8 core objects map 1:1 between Selly Erp and Dolibarr ERP.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Selly Erp: Not publicly documented.
Data volume sensitivity
Selly Erp doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Selly Erp to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your Selly Erp to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Selly Erp
Other ways to arrive at Dolibarr ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.