CRM migration

Migrate from OneHash CRM to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between OneHash CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

OneHash CRM logo

OneHash CRM

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

75%

9 of 12

objects map 1:1 between OneHash CRM and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

OneHash CRM is a fork of ERPNext, meaning its data model inherits ERPNext conventions — DocTypes for Leads, Contacts, Opportunities, Quotations, Sales Orders, Customers, and Items — rather than a proprietary CRM schema. When migrating to Salesforce Sales Cloud, the primary structural challenge is translating OneHash's single-object lead model and its many-to-one DocType relationships into Salesforce's Lead/Contact/Account/Opportunity hierarchy. We run a pre-migration discovery pass that introspects each DocType's custom field definitions via the OneHash API before mapping, because OneHash allows unlimited custom fields per DocType via ERPNext's Customize Form tool and these fields do not appear in standard API responses unless explicitly requested. Quotations carry line items with tax templates and party linkage that require Opportunity-level parent resolution before import. Salesforce's Bulk API 2.0 with chunking and exponential backoff handles the load; the OneHash REST API has no publicly documented rate limits, so we probe limits dynamically during extraction. Workflows, approval chains, and DocType-level automations do not migrate; we deliver a written inventory for the customer's admin to rebuild in Salesforce Flow.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

OneHash CRM logo

OneHash CRM

What's pushing teams away

  • Initial complexity requires a steep learning curve — G2 reviewers note the software is 'initially complex' even if it becomes usable with practice.
  • Performance and loading issues reported on larger datasets suggest the platform does not scale as smoothly as enterprise-grade alternatives.
  • Limited documentation and unclear API specifications make custom integrations and data extraction difficult without developer involvement.
  • Businesses with purely US or European operations may find the India-market pricing structure and rupee billing cumbersome for budgeting and invoicing.
  • Some reviewers note the platform's aggressive sales outreach via Calendly and spam booking calls creates a negative first impression, driving early churn.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How OneHash CRM objects map to Salesforce Sales Cloud

Each row shows how a OneHash 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.

OneHash CRM

Lead

maps to

Salesforce Sales Cloud

Lead

1:1
Fully supported

OneHash Lead DocType maps directly to Salesforce Lead. The Lead's status, source, and conversion log migrate as Salesforce Lead Status and custom fields. We preserve the OneHash lead creation date in a custom field for audit. Since OneHash does not have a separate Contact object at the unqualified-prospect level, all unconverted Leads land directly in Salesforce Lead without a split rule, unlike HubSpot which requires Contact-to-Lead reconciliation.

OneHash CRM

Contact

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

OneHash Contact records map to Salesforce Contact with first_name, last_name, email, and phone preserved. The Contact's organization linkage (linked Customer DocType) maps to Salesforce AccountId via the Customer-to-Account lookup. We run Customer import before Contact import to satisfy the AccountId foreign key at Contact insert time.

OneHash CRM

Customer

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

OneHash Customer DocType (organization-level records) map to Salesforce Account. The Customer name becomes Account Name; billing and shipping addresses migrate to Account Address fields. Customer is created before Contact import so that AccountId is available at Contact insert. The Customer-territory or Customer-group field from OneHash maps to a custom Account field or Salesforce Territory if the customer uses territory management.

OneHash CRM

Opportunity

maps to

Salesforce Sales Cloud

Opportunity

1:1
Fully supported

OneHash Opportunity DocType maps to Salesforce Opportunity. Stage names migrate to Salesforce StageName with probabilities mapped from OneHash stage_probability. The party linkage (Customer or Contact) resolves to AccountId and optionally ContactId. Pipeline stage ordering is preserved via a separate stage-sequence map applied at destination Salesforce configuration. If OneHash Opportunity tracks an amount in INR, we apply the customer's specified exchange rate at migration time.

OneHash CRM

Quotation

maps to

Salesforce Sales Cloud

Quote

1:1
Fully supported

OneHash Quotation DocType maps to Salesforce Quote, which is available from Salesforce Sales Cloud Professional tier. Quotation line items migrate as QuoteLineItems referencing Product2 and PricebookEntry. The quotation-to-opportunity linkage (one quotation per Opportunity in OneHash) maps to Salesforce Quote's OpportunityId lookup. Tax templates from OneHash become Salesforce Quote Tax fields or custom Quote Line Item tax fields.

OneHash CRM

Sales Order

maps to

Salesforce Sales Cloud

Order

1:1
Fully supported

OneHash Sales Order DocType maps to Salesforce Order, which requires the Salesforce Order Management add-on at additional cost. Line items migrate as OrderProducts referencing Product2. We flag this mapping during scoping because Salesforce Order is not included in all Sales Cloud editions. If the customer does not license Order Management, we map Sales Order fields to Opportunity custom fields and deliver a written note for the admin to evaluate the Order Management add-on.

