A ready-to-import automation workflow that runs on the 1st of every month, pulls every user and every assigned license from Microsoft Graph, flags accounts with no recent sign-in, totals what those idle licenses cost you, and emails an Excel report to your inbox. You decide what to reclaim.
Inactive users listed with last sign-in, assigned SKUs, and monthly cost. Excel attached.
Import the workflow, add a Microsoft Graph credential with user and license read permissions, and connect the Outlook mailbox that should receive the report.
At 7 AM on the first of the month, the workflow pages through every user, matches assigned licenses to your SKU prices, and marks anyone past your inactivity threshold.
An Excel report and a short HTML summary arrive in your inbox with the idle-license total. If everyone is active, you get an all-clear notice instead.
Reads users and subscribed SKUs directly from Microsoft Graph, with paging for larger tenants.
Set the number of days without a sign-in that counts as inactive. 30, 60, 90, your call.
Enter your per-license prices once and the report shows what idle seats cost per month and per year.
A spreadsheet for the finance folder and a summary email for the person who needs to act.
No inactive users this month? You still hear from it, so you know it ran.
The workflow reports. Reclaiming a license stays a human decision in your admin center.
You download the files and run the workflow on your own automation server. Your tenant data never leaves your Microsoft 365 and your n8n instance.
Requires an n8n instance, Microsoft Graph OAuth2 credentials (User.Read.All, Directory.Read.All, AuditLog.Read.All), and a Microsoft Outlook connection. Questions? support@ais.email
Import the workflow, connect Graph and Outlook, set your threshold. The report shows up on its own.
Questions? support@ais.email
Automated Intelligent Solutions, Inc. · automatedintelligentsolutions.com · info@ais.email · 404-293-0331