CRM migration
Field-level mapping, validation, and rollback between Xapsys CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Xapsys CRM
Source
Freshsales
Destination
Compatibility
5 of 8
objects map 1:1 between Xapsys CRM and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Xapsys CRM and Freshsales serve overlapping UK and global SME segments but differ fundamentally in their data architecture. Xapsys stores each customer's schema in a SQL-backed instance with a custom entity builder, meaning no two deployments share the same field structure. Freshsales uses a fixed object model (Leads, Contacts, Accounts, Deals, Products, Tasks, Events, Notes) with standard and custom fields per entity. We extract the live Xapsys schema first, build a per-field map against Freshsales, validate it against a sample export, and only then run the full import. Custom pipeline stages migrate as Freshsales Deal stage values. Documents attached to Companies and Opportunities are re-associated post-import using the preserved parent reference. Workflows, email sequences, and Sage/Xero sync rules do not migrate; we deliver a written specification for each active automation so your team rebuilds them in Freshsales Admin settings after go-live.
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 Xapsys 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.
Xapsys CRM
Company
Freshsales
Account
1:1Xapsys Company records map to Freshsales Account. Company name, registered address, classification tags, and any custom fields on the Company entity migrate to the corresponding Freshsales Account standard and custom fields. We import Accounts first so that the parent reference is satisfied before any Contact or Deal import. If Xapsys Companies store Sage or Xero IDs, we carry those in a custom field for reconciliation reference.
Xapsys CRM
Contact
Freshsales
Contact
1:1Xapsys Contact records map to Freshsales Contact. Each Contact's parent Company reference is resolved at migration time by matching Company name or a unique identifier to the Account created in the previous phase. Contact name, email, phone, job title, address, classification tags, and any custom fields on the Contact entity map to Freshsales Contact standard and custom fields. Duplicate detection uses email as the dedupe key.
Xapsys CRM
Opportunity
Freshsales
Deal
1:1Xapsys Opportunity records map to Freshsales Deal. Each Opportunity's linked Company resolves to a Freshsales Account, and the linked Contact resolves to a Freshsales Contact. Deal name, value, expected close date, and any custom fields migrate directly. Stage names from Xapsys must be mapped to Freshsales stage values; see the Pipeline Stages mapping entry.
Xapsys CRM
Pipeline Stages
Freshsales
Deal Stages
lossyXapsys pipeline stages are user-defined strings, not an enumerated set. We capture the complete stage list from the source instance during schema discovery, produce a stage map that maps each Xapsys stage to a Freshsales stage value, and validate the map against a sample of Opportunity records before running the full import. Stages that have no Freshsales equivalent are flagged for the customer to create in Freshsales Admin > Deal Configuration before migration.
Xapsys CRM
Custom Entities
Freshsales
Custom Fields
lossyThis is the defining complexity of every Xapsys-to-Freshsales migration. Xapsys custom entities have no Freshsales equivalent as standalone objects. We extract the custom entity schema during discovery, identify which standard Freshsales object each custom entity is semantically closest to, and map the custom entity fields to Freshsales custom fields on the matching standard object. We create the destination custom fields in Freshsales Admin before migration begins. Custom entities with no semantically equivalent standard object are documented as a separate output for the customer to address via Freshsales Suite or a custom application.
Xapsys CRM
Document
Freshsales
Attachment / Note
1:1Xapsys associates Documents with both Companies and Opportunities. We preserve the parent reference during export and re-create the association post-import in Freshsales by attaching the document as a Note or file to the corresponding Account or Deal record. Binary document files (PDFs, Office documents, images) are stored in Freshsales's file storage and linked via the UI or API. Document metadata (filename, upload date, uploader) migrates as fields on the Note.
Xapsys CRM
Activity / Task
Freshsales
Task
1:1Xapsys activity history attached to Contacts and Opportunities may be stored as a related log or task object. Where bulk export is available, we map date, type, description, and owner fields to Freshsales Task records linked to the corresponding Contact or Deal. If the Xapsys export produces partial activity records, we flag the gap in the reconciliation report and advise the customer on manual or selective follow-up import.
Xapsys CRM
Tag / Classification
Freshsales
Tags
lossyXapsys classification tags on records migrate to Freshsales Tags. We extract tag names and values, map them to Freshsales tag entries on the corresponding record (Account, Contact, or Deal), and flag any tags that have no direct equivalent in Freshsales's tagging model. Tag strategy is confirmed with the customer during scoping.
| Xapsys CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Pipeline Stages | Deal Stageslossy | Mapping required | |
| Custom Entities | Custom Fieldslossy | Mapping required | |
| Document | Attachment / Note1:1 | Fully supported | |
| Activity / Task | Task1:1 | Fully supported | |
| Tag / Classification | Tagslossy | 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.
Xapsys CRM gotchas
Custom entity schemas vary by deployment
Workflows do not export and must be rebuilt
Reporting is not included in standard package
Sage/Xero integration locks in dual-record discipline
Limited public API documentation
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
Schema discovery and custom entity extraction
We connect to the Xapsys instance (via API or admin export) and extract the full live schema: all standard objects (Company, Contact, Opportunity), all custom entities and their fields, all pipeline definitions and stage names, all workflow rules and their triggers, and all document attachment metadata. This discovery phase produces a written schema map that identifies every Xapsys field and maps it to a Freshsales target field or flags it as unmapped. The schema map is validated against a sample export before the full migration begins.
Freshsales environment preparation
We provision the Freshsales destination environment with custom fields, Deal stage values, and Tags corresponding to the Xapsys schema map. If the migration includes Leads, we configure the Lead conversion mapping in Freshsales Admin > Leads so that custom fields transfer correctly on conversion. We configure timezone and date format settings to match the Xapsys source data. All schema changes happen in a Freshsales trial or sandbox environment first for validation.
Sample export and mapping validation
We run a sample export of 50 to 100 records from Xapsys, apply the field map, and import into Freshsales. We reconcile the sample against the source to verify that field values, parent-record linkages, and stage mappings are correct. Any mapping corrections (field type mismatches, missing stage values, unhandled tags) are resolved before the full migration is scheduled. This step prevents bulk import errors that would require re-running the migration.
Accounts and Contacts migration in dependency order
We import Accounts first (from Xapsys Company records), then Contacts with AccountId resolved from the Account import. Classification tags attach during the respective import phase. Owner reconciliation resolves Xapsys users to Freshsales users by email match; any unmatched owners go to a reconciliation queue for the customer's admin to provision before Deal migration proceeds.
Deals, Documents, and Activity migration
We import Deals with AccountId, ContactId, OwnerId, stage, and value resolved from the prior phases. Custom field values from Xapsys custom entities that are semantically linked to Deals migrate to the corresponding Freshsales Deal custom fields. Documents are re-attached to their parent Account or Deal as Notes or file attachments. Activity history migrates as Freshsales Tasks, preserving the original timestamp for timeline ordering.
Cutover, delta sync, and workflow rebuild handoff
We freeze writes to Xapsys during the cutover window, run a final delta migration of any records created or modified during the migration period, then hand off Freshsales as the active system of record. We deliver the written workflow inventory document to the customer's admin team. We do not rebuild Xapsys workflows as Freshsales workflow rules; that work is handled by the customer's admin using the specification we provide. We offer a one-week post-cutover hypercare window for reconciliation issues.
Platform deep dives
Xapsys CRM
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Xapsys CRM and Freshsales.
Object compatibility
3 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
Xapsys CRM: Not publicly documented.
Data volume sensitivity
Xapsys CRM 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 Xapsys CRM to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Xapsys 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 Xapsys 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.