CRM migration
Field-level mapping, validation, and rollback between Freshsales and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Freshsales
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
8 of 9
objects map 1:1 between Freshsales and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Try the reverse
Overview
Moving from Freshsales to Microsoft Microsoft Dynamics 365 Sales is a structural migration across two platforms with different data models, automation architectures, and licensing tiers. Freshsales uses Leads and Contacts as distinct objects with lifecycle stages; Microsoft Dynamics 365 Sales maps this model natively with Lead-to-Contact field mappings that can be configured in the destination admin settings. We resolve the Leads and Contacts split using Freshsales lifecycle stages, map Deals to Opportunities with pipeline-to-sales-process configuration, and preserve activity history through Dynamics 365 Data Migration tooling. Freddy AI scoring and deal predictions do not migrate because they are computed at runtime by Freshworks and have no Dynamics 365 equivalent. Freshsales workflows, sales sequences, and automation rules do not migrate as code; we deliver a written inventory of every active automation requiring rebuild in Dynamics 365 Power Automate or the sales process designer post-migration.
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
Freshsales platform overview
Scorecard, SWOT, gotchas, and pricing for Freshsales.
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.
Source platform guide
Freshsales migration guide
Understand the data you're exporting from Freshsales before mapping it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Source checklist
Freshsales migration checklist
Exit checklist for unwinding your Freshsales setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Freshsales 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.
Freshsales
Lead
Microsoft Dynamics 365 Sales
Lead
1:1Freshsales Leads map directly to Microsoft Dynamics 365 Sales Lead. We preserve all standard fields (Name, Email, Phone, Company, Lead Status, Source), custom fields, and any Freddy AI scoring values in a custom field fs_freddy_score__c. Lead Status from Freshsales (New, Contacted, Qualified, Unqualified) maps to Dynamics 365 Lead Status with a picklist value mapping created during schema configuration.
Freshsales
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Freshsales Contacts map directly to Dynamics 365 Contact. We preserve all standard fields, custom fields, and lifecycle stage data (subscriber, lead, marketing qualified lead, sales qualified lead, customer) in a custom field fs_lifecycle_stage__c for audit and reporting. Contact is imported after Account so that the AccountId Lookup relationship is satisfied at insert time.
Freshsales
Account
Microsoft Dynamics 365 Sales
Account
1:1Freshsales Account records map to Dynamics 365 Account. The Account Name becomes the Account Name field and is used as the dedupe key during import. We preserve all standard fields, custom fields, industry classification, address data, and the multi-Contact association mapping. Account is imported first because both Contact and Opportunity carry AccountId Lookup references.
Freshsales
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1Freshsales Deals map to Microsoft Dynamics 365 Sales Opportunity. The dealstage property maps to Dynamics 365 Opportunity Stage via a Sales Process we configure before migration. Amount, CloseDate, Probability, Owner, and associated Contacts migrate directly. Pipeline name from Freshsales becomes a Dynamics 365 Record Type on Opportunity so that stage values remain scoped per business line.
Freshsales
Pipeline
Microsoft Dynamics 365 Sales
Record Type + Sales Process
lossyFreshsales multiple pipelines (available on Pro and above) map to Dynamics 365 Record Types on Opportunity. Each Record Type gets its own Sales Process with stage values scoped to that pipeline. Stage probability percentages migrate from Freshsales to Dynamics 365 StageProbability. Territory assignments from Freshsales Pro map to Dynamics 365 Territory or a custom field fs_territory__c depending on the destination plan tier.
Freshsales
Product
Microsoft Dynamics 365 Sales
Product2
1:1Freshsales Product catalog maps to Dynamics 365 Product2. ProductCode, Name, Description, Unit, and Pricing migrate directly. Standard Price Book entries are created during import. CPQ licenses on Freshsales are plan-gated (one on Growth, more on Pro); we flag any CPQ-related Deal records for review against the destination Microsoft Dynamics 365 Sales plan CPQ capabilities.
Freshsales
Activity: Task
Microsoft Dynamics 365 Sales
Task
1:1Freshsales Tasks map to Dynamics 365 Task. Status, Priority, Subject, Description, DueDate, and Owner migrate directly. Task assignment resolves via email match to the Dynamics 365 User table. Task is imported after Contact and Account so that the Regarding (object) Lookups are satisfied.
Freshsales
Activity: Event / Call
Microsoft Dynamics 365 Sales
Event
1:1Freshsales Event and Call records map to Dynamics 365 Event. StartDateTime, EndDateTime, Location, and Description preserve. Call duration, disposition, and recording URLs migrate to custom Event fields. Event is imported after Contact and Account to satisfy the Required Attendees and Optional Attendees EventRelation lookups.
Freshsales
Custom Field
Microsoft Dynamics 365 Sales
Custom Field
1:1Freshsales custom fields on Leads, Contacts, Accounts, and Deals map to Dynamics 365 custom fields of equivalent data type. We handle text, number, date, picklist, multi-select picklist, boolean, and currency field types with type-mapped Salesforce-style field creation in Dynamics 365. Advanced custom fields gated by Freshsales plan tier (Pro or Enterprise) are flagged if the destination plan has equivalent gating.
| Freshsales | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Product | Product21:1 | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| Activity: Event / Call | Event1:1 | Fully supported | |
| Custom Field | Custom Field1: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.
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
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
Discovery and edition selection
We audit the source Freshsales portal across plan tier (Free/Growth/Pro/Enterprise), custom field definitions, custom object schemas, pipeline count, active workflows, active sales sequences, engagement volume, and file attachment sizes. We pair this with a Microsoft Dynamics 365 Sales edition recommendation: Professional at $65/user covers most migrations without custom objects; Enterprise at $105/user is required for Copilot AI, advanced pipeline intelligence, and conversation intelligence through Teams; Premium at $150/user includes full AI surface coverage. The discovery output is a written migration scope and an edition recommendation aligned to the customer's existing Microsoft 365 licensing.
Schema design and Lead-to-Contact mapping configuration
We design the destination schema in Microsoft Dynamics 365 Sales . This includes provisioning custom fields (with typed equivalents for Freshsales custom field data types), Record Types (one per Freshsales pipeline), Sales Processes (stage value whitelist per Record Type), and the Lead-to-Contact field mapping configuration that Dynamics 365 requires for data to transfer during Lead qualification. We also configure the Contact-to-Account relationship mapping so that when Contacts are created from Freshsales data they are linked to the correct Account. Schema is deployed to a Dynamics 365 Sandbox for validation before production migration.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sandbox using production-like data volume. The customer's RevOps lead reconciles record counts (Leads in, Contacts in, Accounts in, Opportunities in, Activities in), spot-checks 25-50 random records against the Freshsales source, and validates the Lead-to-Contact field mapping behavior by qualifying a test Lead in Dynamics 365. Any mapping corrections or validation rule adjustments happen in the sandbox before production migration begins.
User provisioning and owner reconciliation
We extract every distinct Freshsales Owner referenced on Contact, Account, Deal, and Activity records and match by email against the Dynamics 365 destination org's User table. Owners without a matching User go to a reconciliation queue. The customer's Dynamics 365 admin provisions any missing Users before record migration resumes. Migration cannot proceed past this step because OwnerId references are required on most standard objects in Dynamics 365.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Freshsales Accounts, first because both Contact and Opportunity carry AccountId), Contacts (with AccountId resolved), Leads (with status and score fields), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Products and Pricebook entries, Activity history (Tasks and Events via Dynamics 365 Data Migration Manager or Bulk API), Custom field data on all objects. Each phase emits a row-count reconciliation report before the next phase begins. We sample activity records for field-level accuracy against the Freshsales source.
Cutover, validation, and workflow rebuild handoff
We freeze Freshsales writes during cutover, run a final delta migration of any records modified during the migration window, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Workflow and Sequence 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 sales team. We do not rebuild Freshsales Workflows as Power Automate flows inside the migration scope; that work is documented for the customer's Microsoft partner or admin team to handle as a separate engagement.
Platform deep dives
Freshsales
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Freshsales and Microsoft Dynamics 365 Sales .
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
Freshsales: Not publicly documented on Freshworks CRM; Freshdesk docs reference rate limits but Freshsales-specific limits are undocumented.
Data volume sensitivity
Freshsales 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 Freshsales to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Freshsales 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 Freshsales
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.