CRM migration
Field-level mapping, validation, and rollback between Axelor CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Axelor CRM
Source
Freshsales
Destination
Compatibility
10 of 12
objects map 1:1 between Axelor CRM and Freshsales.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Axelor CRM to Freshsales is a migration from a J2EE open-source platform with XML-defined domain models to a SaaS-first CRM with native AI capabilities and a documented REST API. Axelor organizes contacts as Third Parties (persons and organizations combined) with a Lead → Third Party → Opportunity pipeline, while Freshsales separates Leads, Contacts, and Accounts with a Deal object for pipeline management. The primary technical challenge is translating Axelor's XML-defined Studio custom objects and its many-to-many Lead-Agency routing concept into Freshsales' standard object model. Axelor's BPM workflows store automation logic as application configuration and do not export as data records; we document every workflow for your admin to rebuild in Freshsales. We do not migrate workflows, automations, or reporting dashboards as code.
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 Freshsales, 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
Freshsales
Lead
1:1Axelor Leads map directly to Freshsales Leads with the original lead source, status, and assigned owner preserved. The Axelor Lead record is the entry point in both systems' pipeline models. Lead creation dates and last modified timestamps transfer to Freshsales' created_at and updated_at fields. If the customer used the 'Manage recurrent revenue on opportunities' setting, that configuration is evaluated at the Opportunity level rather than Lead.
Axelor CRM
Third Party (Person)
Freshsales
Contact
1:1Axelor Third Parties with type 'person' map to Freshsales Contact. We resolve the parent-child Contact-to-Third-Party relationship during migration by matching the Contact's email address or full name against the Third Party record, then create the Contact with the parent Third Party's organization data as the Contact's Account field in Freshsales.
Axelor CRM
Third Party (Organization)
Freshsales
Account
1:1Axelor Third Parties with type 'company' or 'organization' map to Freshsales Account. Company name, website, address fields, and industry classification migrate directly. The Account record is created before any Contact import so that the Contact-Account lookup relationship is satisfied at the moment of Contact insert.
Axelor CRM
Contact (linked child)
Freshsales
Contact
1:1Axelor Contacts are distinct from Third Parties and link to a parent Third Party. We preserve the parent-child relationship by resolving the parent Third Party to its Freshsales Account equivalent at migration time, then writing the Contact record with the AccountId populated. If the parent Third Party is a person-type record, we create the Account first from the parent organization name before inserting the Contact.
Axelor CRM
Opportunity
Freshsales
Deal
1:1Axelor Opportunities map to Freshsales Deals. The Opportunity name, amount, stage, expected close date, and probability migrate directly. Axelor's stage sequence maps to Freshsales Deal stages, and we configure the Freshsales pipeline stages during schema setup before migration. If the 'Manage recurrent revenue on opportunities' setting is active, we detect the recurring amount and period fields during scoping and create matching custom fields on the Deal object.
Axelor CRM
Lead Agency
Freshsales
Tag
lossyAxelor's Lead-to-Agency routing is a many-to-many relationship between Leads and Agencies. Freshsales has no native Agency object, so we create a Tag for each unique Agency record, then apply those Tags to the corresponding Lead records in Freshsales. The junction export (Lead ID to Agency ID mapping) is generated during the Axelor data extract and applied as Tag assignments during migration. Agencies that represent a team or territory map conceptually to Freshsales' Sales Team or Territory fields if the customer licenses the Enterprise tier.
Axelor CRM
Agency
Freshsales
Tag (organization level)
lossyAxelor Agency records represent routing units or partner organizations. We export all Agencies as Tags with a naming prefix (e.g., 'Agency: [name]') so they are visually distinguishable from other tags in Freshsales. If the customer used Agencies to segment their partner or reseller network, the Tag preserves that segmentation for reporting and assignment rules in Freshsales.
Axelor CRM
Catalogue
Freshsales
Attachment or Note
1:1Axelor PDF catalogues are linked metadata records attached to Third Parties. We extract catalogue metadata (title, description, file reference) and create Freshsales Note records on the corresponding Account or Contact. The actual binary PDF files require separate file-transfer handling outside the API migration scope; we provide guidance on the file storage location and a recommended file transfer method for the customer's IT team.
Axelor CRM
Custom Object (Studio)
Freshsales
Custom Object
1:1Axelor Studio creates entirely new objects defined in XML and compiled to JPA models. We inspect the XML model definitions during the scoping phase to infer field names, data types, and relationships. The destination Freshsales custom object is pre-created before migration with matching field names and types. Custom object relationships (lookups to standard objects) are configured as Freshsales lookup fields. If the custom object references other custom objects, we resolve the creation order to satisfy foreign key constraints during import.
Axelor CRM
Recurrent Revenue Fields
Freshsales
Custom Fields on Deal
1:1The recurring revenue fields on Axelor Opportunities (expected recurring amount and default recurring period) are only present when the 'Manage recurrent revenue on opportunities' checkbox is activated in Axelor CRM settings. We detect this configuration during scoping by inspecting the Opportunity XML schema for the recurring revenue fields. If present, we create matching custom fields in Freshsales Deals (recurring_amount__c, recurring_period__c) before migration and transfer the values.
Axelor CRM
BPM Workflow
Freshsales
(Documentation only)
1:1Axelor BPM workflows store automation logic as application configuration in the Studio and J2EE deployment layer. The AppLoader can package DMN models as XML for deployment, but this is application deployment, not data migration. We do not migrate BPM workflows. We inspect the Axelor application configuration during scoping, document every identified workflow trigger, condition, and action as a written specification, and deliver that document to the customer for rebuild in Freshsales' workflow automation builder.
Axelor CRM
Document/Attachment
Freshsales
Attachment
1:1Axelor DMS stores documents linked to CRM records (Leads, Third Parties, Opportunities). Binary attachments export separately from data records. We extract document metadata (filename, DMS reference, linked record type and ID) and include it in the migration scope as Freshsales Attachment records linked to the migrated record via the Freshsales API. The actual binary files require separate file-transfer handling outside the standard migration scope.
| Axelor CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Third Party (Person) | Contact1:1 | Fully supported | |
| Third Party (Organization) | Account1:1 | Fully supported | |
| Contact (linked child) | Contact1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Lead Agency | Taglossy | Fully supported | |
| Agency | Tag (organization level)lossy | Fully supported | |
| Catalogue | Attachment or Note1:1 | Fully supported | |
| Custom Object (Studio) | Custom Object1:1 | Fully supported | |
| Recurrent Revenue Fields | Custom Fields on Deal1:1 | Mapping required | |
| BPM Workflow | (Documentation only)1:1 | Fully supported | |
| Document/Attachment | Attachment1: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
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discovery and Axelor version scoping
We audit the source Axelor instance for version number (6.1.x through 7.x), installed modules, export method (AppLoader data package or REST API), custom Studio objects, active BPM workflows, and the presence of the recurrent revenue configuration on Opportunities. We also identify the Axelor deployment type (cloud-hosted or on-premise) and confirm the data export mechanism available to the customer. The discovery output is a written scope document that includes the Axelor version, schema inventory, and BPM workflow count.
XML schema inspection for custom Studio objects
For Axelor instances with Studio custom objects, we inspect the XML model definitions to extract field names, data types, and inter-object relationships. We map JPA data types (String, Integer, LocalDate, ManyToOne, OneToMany) to Freshsales field types (text, number, date, lookup). The inspection output is a custom object schema document that we use to pre-create the Freshsales custom objects and fields before any data extraction begins.
BPM workflow inventory and Freshsales mapping design
We inspect the Axelor application configuration for all active BPM workflows, DMN models, and business rules. We document each workflow's trigger event, conditions, and downstream actions. We then design the Freshsales workflow equivalents using Freshsales' automation builder vocabulary so the customer's admin has a reference specification for rebuild. BPM workflows are not migrated as code; this step produces the written inventory only.
Test migration to Freshsales sandbox
We run a full migration into a Freshsales sandbox environment using production-like data volume. The customer's lead validates record counts (Leads in, Third Parties split to Contacts and Accounts, Deals in), spot-checks 20-30 records against the source Axelor data, and confirms the Agency-tag mapping is applied correctly. Any field mapping corrections, custom object field type adjustments, or stage name conflicts are resolved in the sandbox before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Axelor organization-type Third Parties), Contacts (from Axelor person-type Third Parties and linked Contact children with AccountId resolved), Leads (with Agency Tags applied from the junction export), Deals (with stage mapping and OwnerId resolved), custom object records (with their lookup relationships to standard objects), and document metadata as Freshsales Attachments or Notes. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and workflow rebuild handoff
We freeze Axelor writes during cutover, run a final delta migration for any records modified during the migration window, then enable Freshsales as the system of record. We deliver the BPM workflow inventory document to the customer's admin team with Freshsales automation builder equivalents. We support a one-week hypercare window for reconciliation issues. We do not rebuild Axelor BPM workflows as Freshsales automation builder rules inside the migration scope; that is a separate engagement.
Platform deep dives
Axelor CRM
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Freshsales.
Object compatibility
2 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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Axelor CRM to Freshsales 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 Freshsales
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.