CRM migration

Migrate from Dynamics 365 Marketing to Freshsales

Field-level mapping, validation, and rollback between Dynamics 365 Marketing and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.

Dynamics 365 Marketing logo

Dynamics 365 Marketing

Source

Freshsales

Destination

Freshsales logo

Compatibility

82%

9 of 11

objects map 1:1 between Dynamics 365 Marketing and Freshsales.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Dynamics 365 Marketing to Freshsales is a structural simplification. Dynamics 365 Marketing stores CRM data in Dataverse alongside marketing-specific tables under the msdynmkt_ prefix, with customer records split between transactional CRM contacts and marketing-billed contacts managed through Customer Insights - Journeys. Freshsales uses a unified contact-company model without a separate marketing contact tier, which eliminates the per-tenant marketing billing exposure that Dynamics 365 Marketing carries but requires rethinking how marketing list membership and segment data are represented. We export CRM records via the Dynamics 365 Web API or Configuration Migration Tool, transform the Dataverse schema to Freshsales' flat contact and company structure, and load through Freshsales' REST API with batch chunking. Marketing assets including emails, journeys, segments, and forms do not have native Freshsales equivalents and are not migrated as code; we deliver a written configuration inventory for the customer's admin to rebuild. Implementation timelines for Dynamics 365 Marketing commonly stretch to 6-12 weeks with dedicated admin resources, making the cost and complexity of exit a significant factor alongside Freshsales' per-seat pricing starting at $9 per user per month.

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

Dynamics 365 Marketing logo

Dynamics 365 Marketing

What's pushing teams away

  • Users without prior Microsoft stack experience report the interface as complex and overwhelming, with menu navigation described as clunky and feature locations hard to remember across sessions.
  • Performance degrades noticeably when handling large contact databases or running complex Journey logic, leading to slow load times that disrupt marketing team workflows.
  • Licensing costs are prohibitive for small to mid-market teams; the per-tenant Marketing price point starts at $1,500/month before user-level CRM seats are added.
  • Implementation timelines commonly stretch to 6-12 weeks for full deployments, and organizations underestimate the hidden costs of training, integration, and data migration that are not included in licensing quotes.
  • Power Apps and Power Automate are marketed as low-code but require technical resources to extend; business users hit barriers quickly when documentation assumes IT-level familiarity.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Dynamics 365 Marketing objects map to Freshsales

Each row shows how a Dynamics 365 Marketing 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.

Dynamics 365 Marketing

Contact (Dataverse CRM)

maps to

Freshsales

Contact

1:1
Fully supported

Dynamics 365 Dataverse contacts map to Freshsales contacts with field-level transformation. Standard fields including name, email, phone, and address migrate directly. The Contact-to-Account relationship maps to Freshsales' Contact-to-Company association. We handle the Dataverse contact model separately from Customer Insights marketing contacts to avoid importing marketing-billed records into the CRM layer without proper segmentation flags.

Dynamics 365 Marketing

Account

maps to

Freshsales

Company

1:1
Fully supported

Dynamics 365 Account records map to Freshsales Companies. The Account name becomes the Company name, industry maps to Freshsales industry dropdown, and custom account fields map to Freshsales custom fields. Account hierarchies are preserved where Freshsales supports parent-company relationships. Companies are created before contact import so the association lookup is satisfied at insert time.

Dynamics 365 Marketing

Lead

maps to

Freshsales

Lead

1:1
Fully supported

Dynamics 365 Leads map directly to Freshsales Leads. Lead status, lead score, and lifecycle fields transform to Freshsales Lead status and rating. The lead qualification date and lead source fields migrate to corresponding Freshsales fields. Owner assignment migrates by email-based user resolution in Freshsales.

Dynamics 365 Marketing

Opportunity

maps to

Freshsales

Deal

1:1
Fully supported

