SharePoint Modernization scan
The Modernization scan at /governance/modernization inventories classic-era workloads — InfoPath forms, SharePoint Designer workflows, classic publishing pages, web parts, custom master pages — and projects the effort to convert each one to a modern target (Power Apps, Power Automate, modern pages, SPFx). Use it to scope a modernization SOW with defensible hour estimates.
Example output from a mid-size engineering tenant. Hour totals assume the default blended rate.
WHAT YOU'LL SEE
Four summary tiles by artifact type with counts and an S / M / L / XL complexity breakdown. Each tile drills into a per-row list with the individual form/workflow/page name, its measured complexity inputs (field count, step count, etc.), and the recommended conversion target. The SOW export rolls these into a phased proposal.
Before you start
- SharePoint credential with at least Site Collection Administrator on every target site. The scan calls admin-only endpoints (Features, Sandboxed Solutions, Change Log).
- Tenant admin for form and workflow inventory. InfoPath templates and SP Designer workflow definitions require SharePoint Admin to enumerate cleanly.
- Licensing. Included on Partner tier and above. Insight tier sees summary only; full per-artifact breakdown requires Partner.
- If the tenant still has SharePoint 2013 workflows, verify Workflow Manager health first — a dead Workflow Manager returns
unknownstate on those rows.
Running the inventory
- Open Governance → Modernization (
/governance/modernization).BreadcrumbGovernance › Modernization › New inventory - Select the SharePoint credential with the widest scope — the scan is bounded by credential reach.
CredentialCredential:sp-contoso-tenantadmin· Site Collection Admin on 87/87 sites
- Choose scope: Whole tenant, Specific site collections, or Hub. First pass on an unfamiliar tenant: Whole tenant.
Whole tenant Specific sites Hub
- Click Start inventory. Budget ~30 seconds per site collection — a 200-site tenant is 60–90 minutes.
Start inventoryScanning site 41 / 87…
- Results persist. Re-run monthly to trend progress; each run is a separate snapshot.
Snapshotsrun_4e7a (today) · run_3d11 (Mar 15) · run_2a03 (Feb 15) · View trend
HEADS UP
Workflow Manager on hybrid tenants times out under load. If SP 2013 workflows show unknown state on more than a handful of rows, pause and verify Workflow Manager health before exporting the SOW — an unknown workflow becomes an open-ended line item nobody can size.
The effort model
Every row the scan produces has an effort band: S (up to 4 hours), M (4–16 hours), L (16–40 hours), or XL (40+ hours, scope separately). The band is not a guess — it is derived from the artifact's measurable complexity:
| Artifact | Inputs to the band | Conversion target |
|---|---|---|
| InfoPath form | Field count, rule count, external data connections, code-behind presence, attachment handling | Power Apps canvas app, with Dataverse or the original SharePoint list as backing store. Signed/archival forms can also route to the InfoPath PDF Archive. |
| SP Designer workflow | Step count, impersonation steps, HTTP calls, task process blocks, dictionary variables | Power Automate cloud flow (preferred) or desktop flow if the original uses file-system actions. |
| Classic publishing page | Web part count, custom layout usage, reusable content blocks, JSLink presence | Modern communication site page with configured web parts. XL band indicates a custom layout that needs an SPFx application customizer. |
| Sandboxed solution / farm solution | Assembly count, feature scope, event receivers, custom fields | SPFx extension or SPFx web part, depending on what the solution does. Event receivers map to Power Automate or Graph change notifications. |
| Custom master page / theme | CSS lines, JS lines, image assets, SharePoint-specific tokens | Modern theme JSON (Set-SPOTheme) plus an SPFx application customizer for any header/footer logic. |
Hours are conservative — they assume a single engineer who knows the target platform but is seeing the source artifact for the first time. Teams that have already built the target pattern can divide by 1.5–2.
RESULT
The SOW export sheet gives you one row per artifact with inputs, band, hours, and target. Any defensible challenge from procurement ("why 14 hours for this form?") lands on the inputs column and closes itself.
Pricing a modernization SOW
The Export to SOW button produces an Excel workbook with one sheet per artifact type and a roll-up that sums hours by band, applies your configured blended rate, and adds a 15% contingency line. Rate is set per-project under Settings → Governance and is never persisted in the export.
A defensible SOW typically presents three phases:
- Phase 1 — quick wins. All
Sitems. Close out in the first sprint to build momentum. - Phase 2 — core work.
M+L, grouped by site or department. - Phase 3 — strategic.
XLitems. Each is a separate design conversation — present as "discovery + design" line items with a not-to-exceed cap.
Run dependency graph first
A modernization row that depends on a list being migrated first is not independent work. Always run the Dependency Graph scan before finalizing the SOW order of operations — the graph tells you which conversions unblock which other conversions.
Troubleshooting
"InfoPath form count looks too low"
The scan inventories published form templates, not submitted content files. Submitted-only XMLs migrate as static content, not as modernization candidates.
Workflows show as unknown
SP 2010 workflow engine or Workflow Manager is unhealthy. For hybrid, re-run Get-SPWorkflowServiceApplicationProxy. For online-only, open a support ticket.
Throttle ceiling hit mid-run
The scan respects Graph/SharePoint throttle headers automatically. A hard throttle.exhausted failure means another process is consuming the same quota — retry outside business hours or scope to one hub at a time.
What's next
- Dependency Graph scan — map which apps and flows touch which lists.
- Migration Rehearsal dry-run — test the cutover plan once the SOW scope is locked.
- SharePoint Site Migration — execute the actual content move.
- InfoPath PDF Archive — archive-only path for forms you are not rebuilding as Power Apps.