{"product_id":"audit-inactive-microsoft-365-users-email-license-reports","title":"Audit Inactive Microsoft 365 Users \u0026 Email License Reports","description":"\u003ch3\u003eFind inactive Microsoft 365 users—and email your license savings report automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow audits Microsoft 365 users monthly via Microsoft Graph, identifies licensed accounts that have been inactive beyond your threshold, estimates potential reclaimable license cost, and emails an Excel report with an HTML summary (or an all-clear message) using Microsoft Outlook.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eRuns monthly\u003c\/b\u003e on the \u003cb\u003e1st of the month at 7:00 AM\u003c\/b\u003e to keep license usage review consistent.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eLoads audit settings\u003c\/b\u003e including the inactive-day threshold, recipient, company name, and a \u003cb\u003elicense price map\u003c\/b\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eRetrieves subscribed SKUs\u003c\/b\u003e from Microsoft Graph and then \u003cb\u003efetches all Microsoft 365 users\u003c\/b\u003e using pagination, including assigned licenses and sign-in activity.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eFilters candidates\u003c\/b\u003e to enabled, licensed users whose \u003ci\u003elast interactive or non-interactive sign-in\u003c\/i\u003e is older than the threshold (or never signed in).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eEstimates monthly savings\u003c\/b\u003e by mapping licenses to SKU part numbers and applying your configured price map.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eGenerates outputs\u003c\/b\u003e: when inactive licensed users are found, it creates an \u003cb\u003eExcel report\u003c\/b\u003e plus an \u003cb\u003eHTML summary\u003c\/b\u003e with total estimated savings and top candidates.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eSends results by email\u003c\/b\u003e via Microsoft Outlook—or sends an \u003cb\u003eall-clear email\u003c\/b\u003e if no inactive users are detected.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eReduce Microsoft 365 spend by spotting inactive licensed accounts before renewal cycles.\u003c\/li\u003e\n  \u003cli\u003eSupport SaaS operations and IT audits with repeatable, scheduled license governance.\u003c\/li\u003e\n  \u003cli\u003eCreate a consistent internal reporting loop for license optimization using email alerts.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eMicrosoft Graph\u003c\/b\u003e: OAuth2 authentication to read subscribed SKUs and user sign-in activity (e.g., Directory.Read.All, AuditLog.Read.All, plus User.Read.All as needed).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eMicrosoft Outlook\u003c\/b\u003e: sends the Excel report and HTML summary (or all-clear notice).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003en8n nodes\/workflow logic\u003c\/b\u003e: if, set, code, sticky note, http request, convert to file.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45876844527795,"sku":"N8N-18524","price":62.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/fFVp9iQz7xdO-j7jOeb1Q_Poj5Frk8.png?v=1787303182","url":"https:\/\/buyflowscripts.com\/products\/audit-inactive-microsoft-365-users-email-license-reports","provider":"N8N Commerce","version":"1.0","type":"link"}