The process of building custom applications and tools that interact with Microsoft SharePoint, including SharePoint Online in Microsoft 365.
Dear Husain Saify,
Thank you for your detailed question and for outlining the approaches you've already evaluated.
Based on the current Microsoft Graph and SharePoint capabilities, for a solution that needs to track file and folder changes across an entire SharePoint document library hierarchy, the recommended approach is typically to use Microsoft Graph change notifications (webhooks) together with DriveItem delta queries. The driveItem/delta API is designed for incremental synchronization and tracking changes across a drive and its descendants over time. It supports tracking changes throughout the library when called at the library root (/drives/{drive-id}/root/delta).
Regarding your specific questions:
1.Root-level tracking across multiple folders: Calling /root/delta is generally the correct entry point for tracking changes across the entire document library tree. The delta API enumerates the hierarchy and returns changes for items throughout the drive rather than requiring separate delta queries per subfolder.
2.Rename and move detection: The delta API returns the current state of changed items rather than an explicit operation type. As a result, applications commonly determine rename or move events by comparing stable item IDs along with properties such as the item name and parent location between synchronization cycles.
3.GetChanges behavior: I was unable to find Microsoft documentation that explicitly states MoveAway/MoveInto events are unsupported or unreliable at folder scope. However, it also does not appear to guarantee that move operations will always be surfaced as MoveAway and MoveInto events across all query scopes. Based on those observations, I recommend validating the behavior against your specific scope and workload before relying on those event types for synchronization logic.
4.Alternative APIs: At this time, there is no newer Microsoft Graph API that provides explicit move/rename operation types for DriveItems while offering the same modern Graph-based synchronization model. The combination of Graph webhooks and delta queries remains the primary supported pattern for production-grade file change tracking.
Based on your requirements and the permission considerations you've raised, continuing with the Graph webhook + root delta approach and inferring move/rename operations from item metadata changes would generally be the most future-proof and least-privileged design.
For more reference:
Additionally, to obtain more detailed guidance on this matter, I recommend engaging Microsoft Graph Engineering Support. They are best positioned to provide authoritative clarification regarding the expected behavior of the relevant APIs and any service-specific considerations that may not be fully covered in the public documentation.
You can contact them via:
- Open a new Support request - Microsoft Engage Center | Microsoft Learn
- Microsoft Unified Overview | Microsoft
The support team over there has higher permission than us to investigate the issue from background, they have more resource and correct escalation channel in handling this kind of issues. This would be a more efficient way in handling the case for you.
I hope this helps. Please feel free to reply below if you have any update or further concern.
Your understanding and co-operation are highly appreciated. Thanks for your precious time. Have a nice day!