CRM migration
Field-level mapping, validation, and rollback between OneHash CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
OneHash CRM
Source
Freshsales
Destination
Compatibility
5 of 8
objects map 1:1 between OneHash CRM and Freshsales.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from OneHash CRM to Freshsales is a migration from an ERPNext-forked platform with Indian-market pricing and limited public API documentation to a Freshworks-native CRM with Freddy AI, a documented REST API, and a USD pricing model suited to global teams. OneHash organizes business data around DocTypes (Leads, Contacts, Customers, Opportunities, Quotations, Sales Orders) inherited from ERPNext, while Freshsales uses a standard CRM object model (Leads, Contacts, Accounts, Deals, Products). We discover the live DocType schema via API introspection before export, handle the lead-conversion model that Freshsales enforces, and flag the absence of a native OneHash bulk-export endpoint as a technical constraint that shapes the migration approach. Custom fields, Item records, and Sales Order headers migrate where equivalent Freshsales objects exist; automations, workflows, and DocType-level approval rules do not migrate and are documented for the customer admin to rebuild in Freshsales.
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 OneHash 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.
OneHash CRM
Lead
Freshsales
Lead
1:1OneHash Leads migrate directly to Freshsales Leads. The lead status, source, and conversion log transfer as custom fields if present. Freshsales enforces the Lead model: unqualified prospects live as Leads and convert to Contact, Account, and Deal via the built-in conversion action. We preserve the original OneHash lead creation date in a custom field on the Freshsales Lead for audit trail purposes.
OneHash CRM
Contact
Freshsales
Contact
1:1OneHash Contacts follow ERPNext DocType conventions with first_name, last_name, email, phone, and organization linkage. We map these to Freshsales Contacts 1:1. If a OneHash Contact has an associated Customer (organization), we resolve that relationship during the Account migration pass and attach the Contact to the corresponding Freshsales Account by email domain matching.
OneHash CRM
Customer
Freshsales
Account
1:1OneHash Customer records map to Freshsales Accounts. The Customer record's billing and shipping addresses transfer to the Freshsales Account address fields. Freshsales supports multi-level account hierarchies (parent-child relationships) which OneHash does not natively expose; if the customer uses parent-company structures in OneHash via custom DocType links, we document them for manual hierarchy setup in Freshsales.
OneHash CRM
Opportunity
Freshsales
Deal
1:1OneHash Opportunities track deal stages within Pipelines. We map Opportunity stage names to Freshsales Deal stages, amount fields to Amount, and party information to the linked Account or Contact. Pipeline stage ordering is preserved via a stage-sequence map applied at migration time. Closed-Lost and Closed-Won status from OneHash carry over to the equivalent Freshsales Deal status.
OneHash CRM
Quotation
Freshsales
Deal (with line items)
lossyOneHash Quotations carry line items linked to Items, with tax templates and terms. Freshsales Deals can hold line items and notes but do not have a native quotation object. We migrate Quotation content as Deal notes and line items, preserving the quotation-to-opportunity linkage as a custom field linkage_map__c for reference. PDF attachments from quotations migrate as file attachments to the Deal.
OneHash CRM
Item
Freshsales
Product
1:1OneHash Items include product and service definitions with pricing, stock data, and custom attributes. We map standard Item fields (name, item_code, description, standard_rate) to Freshsales Product records and create Standard Price Book entries for each item. OneHash custom Item fields require a pre-migration discovery pass to ensure the equivalent custom field exists in Freshsales before import.
OneHash CRM
Sales Order
Freshsales
Deal + Product Line Items
lossyOneHash Sales Orders reference Customers and Items and carry delivery and billing status flags. Freshsales does not have a native Sales Order object. We map Sales Order headers to Deals with the order number preserved in a custom field so_order__c, and line items attach to the Deal as Product entries. Order status flags migrate as Deal custom fields. This is a partial mapping; the customer admin may need to adjust Deal layouts for order-specific workflows.
OneHash CRM
Custom Fields
Freshsales
Custom Fields
lossyOneHash allows unlimited custom fields per DocType via ERPNext's Customize Form tool. These fields do not appear in standard API responses unless explicitly requested. We run a pre-migration discovery pass that introspects each DocType's custom field definitions via the API before mapping, ensuring no custom property is dropped. We then pre-create matching custom fields in Freshsales with equivalent field types before the data import phase begins.
| OneHash CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Customer | Account1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Quotation | Deal (with line items)lossy | Fully supported | |
| Item | Product1:1 | Fully supported | |
| Sales Order | Deal + Product Line Itemslossy | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required |
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.
OneHash CRM gotchas
OneHash is a fork of ERPNext with Indian-market pricing
Annual billing is mandatory for paid plans above the free tier
No publicly documented API rate limits or bulk export endpoints
Custom Fields are DocType-specific and require schema discovery
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 DocType schema introspection
We audit the OneHash instance across every active DocType, identifying standard and custom fields, inter-DocType links (Opportunity-to-Quotation, Customer-to-Contact, Sales Order-to-Item), and the current annual billing status. We run a schema discovery pass that introspects each DocType's custom field definitions via the API before any mapping is designed. We also confirm the Freshsales instance date format, existing custom fields, and user count during this phase. The discovery output is a written scope and a DocType-to-Freshsales object mapping matrix.
Freshsales schema preparation and custom field provisioning
We pre-create any missing custom fields in Freshsales to match the discovered OneHash custom fields. This includes field type selection (text, number, date, picklist), API name assignment, and visibility configuration. We also configure any required Freshsales Record Types or Sales Processes if the customer uses multiple pipelines. Custom fields are deployed to a Freshsales sandbox or staging environment first for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Freshsales test environment using a representative data sample. The customer reconciles record counts across all migrated objects (Leads, Contacts, Accounts, Deals, Products), spot-checks 20-30 random records against the OneHash source, and validates that custom field values transferred correctly. Any mapping corrections happen in this phase. We also validate date format normalization and multi-select field handling during this pass.
User reconciliation and owner provisioning
We extract every distinct OneHash user referenced on Lead, Contact, Account, and Deal records and map them to Freshsales users by email match. Any OneHash owner without a matching Freshsales user goes to a reconciliation queue for the customer admin to provision. Migration cannot proceed past this step because OwnerId references are required on most Freshsales standard objects. We confirm the Freshsales admin has active user accounts for all migrated owners before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Products (Item records first, so Deals can reference them), Accounts (from OneHash Customers), Contacts (with AccountId resolved), Leads (with the lead qualification split applied), Deals (with AccountId, OwnerId, and product line items resolved), and custom field data. Each phase emits a row-count reconciliation report before the next phase begins. We use Freshsales bulk import where available and API-based migration for records that require lookup resolution.
Cutover, validation, and workflow handoff
We freeze OneHash writes during cutover, run a final delta migration of any records modified during the migration window, then enable Freshsales as the system of record. We deliver a written inventory of every active OneHash workflow, DocType approval rule, and automation with its trigger, conditions, and a recommended Freshsales Workflow equivalent. We do not rebuild these in Freshsales as part of the migration scope. We support a brief reconciliation window where the customer raises any data issues for resolution.
Platform deep dives
OneHash 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 OneHash 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
OneHash CRM: Not publicly documented — discovered dynamically during migration.
Data volume sensitivity
OneHash 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 OneHash CRM to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your OneHash 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 OneHash 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.