CRM migration
Field-level mapping, validation, and rollback between Function 365 and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Function 365
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 10
objects map 1:1 between Function 365 and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
72–96 hours
Overview
Function 365 business data lives across Microsoft 365 applications — Outlook contacts, Exchange email threads, Teams meeting records, and SharePoint document libraries. Dynamics 365 Sales organizes equivalent data as Contacts, Accounts, Leads, Opportunities, and Activities within Microsoft Dataverse. The migration carries everything stored natively in your Microsoft 365 environment into Dynamics 365 Sales standard entities, with custom fields created for any Function 365 properties that lack a direct Dataverse equivalent. Email history migrates as Activity records tied to Contact or Account lookups; calendar meetings become Events with original start/end times and attendee lists preserved; SharePoint file references migrate as Notes with external links intact. Owner resolution matches Microsoft 365 user emails to Dynamics 365 Sales user records so activity attribution carries across. Workflows, Power Automate flows, and Teams channel configurations do not migrate — they require recreation in the destination environment. The migration mechanism uses Microsoft Graph API for read access to source data and Dataverse Web API for writes to Dynamics 365 Sales, with bulk API batches used for record sets exceeding 500 rows.
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
Function 365 platform overview
Scorecard, SWOT, gotchas, and pricing for Function 365.
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 Function 365 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.
Function 365
Azure AD User
Microsoft Dynamics 365 Sales
SystemUser
1:1Microsoft 365 user accounts map 1:1 to Dynamics 365 Sales SystemUser records. Matching happens on UPN ([email protected]). Unmatched users are flagged before migration — either invited to Dynamics 365 first or their records assigned to a fallback owner during the load phase.
Function 365
Exchange Online Contact
Microsoft Dynamics 365 Sales
Contact
1:1Contacts extracted from Exchange Online GAL and user mailboxes map to Dataverse Contact records. The primary email address becomes Contact.Email; phone numbers, job titles, and company affiliations translate to standard Contact fields. Original Azure AD object IDs preserved as a custom field for delta-sync tracking.
Function 365
Exchange Online Mailbox Folder
Microsoft Dynamics 365 Sales
Email (Activity)
1:1Email messages from Exchange Online mailboxes are parsed into Dynamics 365 Sales Activity (email) records. Each email gets a regarding object lookup to the matching Contact or Account. Sender, recipients, subject, body (HTML), and timestamp map to corresponding Dataverse activity fields. Large inline attachments extracted to SharePoint and linked via annotation records.
Function 365
Outlook/Teams Calendar Event
Microsoft Dynamics 365 Sales
Event
1:1Calendar appointments from Outlook and Teams meetings migrate as Dataverse Event records. Start time, end time, location, subject, body, and attendee list map directly. Regarding object links to the related Contact or Account. Recurring series expanded into individual event records unless Dynamics 365 Sales calendar sync is enabled post-migration.
Function 365
SharePoint Online Document
Microsoft Dynamics 365 Sales
Annotation (Note)
1:1SharePoint file attachments associated with contacts or accounts become Dataverse Annotation records. We preserve the original SharePoint URL as an external link field on the annotation so documents remain accessible from their original storage location. File content can optionally be re-hosted in Dynamics 365 Sales connected SharePoint if your admin specifies that preference.
Function 365
Microsoft 365 Group / Distribution List
Microsoft Dynamics 365 Sales
Team
1:1Microsoft 365 Groups and distribution lists have no direct Dynamics 365 Sales equivalent. We migrate group membership as a custom field on Contact or Account for reference. The team structure and queue assignments require manual planning by your Dynamics 365 admin post-migration.
Function 365
Microsoft 365 extended user attributes
Microsoft Dynamics 365 Sales
Custom columns on SystemUser
1:1Function 365 extended user properties stored in Azure AD custom attributes (onPremisesExtensionAttributes, schema extensions) migrate as custom Dataverse columns on SystemUser. Your admin specifies which attributes to include — we create the __c fields and load values during the user migration phase.
Function 365
OneDrive for Business files
Microsoft Dynamics 365 Sales
Annotation (Note)
1:1OneDrive files linked to contacts or deals require admin authorization for Graph API access. We create Annotation records with the OneDrive file URL preserved as an external link. If your organization prefers in-Dynamics storage, files can be uploaded to the connected SharePoint site during migration.
Function 365
Teams chat messages (if scoped)
Microsoft Dynamics 365 Sales
Custom Activity table
1:1Teams chat messages lack a standard Dynamics 365 Sales activity type. If scoped for migration, chat threads with CRM-relevant context are stored in a custom Dataverse table with Contact/Account lookups. This requires custom table creation in your Dynamics 365 environment before the migration run.
Function 365
Microsoft To Do / Planner tasks
Microsoft Dynamics 365 Sales
Task (Activity)
1:1Tasks from Microsoft To Do or Planner associated with contacts or accounts migrate as Dataverse Task activity records. Task subject, due date, priority, and status map to corresponding activity fields. Open tasks carry over; completed tasks optionally included based on your retention requirements.
| Function 365 | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Azure AD User | SystemUser1:1 | Fully supported | |
| Exchange Online Contact | Contact1:1 | Fully supported | |
| Exchange Online Mailbox Folder | Email (Activity)1:1 | Fully supported | |
| Outlook/Teams Calendar Event | Event1:1 | Fully supported | |
| SharePoint Online Document | Annotation (Note)1:1 | Fully supported | |
| Microsoft 365 Group / Distribution List | Team1:1 | Fully supported | |
| Microsoft 365 extended user attributes | Custom columns on SystemUser1:1 | Fully supported | |
| OneDrive for Business files | Annotation (Note)1:1 | Fully supported | |
| Teams chat messages (if scoped) | Custom Activity table1:1 | Fully supported | |
| Microsoft To Do / Planner tasks | Task (Activity)1: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.
Function 365 gotchas
AI-assisted notes are proprietary — verify clinical-record export coverage
NHS Number format must be preserved exactly
Implementation specialist time is paid extra at £55/session
GDPR consent timestamps are regulatory artefacts
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
Assess Microsoft 365 data inventory and Graph API access
We inventory your Microsoft 365 environment: enumerate mailboxes, SharePoint sites, Teams channels, and Azure AD users. Admin consent is requested for Microsoft Graph application permissions. We document mailbox sizes, attachment counts, and SharePoint library structures to size the migration scope. This phase produces a data inventory CSV and a custom field creation plan for any Function 365 extended properties. The inventory also identifies any distribution groups or Microsoft 365 teams that may require special handling during owner resolution.
Provision Dataverse custom tables and columns in Dynamics 365 Sales
Before loading data, your Dynamics 365 Sales admin (or our team via a solution file) creates the custom SystemUser columns, Annotation URL fields, and any custom activity tables needed for Teams chat history. We deliver a solution XML package that your admin imports into the target environment, avoiding manual form configuration errors. This step runs in parallel with data extraction preparation.
Extract and transform Microsoft 365 data via Microsoft Graph
We pull contact records, email messages, calendar events, SharePoint file metadata, and OneDrive references using Microsoft Graph API calls. Data is transformed to match Dataverse column names, data types, and pick-list value formats. Emails are parsed into activity records with Contact lookups resolved via email address matching. Large email attachments are extracted to a staging Azure Blob for SharePoint re-hosting or external URL preservation.
Run sample migration with field-level diff
A representative slice of records — typically 200–500 contacts, 1,000 email activities, 200 calendar events — migrates first. We generate a field-level diff comparing source Graph API output against the Dataverse records, verifying Contact.Email resolution, ActivityRegarding lookups, and Event timing accuracy. You review the diff and approve before the full run commits. Adjustments to mapping logic are made and a second sample validates the fixes.
Execute full migration with delta-pickup window
The full data set loads via Dataverse bulk API with batch sizes tuned to avoid throttling. A delta-pickup window (typically 24–48 hours) captures records modified in Microsoft 365 during the cutover window. All operations are logged to an audit table in Dataverse. If reconciliation identifies missing or mismatched records, one-click rollback reverts the target to its pre-migration state while your team continues working in Microsoft 365.
Platform deep dives
Function 365
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Function 365 and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Function 365 and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Function 365 and Microsoft Dynamics 365 Sales .
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
Function 365: Not publicly documented.
Data volume sensitivity
Function 365 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 Function 365 to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Function 365 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 Function 365
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.