M365 Migrations.

Your team needs to find, trust and use its information after the move. Plan the content, permissions and changeover together. Matt combines Microsoft 365 migration experience with AI-assisted tooling for sources that need more than a standard import.

See the migration sources

Plan what moves.

Importing from different sources
Summary
  1. Start with the source content.

    File shares, Google Drive, Dropbox and notes represent different starting points. Inventory the content and understand the source before choosing how to move it.

    The source affects what can be preserved and how it maps to the destination. Bring those differences into the migration plan.

  2. Prepare the destination before moving content.

    Plan the destination structure and access before the move. When sites and libraries should be created depends on the source and migration method.

    Confirm the mappings before running the import. They describe where the information should go and how people should use it.

  3. Import into a usable workspace.

    The SharePoint site and document library receive the prepared content. Teams files and group access connect the result to the people who need it.

    Validate both the information and its access after import. A destination is useful when the intended team can work with what arrived.

  4. Make the move fit the source and the team.

    Source understanding, preparation and import form one migration plan. The destination combines the content structure with the access needed to use it.

    Confirm preservation against the actual source and selected tooling. The question is what your team needs to keep working after the move.

Importing from different sources.

Find out what each source holds and what the migration path can preserve: files, versions, sharing links and permissions behave differently. Design the destination and access model early, and test before the full move. Delivered: a 3 TB file-share migration into SharePoint Online for a foundation.

Metadata and identity mapping
Summary
  1. Move the document with its context.

    Source content carries meaning beyond the document itself. Metadata, versions and links can affect how people understand and use it.

    Decide which of those properties the destination needs. Include the mapping work in the migration plan before moving the file.

  2. Map what needs to survive.

    Metadata, versions and links each need a deliberate mapping. Confirm what the chosen source and tooling can preserve.

    Validate the result against the intended use. A property appearing in the plan is not evidence that it survived the move.

  3. Map people as well as content.

    Source identities need to connect to destination groups and permissions. Decide how people should reach the migrated information in their new workspace.

    Review that mapping alongside the document mapping. Correct content in the wrong access scope still needs attention.

  4. Check the result where people will use it.

    The SharePoint library receives the structured document, with connected Teams files providing a place to use it. Validate the mapped content and its access together.

    Use the required properties and roles as the basis for acceptance. Record any preservation limits that need a decision.

  5. Preserve the meaning of the information.

    Document properties and identity mapping describe different parts of the same move. Together they connect the source information to its intended destination use.

    The selected source and tools determine what can be preserved. Make that visible early, then check the actual result.

Metadata & identity mapping.

Business fields, versions, links and access carry meaning that a simple file copy misses. Agree what must survive and how it maps, then test representative content, including exceptions the tool cannot handle. Delivered: a tenant consolidation that preserved site structure and permission mapping.

Modern RBAC
Summary
  1. Inventory who can reach the source.

    Source access includes people, groups, applications and existing permissions. Understand those relationships before deciding what the destination should allow.

    An application identity is part of that inventory. Its access needs review alongside the people who use the content.

  2. Map identities into the destination.

    Identity mapping connects the source access model to Microsoft Entra ID. Use it to make the destination responsibilities and identities explicit.

    Review the intended access rather than assuming the old arrangement is right. Migration is a point at which those decisions need to be confirmed.

  3. Configure the groups that carry team access.

    Group membership connects people to Teams and SharePoint. Configure it around the roles that need to use the migrated information.

    Validate the destination as the intended team members and guests. The access decision needs to hold in the experience they will actually have.

  4. Configure application identity and grants.

    App registrations, service principals and grants define application access. Keep that configuration distinct from the membership used by people.

    Test the selected applications with their intended identity. A successful human sign-in does not establish that the application has the right access.

  5. Rebuild access as part of the move.

    Source inventory and identity mapping lead to destination group and application access. Both paths need review before the migrated system is released.

    Check who can reach Teams, SharePoint and the selected applications. The move is ready when its access matches the work, as well as its data.

Modern RBAC.

Review access rather than carry old sharing decisions into the move. Map the groups and app permissions the destination needs, and test that the wrong people cannot open sensitive content. Delivered: an Entra ID model of role-based and dynamic groups, and app registrations, for 6,000 internal and external users.

Mail migrations
Summary
  1. Choose the archives and their destination.

    This scenario starts with user-selected PST archives. Associate the source mail with the intended destination mailbox or archive.

    Make that destination decision explicit before import. The selection establishes what the job should bring into Exchange Online.

  2. Upload the archives to staging.

    Azure Storage provides the upload staging area in this pattern. It holds the selected archives for the configured import process.

    Keep staging separate from the import decision. The files still need an import job with the right mailbox mapping.

  3. Configure the job for the right mailbox.

    The import job maps the staged archives to their target. Review that mapping before the mail enters Exchange Online.

    Use the intended mailbox or archive as the basis for the check. A completed upload does not confirm the final destination.

  4. Validate the mail after import.

    Exchange Online receives the imported mail in the selected mailbox or archive. Check the result against the source and destination mapping.

    Review imported mail and target archives before closing the work. The receiving person needs the intended content in the intended place.

  5. Keep selection, mapping and validation connected.

    Selected PST archives pass through staging and a configured import job to Exchange Online. Each part has a distinct purpose.

    Keep the mapping and validation with the import record. This PST archive workflow needs to be assessed separately from other ways of migrating mail.