OneHash CRM

Item

maps to

Salesforce Sales Cloud

Product2

1:1
Fully supported

OneHash Item DocType maps to Salesforce Product2. Item fields including item_name, item_code, description, and standard_rate map to Product2 Name, ProductCode, Description, and a custom standard_rate__c field respectively. We create Standard Pricebook entries during migration so that PricebookEntry records exist before any Opportunity or Quote line items reference them.

OneHash CRM

Employee

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

OneHash Employee DocType records migrate to Salesforce User. We resolve by matching the Employee's email address against the Salesforce User table. Any Employee without a matching User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Employee records carry designation, department, and compensation data that maps to Salesforce User fields and custom fields if the customer maintains org-chart information in Salesforce.

OneHash CRM

Project

maps to

Salesforce Sales Cloud

Project (Salesforce Shield or Custom Object)

lossy
Fully supported

OneHash Project DocType maps to Salesforce Project only if the customer licenses Salesforce Shield (Field Audit Trail, Event Monitoring) or a Project Management Cloud add-on. Without one of these, we map Project to a custom Project__c object with Name, Status, StartDate, EndDate, and assigned team members as Contact lookups. The customer's admin decides during scoping which approach to take.

OneHash CRM

Custom Field (DocType-level)

maps to

Salesforce Sales Cloud

Custom Field (__c)

lossy
Fully supported

