CRM migration
Field-level mapping, validation, and rollback between Axelor CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Axelor CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 12
objects map 1:1 between Axelor CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Axelor CRM to Salesforce is a migration from an open-source modular ERP+CRM platform built on XML-defined J2EE domain models to a multi-tenant SaaS CRM with a documented REST and Bulk API. Axelor's Lead → Third Party → Opportunity model maps partially to Salesforce's separate Lead and Contact objects with Account parents, and the Third Party entity in Axelor carries both company and person data that must be split into Account and Contact during migration. Axelor's BPM engine stores workflow logic as application configuration that cannot be exported as data; we do not migrate BPM workflows, Custom Studio objects require XML schema inspection before field mapping, and the AppLoader export mechanism has no publicly documented API rate limits. We use Salesforce's Bulk API 2.0 with batch chunking for activity history, resolve parent-record lookups (AccountId, ContactId, OpportunityId) during a staging phase, and deliver a written workflow inventory so the customer's admin can rebuild BPM rules in Salesforce Flow post-migration.
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 Axelor CRM object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Axelor CRM
Lead
Salesforce Sales Cloud
Lead
1:1Axelor Lead records map 1:1 to Salesforce Lead. The Axelor lead status field maps to Salesforce Lead Status, and any lead source field maps to LeadSource. We preserve the conversion history (whether the Lead was converted to a Third Party in Axelor) in a custom field axelor_conversion_status__c. If the Lead was already converted to a Third Party, we also create the corresponding Salesforce Account and Contact and link them via the Lead Convert action, with the Lead retained as a historical record.
Axelor CRM
Third Party (Customer/Prospect)
Salesforce Sales Cloud
Account
1:1Axelor Third Party records are the core company and person entity and must be split: company data (name, address, industry, revenue) maps to Salesforce Account, and person data (individual name, email, phone if stored on the Third Party) is extracted as a separate Contact. We detect the type field (customer vs prospect) and map it to Account Type. Agency associations on Third Parties are stored in a junction table that we resolve after Account creation (see Lead Agencies mapping).
Axelor CRM
Contact
Salesforce Sales Cloud
Contact
1:1Axelor Contact records are distinct from Third Parties and are linked to a parent Third Party record. We maintain the parent-child relationship by resolving the parent Third Party ID to the newly created Salesforce Account ID at migration time. Email, phone, title, and department fields map directly. Any Contact without a resolvable parent Third Party is held in a reconciliation queue and mapped to a Prospect Account (an Account record with Name = 'Prospect' created during initial setup).
Axelor CRM
Opportunity
Salesforce Sales Cloud
Opportunity
1:1Axelor Opportunity records map 1:1 to Salesforce Opportunity. StageName maps from Axelor opportunity status, Amount maps from the expected revenue field, CloseDate maps from the expected closing date, and Description maps from the opportunity notes field. The linked Third Party (customer or prospect) is resolved to the Salesforce Account ID. If the Axelor Opportunity has a primary Contact, we resolve that Contact and populate OpportunityContactRole. The Opportunity Owner maps from the Axelor user record.
Axelor CRM
Recurring Revenue Fields (Opportunity)
Salesforce Sales Cloud
Custom Fields on Opportunity
lossyAxelor adds expected recurring amount and recurring period fields to Opportunities only when the 'Manage recurrent revenue on opportunities' setting is activated. We detect this configuration during scoping by inspecting the Opportunity XML schema for the recurring revenue fields. If present, we create Salesforce custom fields Recurring_Amount__c (Currency) and Recurring_Period__c (Text) on Opportunity and populate them from the Axelor values. If the setting is not active, no equivalent fields exist and nothing is created.
Axelor CRM
Agency
Salesforce Sales Cloud
Tag
1:1Agencies in Axelor CRM are a distinct routing and segmentation concept that associates Leads and Third Parties. Salesforce has no native Agency object. We create Salesforce Tags (with Tag Name = Agency name) during migration and link them to the relevant Account and Lead records via TopicAssignment. The customer chooses whether to use Salesforce standard Tags or a custom multi-select picklist on Account during scoping.
Axelor CRM
Lead Agency Junction
Salesforce Sales Cloud
TopicAssignment
1:1The Axelor lead-to-agency assignment is a many-to-many relationship stored in a junction export. We export the Lead ID to Agency ID pairs, then create TopicAssignment records linking each Lead to the Tag representing its Agency. The same junction resolution applies to Third Party-to-Agency relationships, creating TopicAssignment records on Account. This preserves the agency routing and segmentation logic in Salesforce without requiring a custom junction object.
Axelor CRM
Catalogue
Salesforce Sales Cloud
ContentDocument (metadata only)
1:1Axelor supports PDF catalogue storage linked to Third Parties for sales staff reference. We extract catalogue metadata (filename, linked Third Party ID, creation date) and preserve it as a record in a custom Catalogue__c object with a URL field pointing to the source location. The actual binary files require separate file-transfer handling outside the migration scope; we provide guidance on DMS migration and do not attempt to move binary blobs through the Salesforce REST API.
Axelor CRM
Custom Objects (Studio)
Salesforce Sales Cloud
Custom Object
1:1Axelor Studio allows creating entirely new objects beyond the standard CRM entities, defined in XML and compiled to JPA models. We inspect the XML schema for each custom object during scoping, infer field names and data types, and create equivalent Salesforce custom objects with __c API names before migration. Any lookup fields in the Axelor custom object that reference standard entities (Third Party, Contact, Opportunity) are resolved to Salesforce IDs during staging. Custom Studio objects without a clear Salesforce equivalent are documented with the full schema and a recommendation (custom object, junction object, or multi-select picklist on an existing object).
Axelor CRM
User / Owner
Salesforce Sales Cloud
User
1:1Axelor user records include name, email, organizational structure, and access roles. We extract user identity data for mapping record ownership in Salesforce. Role and permission schemas are not migrated because they are application configuration with no data-record equivalent. We match Axelor users by email against the Salesforce destination org's User table. Users without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import resumes.
Axelor CRM
Document / Attachment (DMS)
Salesforce Sales Cloud
ContentDocument + ContentVersion
1:1Axelor DMS stores documents linked to CRM records. Binary attachments are exported separately from the data record export. We include document metadata (filename, linked entity, creation date, document type) in the migration scope as records in a custom Document__c object. For binary files, we provide guidance on DMS migration using Salesforce Content API but do not migrate file blobs inside the standard migration scope; large document migrations are scoped separately.
Axelor CRM
BPM Workflow
Salesforce Sales Cloud
N/A
1:1Axelor BPM workflows are stored as DMN XML application configuration tied to the J2EE deployment, not as data records. The AppLoader can package DMN models for deployment to another Axelor instance, but this is an application deployment action, not a data export. We do not migrate BPM workflows. We document every identified workflow trigger, condition, and action as a written specification with a recommended Salesforce Flow equivalent for the customer's admin to rebuild post-migration.
| Axelor CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Third Party (Customer/Prospect) | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Recurring Revenue Fields (Opportunity) | Custom Fields on Opportunitylossy | Fully supported | |
| Agency | Tag1:1 | Fully supported | |
| Lead Agency Junction | TopicAssignment1:1 | Fully supported | |
| Catalogue | ContentDocument (metadata only)1:1 | Fully supported | |
| Custom Objects (Studio) | Custom Object1:1 | Mapping required | |
| User / Owner | User1:1 | Fully supported | |
| Document / Attachment (DMS) | ContentDocument + ContentVersion1:1 | Fully supported | |
| BPM Workflow | N/A1: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.
Axelor CRM gotchas
Version-to-version migration breaks schema and workflows
BPM workflows and business rules do not export as data
No publicly documented API rate limits or developer portal
Custom Studio objects have no standard export format
Recurrent revenue fields are configuration-dependent
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and Axelor version scoping
We audit the source Axelor instance across version (6.1.x through 6.5.x), custom objects created in Studio, active BPM workflows, pipeline configuration, agency structure, document DMS volume, and user count. We inspect the Opportunity XML schema for the recurring revenue fields to determine whether that configuration is active. We also identify the Axelor export mechanism (AppLoader export vs. REST API) and any J2EE customizations that affect the XML export structure. The discovery output is a written migration scope with object inventory, an Axelor version-specific extraction plan, and a Salesforce edition recommendation based on the customer's user count and custom object requirements.
XML schema inspection for custom objects
We read the XML domain model definitions for each Axelor Studio custom object and generate a structured field map that identifies field names, data types, required attributes, and any lookup relationships to standard Axelor entities. This map is validated against the source data export to confirm all fields are populated and no XML-defined fields are missing from the AppLoader output. The map drives the Salesforce schema pre-creation step and ensures field types are correctly translated (Axelor string to Salesforce Text, Axelor integer to Salesforce Number, Axelor date to Salesforce Date, etc.) before any data is extracted.
Salesforce destination schema design
We design the destination schema in Salesforce. This includes creating Salesforce custom objects for each Axelor Studio custom object (with __c API names), provisioning custom fields with type-mapped Salesforce field types, creating Record Types and Sales Processes for Axelor pipelines, setting up Agency as Tags or a custom multi-select picklist on Account and Lead, and pre-creating the custom Recurring_Amount__c and Recurring_Period__c fields on Opportunity if the Axelor recurring revenue configuration is detected. Schema is deployed via Salesforce metadata API into a Sandbox org for validation before any data migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's RevOps lead reconciles record counts (Leads in, Accounts in, Contacts in, Opportunities in, custom object records in) and spot-checks 25-50 random records against the Axelor source data. We specifically validate that Third Party-to-Account splits are correct, Contact-to-Account parent lookups are satisfied, agency routing Tag assignments are accurate, and custom object lookup relationships resolve to the correct Salesforce IDs. Any mapping corrections are documented and applied before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct Axelor user referenced on Lead, Third Party, Contact, Opportunity, and custom object records and match by email against the Salesforce destination org's User table. Users without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions any missing Users (active or inactive depending on whether the original Axelor user is still employed). OwnerId references must be resolvable for record import to succeed, so this step gates the production migration.
Production migration in dependency order
We run production migration in record-dependency order: Tags and Agencies (first, as they are referenced by TopicAssignment), Accounts (from Axelor Third Parties, company data only), Contacts (with AccountId resolved to the parent Account), Leads (with Agency TopicAssignments), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved, and recurring revenue fields populated if present), Custom Objects (with lookup IDs resolved to Salesforce standard and custom object IDs), then document metadata (as custom Catalogue__c and Document__c records). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and BPM workflow handoff
We freeze Axelor writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver the BPM workflow inventory document to the customer's admin team with a recommended Salesforce Flow equivalent for each workflow. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild BPM workflows as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task guided by the workflow inventory document.
Platform deep dives
Axelor CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Axelor CRM and Salesforce Sales Cloud.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
Axelor CRM: Not publicly documented.
Data volume sensitivity
Axelor CRM exposes a bulk API — large-volume migrations stream efficiently.
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 Axelor CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Axelor CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Axelor CRM
Other ways to arrive at Salesforce Sales Cloud
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.