CRM migration
Field-level mapping, validation, and rollback between OneHash CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
OneHash CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 10
objects map 1:1 between OneHash CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Leaving OneHash CRM for Microsoft Microsoft Dynamics 365 Sales is primarily an ecosystem and scalability decision. OneHash is an ERPNext fork with Indian-rupee annual billing, a limited API documentation surface, and a data model built around DocTypes rather than standard CRM objects. Microsoft Dynamics 365 Sales operates on Microsoft Dataverse with a structured Lead-to-Contact-to-Account model, per-user USD pricing, and deep Microsoft 365 integration. We handle the schema translation from ERPNext-style DocTypes to Dynamics 365 entities, manage the parent-record lookup chain during import, and flag every automation requiring manual rebuild because Workflows and DocType-level custom actions do not migrate as code. Pricing resets from the INR-denominated annual Growth plan to Microsoft Dynamics 365 Sales Professional ($65/user/month) or Enterprise ($105/user/month) billed in USD, and the free-tier ceiling that caps OneHash usage at 2 users disappears entirely.
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.
Source platform
OneHash CRM platform overview
Scorecard, SWOT, gotchas, and pricing for OneHash CRM.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , 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
Microsoft Dynamics 365 Sales
Lead
1:1OneHash Lead records (with status, source, converted flag, and conversion timestamp) map directly to Microsoft Dynamics 365 Sales Lead. The DocType field names (custom fields via ERPNext Customize Form) are resolved during pre-migration schema discovery. OneHash lead_type and lead_owner fields map to LeadSource and OwnerId respectively. We create the Dynamics 365 Lead first, then run the Lead qualification and conversion as a separate post-import validation step rather than auto-converting during migration to avoid creating orphaned Contact-Account pairs.
OneHash CRM
Contact
Microsoft Dynamics 365 Sales
Contact
1:1OneHash Contact records with first_name, last_name, email_id, phone, and organization linkage map to Dynamics 365 Contact. We resolve the Organization link to a parent Account (created first) and set the Contact's AccountId at insert time to satisfy the required lookup. OneHash's DocType-level custom fields (discovered via schema introspection) map to typed Dataverse columns on Contact; unmapped custom fields are flagged in the pre-migration report and either become custom fields in Dynamics 365 or are noted as requiring manual re-entry.
OneHash CRM
Customer
Microsoft Dynamics 365 Sales
Account
1:1OneHash Customer (organization-level record with billing and shipping addresses) maps to Dynamics 365 Account. Customer name maps to Account Name; website maps from the stored domain field. The customer_type field (Individual vs Company) maps to Account Type picklist. We create Accounts before any Contact or Opportunity import to ensure the parent lookup chain is satisfied at insert time.
OneHash CRM
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1OneHash Opportunity records with deal stage, amount, probability, and party linkage map to Dynamics 365 Opportunity. The pipeline stage name from OneHash maps to the target Microsoft Dynamics 365 Sales Process stage value. We build the Sales Process (a Dynamics 365 configuration entity) during the schema phase, mapping each OneHash stage name to an equivalent Dynamics 365 stage with the correct probability percentage. The parent AccountId and OwnerId are resolved at migration time via the lookup queues populated during the Accounts and Users phases.
OneHash CRM
Quotation
Microsoft Dynamics 365 Sales
Quote
1:1OneHash Quotation records carry line items linked to Items, with tax templates and terms text. We map Quotation to Dynamics 365 Quote, QuoteLineItem to QuoteDetail, and the terms field to Quote Description. The quotation_to_opportunity linkage is preserved by mapping the parent Opportunity's GUID into Quote's OpportunityId field after Opportunity import completes. OneHash tax templates do not have a direct Dynamics 365 equivalent; we map the net and gross amounts and flag any tax calculation rules that require reconfiguration in Microsoft Dynamics 365 Sales tax settings.
OneHash CRM
Sales Order
Microsoft Dynamics 365 Sales
Sales Order
1:1OneHash Sales Order records with delivery and billing status flags map to Microsoft Dynamics 365 Sales Order. Order item rows map to SalesOrderDetail with ProductId and Quantity resolved via the Items mapping. Custom Item fields from OneHash DocTypes that do not exist in Dynamics 365 are flagged as requiring a Dynamics 365 custom field creation step before order line import proceeds. Order status flags (On Hold, Completed, Cancelled) map to the Dynamics 365 Status field with statecode transitions enforced.
OneHash CRM
Items
Microsoft Dynamics 365 Sales
Product2
1:1OneHash Item records (product/service definitions with pricing, stock data, and custom attributes) map to Dynamics 365 Product2. Standard fields (item_code, item_name, standard_rate, item_group) map directly. OneHash allows extensive custom Item fields specific to the business; we discover all active custom fields during the DocType schema pass and pre-create matching Product2 custom fields (__c suffix) in Dynamics 365 before import. Price list entries map to Dynamics 365 PriceListItem linked to a PriceLevel.
OneHash CRM
Custom Fields
Microsoft Dynamics 365 Sales
Custom Fields
lossyOneHash allows unlimited DocType-level custom fields via ERPNext's Customize Form tool. These do not appear in standard API responses without explicit field inclusion. We run a pre-migration discovery pass that introspects each DocType's custom field definitions via the API, cataloging field names, types (Data, Int, Float, Date, Link, Select, Check), and the parent DocType. Each discovered custom field is either mapped to a typed Dynamics 365 Dataverse column or flagged as requiring a pre-import schema creation step in the target environment.
OneHash CRM
Attachments
Microsoft Dynamics 365 Sales
Annotation (Note/Attachment)
1:1Documents attached to any OneHash DocType migrate as Dynamics 365 Annotation records (notes with file attachments). We preserve the original file name and the linked parent record's GUID. Large binary attachments may require chunked download and re-upload due to API payload limits on both sides. We flag attachments exceeding 25 MB for manual transfer with a documented file list for the customer's admin.
OneHash CRM
Owner
Microsoft Dynamics 365 Sales
User
1:1OneHash Owner records (the users assigned to Lead, Contact, Opportunity, and Quotation) map to Dynamics 365 User by email address. Any OneHash Owner without a matching Dynamics 365 User is held in a reconciliation queue and the customer provisions the User before record import resumes. OwnerId references on all target objects must resolve before import can complete.
| OneHash CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Customer | Account1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Quotation | Quote1:1 | Fully supported | |
| Sales Order | Sales Order1:1 | Fully supported | |
| Items | Product21:1 | Mapping required | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Attachments | Annotation (Note/Attachment)1:1 | Mapping required | |
| Owner | User1: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.
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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
DocType schema discovery and scoping
We audit the source OneHash environment across every active DocType (Lead, Contact, Customer, Opportunity, Quotation, Sales Order, Items, Projects, Employees if applicable). We run the schema introspection pass that fetches each DocType's field list from the API, including any custom fields added via the Customize Form tool. The output is a written schema map with field names, types, and a preliminary mapping to Dynamics 365 Dataverse columns. We pair this with a Dynamics 365 edition recommendation (Sales Professional at $65/user or Sales Enterprise at $105/user) based on the complexity of the discovered schema and the customer's pipeline structure.
Dynamics 365 environment preparation
We configure the Dynamics 365 destination environment before any data moves. This includes creating custom fields on Contact, Lead, Account, Opportunity, and Quote that correspond to discovered OneHash DocType custom fields, building Sales Processes that map to OneHash pipeline stages, and setting up Record Types for multi-line-of-business accounts. We deploy into a Dynamics 365 Sandbox first for validation. Currency and fiscal period settings are configured to align with the customer's reporting requirements.
User provisioning and Owner reconciliation
We extract every distinct OneHash Owner (user) referenced on Lead, Contact, Account, Opportunity, Quotation, and Sales Order records and match by email against the Dynamics 365 destination's User table. Any OneHash Owner without a matching Dynamics 365 User is placed in a reconciliation queue. The customer's Dynamics 365 admin provisions missing Users before record import proceeds. OwnerId references are required on all target objects, so this step gates all subsequent phases.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sandbox using production-equivalent data volume. The customer's RevOps or CRM admin spot-checks 25-50 random records against the OneHash source (record field values, attachment linkage, pipeline stage names) and signs off the schema and mapping before production migration begins. Mapping corrections and any missing custom field definitions identified during sandbox testing are resolved here.
Production migration in dependency order
We execute production migration in record-dependency order: Users (provisioned, validated), Accounts (from OneHash Customer), Contacts (with AccountId resolved), Leads (with OwnerId resolved), Opportunities (with AccountId, OwnerId, and Sales Process resolved), Products and Price List entries (from OneHash Items), Quotes (with OpportunityId resolved post-Opportunity import), Quote Line Items, Sales Orders (with ProductId and AccountId resolved). Custom fields are imported as a late phase using the custom column names pre-created in Dynamics 365. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta sync, and Workflow handoff
We freeze OneHash writes during cutover and run a final delta migration of any records modified during the migration window. Attachments are transferred as Annotation records with parent record linkage. We deliver the Workflow inventory document to the customer's admin team for rebuild in Power Automate or Microsoft Dynamics 365 Sales Processes. We support a one-week hypercare window for reconciliation issues raised during initial use of the Dynamics 365 environment. We do not rebuild OneHash Workflows or custom DocType actions inside the migration scope; that is a separate engagement.
Platform deep dives
OneHash CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 OneHash CRM and Microsoft Dynamics 365 Sales .
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
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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your OneHash CRM to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.