MigrationFox Docs

SharePoint Provisioning

Create destination SharePoint sites, document libraries and folders (plus Teams, channels, Google shared drives and S3 buckets) from inside MigrationFox, so the destination exists before you start a migration. You describe the resource; MigrationFox calls the platform’s own API under the connection you choose.

What you can provision

SharePoint sites (team or communication), document libraries inside existing sites, and folders; Microsoft Teams teams and standard channels; Google shared drives and folders; S3 buckets and folder prefixes; and folders on OneDrive, Box, Dropbox and SFTP. It all happens in the app, without switching to an admin portal mid-project.

What triggers provisioning

Provisioning is never implicit. MigrationFox only creates a destination resource when you ask it to, through one of these entry points.

The Provision tab on any project

Inside a project, open the Provision tab and:

  1. Pick the connection to create the resource with. The options under What do you want to create? depend on its platform (for SharePoint: Create Site, Create Library, Create Folder).
  2. Enter a Display name. For sites, libraries and buckets a URL slug is filled in from the name; edit it if the address should differ (a site becomes /sites/<slug>).
  3. Fill in the type-specific options: Site template (Team Site or Communication Site), Also create a Microsoft Teams team (team sites only, off by default), Parent path for libraries and folders, or Parent team for channels.
  4. Click the create button (for example Create Site). MigrationFox shows the new resource’s path and URL, with a Use as Destination: Copy Path button, and lists it under Recently provisioned.

This is the standalone path, useful when you are pre-staging destinations before any migration is set up.

Inline from the SharePoint migration wizard

When you pick the destination in the SharePoint & OneDrive migration wizard (web app and MigrationFox Desktop), choose + Create new site to create a team or communication site on the spot. The new site becomes the destination and the wizard continues. Inline creation covers sites only; create libraries and folders from the Provision tab.

Bulk Provisioning (many sites at once)

To create many sites from a CSV or JSON list, use the Create Sites tab of Bulk Provisioning. It runs the same site creation for each row and reports every row as created, skipped or failed.

The Restructuring Wizard

The Restructuring Wizard proposes a split of one large site into several new sites. When you execute the plan, it creates each new site (a Microsoft 365 group site with a Teams team) and its libraries before queuing the content copy.

How sites are created

The site template you pick (see Template selection) decides which Microsoft API is used:

Site creation is asynchronous on the Microsoft side. After the create call, MigrationFox checks for the new site every few seconds for up to about 30 seconds and returns its URL once SharePoint reports it. If the site is still being set up after that, wait a minute before uploading to it.

URL slugs and existing sites

Two sites in the same tenant cannot share a URL. If you ask for /sites/marketing and that address is taken (including by a deleted site that SharePoint still keeps in its deleted-sites holding period, 93 days by default), SharePoint either refuses the creation or creates the site at a numbered variant of the address.

A deleted site’s address is held until it is purged

A slug you just deleted is not immediately available for a new site. If you need the exact same URL, permanently delete the held site in SharePoint admin center → Deleted sites before provisioning again. Otherwise choose a different slug up front.

Template selection

Two site templates are available. Each uses a different Microsoft API and a different permissions model.

Default

Team site (Microsoft 365 group)

When to use: the destination is a working team that collaborates on files.

What you get: a SharePoint team site connected to a Microsoft 365 group. Tick Also create a Microsoft Teams team to add a Team on top of the same group. It is off by default because creating a Team also sends notification emails to group members.

Permissions model: inherited from the group. Add or remove people through the group.

Created via: Microsoft Graph group creation.

Alternative

Communication site

When to use: the destination is a publishing-style site (policies, handbooks, announcements, reference libraries) that most people read and a few people edit.

What you get: a SharePoint communication site without an underlying Microsoft 365 group.

Permissions model: managed through SharePoint site permissions directly.

Created via: SharePoint’s site-creation API. This needs a connection made with Sign in with Microsoft; SharePoint rejects app-only (service account) tokens for this call.

Classic team sites (no Microsoft 365 group) are not offered.

Prerequisites

Provisioning runs under the connection you pick. On the Microsoft side:

The connection you use for provisioning does not have to be the one you migrate with. A common pattern: provision with an administrator’s connection, then migrate with a connection scoped to the new sites.

Bulk site creation

Bulk Provisioning creates sites one at a time, in the order of your list, up to 200 sites per run. Creating them one after another keeps the run within Microsoft’s throttling limits for site creation and gives each new group time to settle. If a row fails (for example a permission or naming problem), that row is marked as failed with the reason, and the run continues with the next row. You get a per-row result at the end.

Known limits

Troubleshooting

SymptomLikely causeFix
The site was created at a different address than the slug I entered (for example /sites/marketing2) The address was taken, often by a deleted site that is still in SharePoint’s 93-day holding period, so SharePoint picked a numbered variant. Check SharePoint admin center → Deleted sites and permanently delete the held site, or pick a different slug.
Site appears to create successfully but uploads fail immediately after SharePoint had not finished setting up the site. MigrationFox waits up to about 30 seconds for its own creations; a site created elsewhere (PowerShell, admin center) may not be ready yet either. Wait a minute and retry.
Team-site creation fails with an access error mentioning Group.ReadWrite.All The connection was made before MigrationFox requested that permission, or your tenant restricts Microsoft 365 group creation. Disconnect and reconnect the connection with Sign in with Microsoft. If it still fails, check Microsoft Entra ID → Groups → General settings for a group-creation restriction.
Communication-site creation fails with “Unsupported app only token” The connection uses an app-only (service account) credential. SharePoint’s site-creation API requires a signed-in user. Reconnect the destination with Sign in with Microsoft.
Permissions on the provisioned team site do not match expectations Team-site permissions flow from group membership. Adding people to the SharePoint site directly instead of the group gets the two out of sync. Manage membership through the Microsoft 365 group (Entra admin center or Teams), not through SharePoint site settings.
Creating a team or channel fails with 403 The Microsoft Teams connection’s app is missing an application permission. Grant Group.ReadWrite.All (team) or Channel.Create (channel) as an application permission in the app registration, click Grant admin consent, then retry.

Related