Dynamics 365 Opportunities map to Freshsales Deals. Pipeline stage names from Dynamics map to Freshsales Deal stage names via a configurable mapping table. Estimated close date, amount, and probability migrate directly. The opportunity-to-contact and opportunity-to-account relationships resolve to Freshsales Deal-to-Contact and Deal-to-Company associations. Owner assignment migrates via user email resolution.

Dynamics 365 Marketing

Marketing List

maps to

Freshsales

List

1:1
Fully supported

Dynamics 365 Marketing Lists containing contact member records map to Freshsales Lists. We export the marketing list membership and recreate the list structure in Freshsales. Marketing list type (static or dynamic) is noted in the migration inventory but implemented as a Freshsales static list, as Freshsales Lists do not have a dynamic query equivalent at the marketing automation layer.

Dynamics 365 Marketing

Marketing Email (msdynmkt_email)

maps to

Freshsales

Email Template

1:1
Fully supported

Dynamics 365 Marketing emails stored in the msdynmkt_email table under Customer Insights - Journeys do not have a native Freshsales equivalent as code. We export email subject, body HTML, and from-address configuration and deliver a written inventory with HTML content for the customer's admin to recreate as Freshsales email templates. Email template metadata is preserved in documentation form.

Dynamics 365 Marketing

Customer Journey (msdynmkt_journey)

maps to

Freshsales

Workflow

lossy
Fully supported

Dynamics 365 Customer Insights Journeys stored in the msdynmkt_journey table reference segment memberships, trigger conditions, and email content that do not have a direct Freshsales equivalent. Freshsales workflows operate on Deal and Contact records but lack journey orchestration across multiple triggers and conditions. We deliver a written inventory of each Journey including its trigger logic, condition branches, and associated emails for the customer's admin to evaluate against Freshsales workflow capabilities.

Dynamics 365 Marketing

Segment (Customer Insights)

maps to

Freshsales

List or Tag

lossy
Fully supported

Customer Insights segments stored separately from Dataverse CRM records require a separate export pass. Segment criteria-based definitions and static membership lists are exported and documented for recreation in Freshsales. Freshsales does not support criteria-based dynamic segments; the replacement pattern is Freshsales Lists combined with contact scoring rules. We deliver a written segmentation inventory mapping each Customer Insights segment to a recommended Freshsales List or contact scoring setup.

Dynamics 365 Marketing

Activity (Email, Task, PhoneCall, Appointment)

maps to

Freshsales

Activity Timeline

1:1
Fully supported

Dynamics 365 Activities stored in ActivityPointer with type-specific child tables migrate to Freshsales activity records on the contact timeline. Emails, tasks, calls, and meetings preserve their subject, body, date, duration, and owner assignment. The regarding object lookup resolves to Freshsales Contact or Deal associations. Activity timestamp ordering is preserved by setting the activity date to the original Dynamics timestamp.

Dynamics 365 Marketing

Annotation (Attachment)

maps to

Freshsales

File

1:1
Fully supported

Dynamics 365 Annotations including file attachments are exported individually. We handle them in a separate pass, preserving the objectid and objecttypecode to re-associate attachments with their parent Contact, Account, or Opportunity record in Freshsales. File names and content types are preserved; image attachments render in Freshsales activity timeline.

Dynamics 365 Marketing

Campaign and Campaign Activity

maps to

Freshsales

Campaign

1:1
Fully supported

Dynamics 365 Campaigns and Campaign Activities map to Freshsales Campaigns. Campaign name, status, type, and budgeted cost migrate to Freshsales campaign fields. Campaign Activities that reference specific outreach actions are noted in the migration inventory but do not have a direct Freshsales equivalent as records; the outreach history lives in the activity timeline on individual contacts.

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.

Dynamics 365 Marketing logo

Dynamics 365 Marketing gotchas

High

Marketing Contact billing triggers on record import

High

Configuration Migration Tool does not migrate high-volume transactional data

Medium

Customer Insights segments are stored separately from Dataverse CRM records

Medium