Mail migrations.

Mailbox moves and archive imports need their own plan: the source, the destination mailbox and checks that prove the content arrived. Delivered: a self-service PST upload to Azure Storage with automated import into Exchange Online, handed over to internal IT.

Automated migrations.

Product tools may cover the move; custom scripts handle the extraction or mapping they do not. Matt builds scripts and tests with AI assistance and reviews them before production; for a national insurer, that included reverse-engineering a legacy content system to build its migration and automated tests.

Automated migrations
Summary
  1. Choose tools around the source.

    Reviewed scripts, Microsoft tooling and third-party tools offer different ways to run a migration. Select them around the source needs and the intended destination.

    Claude and Codex can assist in authoring scripts. Review the implementation before allowing it to perform the migration.

  2. Make the run follow an explicit plan.

    The controlled migration run uses a plan and mappings. Script review and a pilot give the team a chance to check the approach before the approved execution.

    Keep those checks connected to the real source rules. Automation repeats the instructions it receives, including mistakes that review misses.

  3. Prepare the destination for the result.

    The approved run targets a prepared Microsoft 365 destination. The content needs a clear place to arrive and a structure the team can use.

    Validate the destination against the plan. Successful execution still needs evidence about the information and access it produced.

  4. Make exceptions visible to an owner.

    Results and exceptions describe what the run actually did. Use them to identify skipped work, failures and items that need a decision.

    Assign the next action instead of losing exceptions in a completed batch. The report is part of the migration result.

  5. Make repeatable work reviewable too.

    Tool selection, explicit mappings, controlled execution and validation support repeatable migration. The destination and exception report show what that execution produced.

    Use automation where its rules can be understood and checked. The value is a controlled way to carry out the plan.

Cut over and prove it.

Cutover planning.

Agree when people stop changing the source and start using the destination. Where incremental copying is supported, an early transfer shrinks the cutover window.

Confirm what the tool can rerun and recover before setting the date; a rollback cannot be assumed for every path. Delivered: tenant consolidations moved with minimal disruption to users.

Cutover planning
Summary
  1. Complete the bulk work before cutover.

    Where the source and tooling support an incremental migration, transfer the bulk while people continue working. Use a pilot to establish the checks, owners and recovery approach before scheduling cutover.

    Confirm that this approach fits the selected migration path. If it does not support incremental catch-up, plan the interruption and recovery around the method it does support.

  2. Control changes for the final increment.

    An agreed change freeze defines the point for the final increment. It gives the team a clear boundary for what remains to migrate.

    Coordinate that boundary with the people using the source. The final increment needs to reflect the changes made after the bulk transfer.

  3. Make the go/no-go decision from validation.

    Validation checks the destination before release. The go/no-go review decides whether the result is ready for users.

    Keep the agreed recovery approach ready for a no-go decision. A scheduled window does not remove the need to respond to failed checks.

  4. Release when the destination is ready.

    Release redirects users to the checked destination. It follows the final increment and the go/no-go decision.

    Keep ownership clear as users begin their work. The release decision connects the migration result to its use by the business.

  5. Keep the cutover window focused on the final change.

    For an incremental migration, complete bulk movement before the agreed cutover window. Reserve that window for the final changes, validation and release decision.

    Agree the checks and recovery approach in advance. The team should know what evidence allows release and what happens if it is not ready.

Reporting.

A file count does not prove the migration is complete. Compare expected content with the result and give every exception an owner.

Give the sponsor a view of progress and the decisions still needed. Delivered: Power BI dashboards for migration oversight on a national insurer engagement.

Reporting
Summary
  1. Know what the run starts with.

    Before the run, record the source location, item count, size and accountable owner. That inventory gives the migration a defined starting point.

    Keep the source and owner connected to the record. Planning and exception decisions need someone who understands the information.

  2. Record the intended target and mapping.

    Mapping records the destination, metadata, identity and access for the work. The target and batch show what the execution is meant to accomplish.

    Keep those intentions tied to the original inventory. The team needs to compare the result with the move that was actually planned.

  3. Reconcile what actually happened.

    Results distinguish migrated, skipped, failed and review-required items. Reconcile those outcomes with the source inventory and planned mappings.

    Use exceptions to decide the next action. A summary count is useful only when the team can account for the work behind it.

  4. Keep one record from source to outcome.

    Inventory, mappings and outcomes belong to the same migration record. They explain what existed, what was intended and what needs attention.

    Use that record to explain the migration to the people accepting it. They need to see what arrived, what did not and who will resolve each exception.