OneHash custom fields per DocType (added via ERPNext's Customize Form tool) are discovered via a pre-migration introspection pass that queries each DocType's field definitions via the OneHash API. We capture field name, field type, and options list, then map each to a Salesforce custom field of equivalent type (Text, Number, Date, Picklist, Checkbox). Custom fields are deployed to the destination Salesforce org's schema via Metadata API before any data import begins.

OneHash CRM

Attachment

maps to

Salesforce Sales Cloud

ContentDocument / Attachment

1:1
Fully supported

Documents attached to any OneHash DocType migrate as Salesforce Attachment records (for files under 25 MB) or ContentDocument records (for larger files via Salesforce Content). We preserve the file name, linkage to the parent record (by DocType-to-SObject mapping), and the original upload date as ActivityDate on the ContentVersion. Large attachments may require chunked download and re-upload due to API payload limits on both the source and destination.

OneHash CRM

Chart of Accounts

maps to

Salesforce Sales Cloud

Custom Object or Visual Import

lossy
Mapping required

OneHash Chart of Accounts defines the financial structure and is typically required only if the customer also migrates ERP data (beyond CRM) or plans to integrate with a Salesforce Financial Services Cloud add-on. We map account names, types, and parent-child hierarchy to a custom GL_Account__c object. Account numbers are preserved in a custom field. If the customer does not require GL data in Salesforce, we export the Chart of Accounts as a CSV inventory for the customer's finance team to import manually.

Gotchas + challenges

What specifically takes care here

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 logo

OneHash CRM gotchas

Medium

OneHash is a fork of ERPNext with Indian-market pricing

Medium

Annual billing is mandatory for paid plans above the free tier

High

No publicly documented API rate limits or bulk export endpoints

Medium

Custom Fields are DocType-specific and require schema discovery

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • OneHash has no publicly documented API rate limits or bulk export endpoints

    OneHash CRM inherits ERPNext's REST API but exposes it inconsistently across DocTypes and does not publish rate limits in its public documentation. We discover rate limits dynamically during extraction by monitoring 429 responses and applying exponential backoff. For large data volumes (over 10,000 records across DocTypes), we recommend requesting a read-only API key with elevated limits from OneHash support before migration begins. Without this, extraction may be slower than expected and may require more migration iterations to complete.

  • Custom fields per DocType require a schema discovery pass before mapping

    OneHash allows unlimited custom fields per DocType via ERPNext's Customize Form tool. These fields do not appear in standard API responses unless explicitly requested and are not listed in any public schema registry. 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 during export. Skipping this step results in partial custom field migration that is difficult to retroactively fix.

  • Quotation-to-Opportunity linkage requires parent-record resolution before import

    OneHash Quotations carry a party link (Customer or Contact) and an optional Opportunity link. Salesforce Quote requires an OpportunityId at insert. If the OneHash Quotation references an Opportunity that has not yet been imported, the Quote insert will fail the foreign-key check. We resolve this by running Opportunity import before Quotation import and by staging the Quotation-to-Opportunity linkage in a lookup table during transformation.

  • Sales Order requires Salesforce Order Management add-on for native mapping

    OneHash Sales Order DocType maps natively to Salesforce Order, but Salesforce Order is not included in all Sales Cloud editions and requires the Order Management add-on at additional per-user cost. If the customer does not license Order Management, we map Sales Order fields to Opportunity custom fields as a fallback. We surface this constraint during scoping so the customer can decide whether to license Order Management or accept the fallback mapping before migration begins.

  • INR-denominated amounts require explicit exchange-rate handling at migration time

    OneHash pricing and transactional amounts are denominated in Indian Rupees (INR). Salesforce stores currency as a Currency field type tied to the org's multi-currency configuration. If the source data is in INR and the destination Salesforce org is in USD, we apply the customer's specified exchange rate at migration time and store the result as a decimal currency value. If multi-currency is enabled in Salesforce, we set the CurrencyIsoCode to INR for the migrated records and note that the customer should configure dated exchange rates for historical accuracy.

Migration approach

Six steps for a successful OneHash CRM to Salesforce Sales Cloud data migration

  1. Discovery and API key provisioning

    We audit the OneHash CRM portal across all active DocTypes, custom field sets per DocType, record counts for Lead, Contact, Customer, Opportunity, Quotation, Sales Order, Item, Employee, and Project. We request a read-only API key from OneHash support with elevated limits if the dataset exceeds 10,000 records. We pair this with a Salesforce edition decision: Starter ($25/user) covers basic migrations; Professional ($80/user) is required for custom objects, Flow, and Quote; Enterprise ($165/user) is needed for record-triggered Flow at scale and advanced reporting types. The discovery output is a written migration scope with DocType inventory and Salesforce edition recommendation.

  2. Schema discovery pass and custom field capture

    We run the pre-migration discovery pass that introspects each OneHash DocType's field definitions via the API. For every DocType, we capture standard field names and all custom fields added via Customize Form. We map each custom field to a Salesforce custom field of equivalent type, deploy the schema to the destination Salesforce org via Metadata API, and validate that all custom fields appear in the Salesforce Setup UI before any data extraction begins. This pass is the highest-risk step for this pair because OneHash has no public schema registry.

  3. 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 or admin lead reconciles record counts across all DocTypes, spot-checks 25-50 random records against the OneHash source, and signs off the schema and mapping before production migration begins. Any mapping corrections, missed custom fields, or DocType relationship issues surface here. This step also validates that the AccountId foreign key is resolved before Contact insert, and that OpportunityId is resolved before Quote insert.

  4. Owner and User provisioning reconciliation

    We extract every distinct OneHash Employee and Owner email referenced across Lead, Contact, Opportunity, and Quotation records and match by email against the Salesforce destination org's User table. Any Employee without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Salesforce requires OwnerId references to be valid User IDs at record insert; skipping this step blocks the migration.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Users (manual provisioning validated), Accounts (from OneHash Customer), Contacts (with AccountId resolved), Leads, Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Products and Pricebook entries, Quote line items (with OpportunityId resolved), Sales Orders (or custom fallback mapping), Employee records (to User), Custom Fields populated on all parent records, and Attachments (via ContentDocument upload). Each phase emits a row-count reconciliation report before the next phase begins. We use Salesforce Bulk API 2.0 with batch chunking and exponential backoff on API limit responses.

  6. Cutover, validation, and automation rebuild handoff

    We freeze OneHash 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 DocType automation and approval-chain inventory document to the customer's admin team. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild OneHash DocType-level workflows and approval rules as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

OneHash CRM logo

OneHash CRM

Source

Strengths

  • Free starter plan for up to 2 users with chat history and inbox support, per official pricing page.
  • All-in-one bundling of CRM with ERP modules reduces tool sprawl for small and mid-sized businesses.
  • Multi-currency and multi-language support enables global operations from a single platform.
  • Workflow automation for approvals, role assignments, and repetitive tasks, per product feature documentation.
  • Strong customer support responsiveness highlighted across multiple review sources.

Weaknesses

  • Steep initial learning curve due to ERPNext-inherited complexity, cited by G2 reviewers.
  • Limited public API documentation makes programmatic data extraction difficult without reverse-engineering.
  • Performance degrades on large datasets, according to review themes around loading and lag issues.
  • Limited customization compared to true ERPNext forks; white-label and DocType customization are restricted relative to self-hosted ERPNext.
  • Aggressive outbound sales tactics, including Calendly booking spam, noted in Trustpilot reviews.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across OneHash CRM and Salesforce Sales Cloud.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    OneHash CRM: Not publicly documented — discovered dynamically during migration.

  • Data volume sensitivity

    B

    OneHash CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your OneHash CRM to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about OneHash CRM to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during OneHash CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your OneHash CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 20,000 Leads/Contacts and 3,000 Opportunities with no custom DocTypes and a straightforward schema. Migrations with multiple custom DocTypes, extensive custom field sets, large quotation histories, or DocType-level automations requiring inventory documentation move to ten to fourteen weeks because of the schema discovery pass, parent-record lookup resolution, and the API probing required to establish OneHash rate limits dynamically.

Adjacent paths

Related migrations to explore

Ready when you are

Move from OneHash CRM.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day