Marketing Lists and Campaign Activities have legacy schema dependencies

Low

Custom entities require a managed solution schema, not a UI export

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Dataverse marketing contact records have no Freshsales equivalent

    Dynamics 365 Marketing distinguishes between transactional CRM contacts stored in Dataverse and marketing contacts managed through Customer Insights - Journeys. Marketing contacts are billed at the tenant level and have separate consent and subscription management. Freshsales uses a unified contact model with no separate marketing contact tier. We identify marketing-billed contact records during scoping and flag them for the customer to determine their preferred handling: import as standard Freshsales contacts with subscription status preserved, or exclude from migration if the marketing database is not needed in the new CRM. This requires advance planning because once records land in Freshsales, they are not automatically segmented by origin.

  • Marketing emails and journeys have no native Freshsales equivalent

    Dynamics 365 Marketing emails stored in the msdynmkt_email table and Customer Insights Journeys stored in msdynmkt_journey do not migrate to Freshsales as working assets. Freshsales Suite includes email templates and workflow automation for CRM-triggered follow-ups, but lacks dedicated journey orchestration with segment-based entry, multi-branch conditions, and behavioral triggers. We export email content (subject, HTML body, from address) and journey definition metadata, then deliver a written inventory for the customer's marketing team to rebuild in Freshsales or a separate marketing automation tool. Microsoft has provided import tools for emails, templates, and segments within the Dynamics ecosystem as of Spring 2025, but cross-platform migration of these assets requires manual rebuild.

  • Customer Insights segment data lives outside Dataverse

    Segment definitions and membership data in Customer Insights - Data are stored in a separate service from the core CRM Dataverse database. A migration that only exports CRM records will leave segment memberships behind. We execute a separate export pass for Customer Insights segment data and handle dependency ordering so contact records exist in Freshsales before segment memberships are referenced in the written inventory. The customer should confirm which segments are actively used before investing in rebuild scope.

  • Owner resolution requires email-based user matching

    Dynamics 365 owner assignments reference Dataverse User records by GUID. Freshsales User records have a different ID schema. We resolve owners by matching the email address of the Dynamics user to the corresponding Freshsales User. Any Dynamics user without a matching Freshsales User is placed in a reconciliation queue for the customer's admin to provision before record import continues. Inactive users in Dynamics can be mapped to inactive users in Freshsales to preserve historical assignment.

  • Custom entities require managed solution schema export

    Custom entities created within a Dataverse solution require a managed solution ZIP or Configuration Migration Tool schema export to capture relationship metadata, field security profiles, and managed property settings. UI-based exports from Dynamics 365 do not capture the full schema. We require the customer to provide the managed solution export or schema file before we can accurately map custom entity imports. Freshsales Enterprise supports custom fields on standard objects; custom entities that require entirely new object types may require Freshsales custom object configuration before migration data can be written.

Migration approach

