Overview
Built a two-phase migration pipeline to move a complete FreshService knowledge base into SharePoint Online. The export phase pulls every article, image, and metadata field via the FreshService API. The import phase rebuilds the content as SharePoint Modern Pages with the original folder hierarchy, embedded images, and metadata preserved.
Key Features
- Full hierarchy traversal: categories, folders, and articles
- Multi-format export: HTML with embedded CSS, structured JSON, and flat CSV
- Image download with relative path rewriting for SharePoint compatibility
- SharePoint Modern Page creation with Article layout
- Metadata section injection (category, folder, ID, views, dates, tags)
- Category and folder filtering (exclude/include lists) for selective migration
- WhatIf mode for safe testing before committing changes
- Summary report generation with article statistics
Technical Highlights
- FreshService REST API integration with rate limiting between calls
- PnP.PowerShell for SharePoint page and file operations
- Image upload to SiteAssets with hierarchical folder structure matching source
- HTML image path translation from export format to SharePoint URLs
- Safe filename sanitization with invalid character removal and length limits
- HTML entity decoding for clean content rendering
- Page deletion and re-import support for iterative updates