Sources migrated.

Source systems in Matt's delivered migration work. The destination and the treatment of content depend on the project.

  • Network file sharesTeam documents into SharePoint Online and personal files into OneDrive.
  • SharePoint ServerOn-premises intranets and a legacy SharePoint application modernized in Microsoft 365.
  • Microsoft 365 tenantsSharePoint sites, OneDrive content and Teams transferred between tenants.
  • Outlook PST archivesEmail archives imported into Exchange Online.
  • AconexProject documents transferred into SharePoint Online using configurable mappings.
  • Oracle WebCenter Content (Stellent UCM)Legacy content migrated into SharePoint Online with custom scripting.
  • Google DriveCloud documents migrated into Microsoft 365.
  • DropboxCloud files migrated into Microsoft 365.
  • EvernoteStored content migrated into Microsoft 365.
  • QuipDocuments migrated into Microsoft 365 with a custom tool.

Migrations delivered.

Choose a source and destination to explore migrations Matt helped deliver, with his role and the work involved.

All 9 documented projects.

Team documents and personal files

Industry
Charitable foundation
From and to
Network file shares to Microsoft 365
Matt's role
Led architecture and delivery
Work done
Moved team documents into SharePoint Online and personal documents into OneDrive. Designed the information architecture in workshops and supported the move to Teams.

File-share modernization

Industry
Foundation
From and to
Network file shares to SharePoint Online
Matt's role
Led planning and delivery
Work done
Migrated legacy file-share content alongside information architecture, search and staff training. The modernization finished on time and under budget.

An intranet moved to the cloud

Industry
Philanthropy
From and to
SharePoint Server to SharePoint Online
Matt's role
Led architecture and delivery
Work done
Moved an on-premises intranet into SharePoint Online, with workflows, security design and staff training.

A training platform modernized

Industry
Utility
From and to
SharePoint Server to Microsoft 365
Matt's role
Led architecture and delivery
Work done
Replaced a legacy SharePoint training solution with a Microsoft 365 platform, with stakeholder workshops and change support.

Collaboration tenants consolidated

Industry
Facilities services
From and to
Microsoft 365 tenant to Microsoft 365 tenant
Matt's role
Led migration and modernization
Work done
Consolidated SharePoint sites, OneDrive content and Teams into one tenant, preserving structure and permission mapping. Modernized provisioning and search.

Collaboration content transferred

Industry
Facilities services
From and to
Microsoft 365 tenant to Microsoft 365 tenant
Matt's role
Led migration delivery
Work done
Moved collaboration content into another tenant, preserving metadata, permissions and workflows. Updated applications tied to the previous tenant.

Self-service email archive imports

Industry
Facilities services
From and to
Outlook PST archives to Exchange Online
Matt's role
Designed and implemented the migration solution
Work done
Built a self-service archive upload to Azure Storage with automated Exchange Online import, then transferred operational knowledge to internal IT.

Project documents moved from Aconex

Industry
Power generation
From and to
Aconex to SharePoint Online
Matt's role
Led architecture and migration tooling
Work done
Built a migration tool with configurable field mappings to automate the transfer of project documents into SharePoint Online.

Legacy content moved into SharePoint

Industry
Insurance
From and to
Oracle WebCenter Content to SharePoint Online
Matt's role
Migration architecture and delivery support
Work done
Used AI-assisted reverse engineering to develop migration scripts and automated tests, with dashboards supporting migration oversight.

How Matt can help you plan.

Bring what needs to move, the deadline and what the business cannot afford to lose. We identify what needs investigating before the work is scoped.

Plan the move

Inventory the source, decide what moves and what stays, map identities and permissions, and set the waves and cutover.

Best fitA deadline and a source system
ScopeAgreed on a call
  • Inventory and scope
  • Identity and permission mapping
  • Waves and a cutover plan
Scope this on a call

Deliver the migration

Run the pilot and the waves with product tools or reviewed scripts, then report what arrived and resolve the exceptions.

Best fitA plan ready to run
ScopeAgreed on a call
  • A pilot, then migration waves
  • Custom tooling where needed
  • A reconciliation report
Scope this on a call

What you receive.

Content your team can find and trust on the first day.

  • A migration planWhat moves, in which wave, and when cutover happens.
  • MappingMetadata, identities and permissions, tested.
  • Migrated contentIn the destination, with access checked.
  • ReconciliationWhat arrived, and an owner for every exception.

Work with us.

Matt's migration work spans discovery, architecture, tooling and technical escalation. At enterprise scale he plans and shadows while a larger firm implements. Remote first, with visits across Toronto, Mississauga and the Golden Horseshoe.

Plan your Microsoft 365 migration.

Tell Matt what needs to move, and by when.