Six steps for a successful Dynamics 365 Marketing to Freshsales data migration

  1. Discovery and environment audit

    We audit the source Dynamics 365 Marketing environment across CRM contacts (Dataverse), Customer Insights marketing contacts, marketing lists, campaigns, segment definitions, and any custom entities present in the Dataverse solution schema. We identify the marketing automation assets in use including emails, journeys, and forms. We pair this with a Freshsales environment review covering the current plan tier, existing contacts, companies, leads, deals, and any custom fields already configured. The discovery output is a written migration scope that distinguishes CRM record migration from marketing asset inventory, along with a Freshsales plan recommendation if the current plan constrains the migration scope.

  2. Schema design and Freshsales environment preparation

    We design the destination schema in Freshsales, including any custom fields required to accommodate Dynamics custom entity data, lookup field transformations, and picklist value mappings. If the customer's Freshsales plan is Growth ($9/user) and the migration includes custom entity data, we recommend upgrading to Enterprise ($59/user) before migration begins. We deploy custom fields via Freshsales Settings API or manual configuration before any data import. We document the Freshsales workflow capabilities available for recreating any Customer Insights Journey logic.

  3. Sandbox validation and mapping verification

    We run a full migration into a Freshsales sandbox using production-like data volume. The customer's team reconciles record counts (Contacts in, Companies in, Leads in, Deals in, Activities in), spot-checks 25-50 records against the Dynamics source, and validates that the contact-company associations and deal-contact associations resolve correctly. Any field mapping corrections, picklist value adjustments, or custom field additions happen in sandbox before production migration begins.

  4. User reconciliation and provisioning

    We extract every distinct Dynamics user referenced as an owner on Contact, Account, Lead, Opportunity, and Activity records. We match by email address against the Freshsales User table. Users without a matching Freshsales User go to a reconciliation queue. The customer's admin provisions any missing Freshsales users before production migration. Owner assignment cannot proceed without resolved User records in Freshsales.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies first (as parent records for contacts), then Contacts, then Leads, then Deals, then Activity history. Custom entities migrate last if they have lookups to standard objects. Marketing list membership migrates as Freshsales Lists with explicit contact membership. Each phase emits a row-count reconciliation report before the next phase begins. We use Freshsales REST API with batch chunking and handle rate-limit responses with retry logic.

  6. Cutover, validation, and marketing asset handoff

    We freeze Dynamics 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 the written inventory of marketing emails (HTML content for template recreation), Customer Insights Journeys (trigger and condition documentation), segments (criteria documentation for Freshsales List setup), and forms (field and logic documentation for Freshsales form rebuild). We support a one-week hypercare window for reconciliation issues. We do not rebuild marketing automation assets in Freshsales as part of the migration scope.

Platform deep dives

Context on both ends of the pair

Dynamics 365 Marketing logo

Dynamics 365 Marketing

Source

Strengths

  • Native integration with Microsoft 365, Teams, and SharePoint eliminates separate identity and document management overhead.
  • Dataverse provides a unified data layer across CRM, Customer Service, and Marketing, enabling single-customer-record views without ETL synchronization.
  • Customer Insights - Journeys includes AI-assisted content generation and predictive lead scoring as part of the Marketing tier.
  • Per-tenant pricing covers unlimited marketing contacts beyond the base tenant fee, which benefits large database marketers.
  • Configuration Migration Tool supports movement of marketing assets between environments for Dev-Test-Prod promotion.

Weaknesses

  • Per-tenant marketing pricing at $1,500/month plus user-level CRM seats creates significant cost for organizations not already committed to the Microsoft stack.
  • Steep learning curve and complex UI navigation mean implementation projects routinely require 6-12 weeks with dedicated admin resources.
  • Performance issues arise with large datasets and complex Journey logic, particularly when the marketing environment shares Dataverse capacity with other applications.
  • The split between outbound marketing (Customer Insights - Journeys) and transactional CRM data introduces schema complexity that simpler standalone marketing tools do not have.
  • Configuration Migration Tool cannot handle high-volume transactional data; large record migrations require Power Automate flows or custom plugins instead.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

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 Dynamics 365 Marketing and Freshsales.

  • 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

    Dynamics 365 Marketing: Dataverse Web API enforces organization-level throttling; specific limits vary by workload and are not publicly documented at fixed thresholds.

  • Data volume sensitivity

    A

    Dynamics 365 Marketing exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Dynamics 365 Marketing to Freshsales 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 Dynamics 365 Marketing to Freshsales data migrations

Answers to the questions buyers ask most during Dynamics 365 Marketing to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Dynamics 365 Marketing to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 15,000 Contacts, 3,000 Deals, and no custom entities land between three and five weeks. Migrations with custom entities requiring schema analysis, large activity histories, or multi-phase parent-record resolution move to six to ten weeks. The Freshsales plan tier affects timeline only if Enterprise-level custom objects are needed and the customer is starting on a lower tier requiring upgrade before migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dynamics 365 Marketing.
Land in Freshsales, 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