← Back to Blog

GOVERNANCE · April 15, 2026 · 12 min read

Your SharePoint modernization inventory: what to fix before the EOL window closes

app.migrationfox.com/governance/modernization
Modernization Inventory
tenant scan · 420 sites · 18m 04s
EOL WINDOW: 8 MONTHS
HIGH InfoPath EmployeeOnboarding.xsn 14 fields · 2 DCs
HIGH SP 2013 WF Invoice Approval — state machine ran 4h ago
MEDIUM Classic Page Annual Report 2019 6 web parts
MEDIUM InfoPath TravelRequest.xsn list form
LOW Wiki Page IT Runbook → Backup Procedures auto-convert
LOW Lookup Col Projects → ClientList zombie · target OK
… 993 more artefacts across 420 sites
InfoPath
67
2013 WF
89
Classic Pages
221
Wiki
508
Estimated effort
1,104 days
Aggregate output · 420-site engineering firm tenant, Q1 2026

The next twelve months are the busiest end-of-life window SharePoint has seen in a decade. SharePoint 2013 workflows, the engine behind thousands of long-running approval and document lifecycle processes in the average tenant, were retired in April 2026. InfoPath, which Microsoft stopped developing in 2014 but kept on life support for an embarrassingly long time, retires in December 2026 — at which point it stops rendering full stop. Classic SharePoint pages are on a slower deprecation curve but the direction of travel is the same: modern pages, modern lists, modern columns, or nothing.

The problem most teams face is not “we do not know modernization is coming.” Everyone knows. The problem is scope. You walk into a tenant with 800 sites and the first question is “how many InfoPath forms do we have?” The honest answer is nobody knows, because InfoPath forms live inside form libraries scattered across site collections, some of them published, some of them as saved-as templates, some bound to Access Services that shut down five years ago. You cannot estimate the project until you have the inventory, and you cannot build the inventory by hand.

The Modernization Engine at /governance/modernization is the inventory-first answer. You scan, you get a line-itemised list of every legacy artefact across your tenant, each one scored for modernization effort. Now you can quote the project.

The EOL timeline, in plain calendar form

The dates that actually matter, from Microsoft’s published retirement notices:

“We will deal with InfoPath later” has been a valid answer for eleven years. From December 2026 it becomes the answer that explains why forms do not work.

What the scanner finds

The engine walks your tenant via Graph and SharePoint REST and classifies every artefact into five modernization categories.

1. InfoPath forms

Scan surface: every document library with content type Form, InfoPath Form, or containing files with extension .xsn, .xml (bound to form templates), or a FormTemplates hidden library. The scanner inspects the XSN header to determine whether the form is a list form, a library form, or a free-standing published form, because the conversion target differs.

2. SharePoint 2013 workflows

Scan surface: every list and library has a WorkflowAssociations collection; we enumerate workflow templates across the tenant and flag anything with the 2013 engine. We also read the History list for recent runs — a workflow that has not executed in 18 months is scored lower priority than one that ran yesterday.

3. Classic publishing pages

Scan surface: pages in the Pages library (publishing sites) or SitePages where the PublishingPageLayout field is set. We capture layout, web parts, and custom CSS references because those drive the conversion effort.

4. Wiki pages

Scan surface: pages in SitePages with the wiki layout. Wiki pages convert to modern one-column pages cleanly in most cases but wiki-style inline links ([[Page Name]]) have to be rewritten.

5. Classic lookup columns and calculated fields

Scan surface: every list’s field schema. Classic lookups reference other lists by list ID; if the target list has been deleted, the lookup becomes a zombie column that cannot render in modern views. Calculated columns referencing deprecated functions (TEXT with locale-specific format strings, for example) also surface here.

Sample conversion plan — InfoPath form
SOURCE
ExpenseClaim.xsn · 22 fields · 3 views · cascading dropdowns
TARGET
Power Apps customised list form + Power Fx rules
Effort
HIGH
Days
5.0
Risk
Rule parity

Effort estimates

Every finding is tagged with one of four effort levels. The numbers are calibrated against measured time on real conversion projects, not guesses:

LevelDays per itemExample
Low0.5Wiki page with no custom layout; converts to modern one-column page with the built-in tool
Medium2InfoPath list form with fewer than 20 fields, no external data sources, no complex rules
High5InfoPath form with secondary data connections, cascading drop-downs, code-behind, or Access Services binding
Manual-only8SP 2013 workflow with custom activities, reflection into assemblies, or third-party workflow actions; must be rebuilt in Power Automate from first principles

The engine multiplies per-item effort by item count per site and rolls up totals at the site-collection and tenant levels. A tenant report usually comes back with a single number at the top: “Estimated modernization effort: 142 person-days.” That is the number you put in your quote or plan against.

The conversion target matrix

Each legacy artefact has a recommended modern target. The matrix the engine uses:

Legacy artefactRecommended modern targetCaveat
InfoPath list formPower Apps list form (customised SharePoint list form)Per-field rule conversion is not 1:1; conditional formatting needs a Power Fx rewrite
InfoPath published standalone formPower Apps canvas app + Dataverse or SharePoint backendMore work than list forms; secondary connections need new connectors
InfoPath form with code-behindPower Apps + Power Automate, or full custom SPACode-behind cannot be auto-converted; it is a rewrite
SP 2013 approval workflowPower Automate cloud flow (Approval action)Parallel approvals and escalation need to be reimplemented using the modern pattern
SP 2013 state-machine workflowPower Automate cloud flow + state column on the listNo direct equivalent; state-machine logic becomes switch + condition blocks
Classic publishing page (news/landing)Modern communication site pageCustom page layouts do not convert automatically; web parts map on a best-effort basis
Wiki pageModern team site page (one-column)Inline wiki links must be rewritten to full URLs
Classic lookup columnModern lookup or indexed lookupBreaks if the source list moved; scanner cross-checks that target list exists

How to use it

  1. Open /governance/modernization. Authenticate your tenant if you have not already. The engine needs Graph Sites.Read.All and SharePoint Tenant.Read.All; read-only.
  2. Pick a scope: full tenant, a list of site collections, or a single site. Full tenant scans on a 400-site tenant typically take 15–25 minutes.
  3. Wait for the scan to finish. The UI shows per-module progress (InfoPath, Workflows, Pages, Lookups).
  4. Open the report. Top of the page: aggregate counts and aggregate effort. Below that: a per-site breakdown, expandable to per-artefact rows.
  5. Sort by effort descending to find the biggest-ticket items first. Sort by last-used ascending to find abandoned artefacts you may be able to decommission rather than convert.
  6. Export the full inventory as CSV or Excel. This becomes the project plan and the client-facing estimate.
  7. Where appropriate, kick off conversions directly from the report. Wiki-to-modern and classic-lookup-to-indexed-lookup have in-product one-click conversions. InfoPath and workflow conversions are tracked in the Modernization Engine’s task list but implemented by humans.

A worked tenant report

Aggregate numbers from a 420-site engineering firm tenant, actual scan output, client name redacted:

Total: 1,104 person-days. That is a three-year program for a two-person team, or a twelve-month program for a team of five. Before the scan, the client’s internal estimate was “maybe six months of work.”

The per-artefact detail turned 23 of the 67 InfoPath forms into decommissioning candidates — they had not been filled out in 24+ months. Applied across the inventory, quick-decommission reductions took about 18% off the total. That is the kind of scoping precision a hand-built inventory never gets to.

Known limits

Why it pays to scan now, not in Q3

The InfoPath December 2026 deadline is firm. Every scan we have run since January has found more InfoPath forms than the client expected — the average overshoot is about 3x. If you are scoping modernization work today, you have eight months. If you are scoping it in September, you have three, and the market for qualified InfoPath migration resources starts tightening.

A scan costs nothing to run. The output either confirms your scope or forces a hard conversation with the client early, while there is still runway to handle the answer.

Related reading

Get started

Scan your tenant at app.migrationfox.com/register. The Modernization Engine is included on every workspace.

Build your modernization inventory

Free read-only scan. Full per-artefact detail with effort estimates.

Start Free →