{"id":62080,"date":"2025-04-28T06:00:00","date_gmt":"2025-04-28T10:00:00","guid":{"rendered":"https:\/\/practical365.com\/?p=62080"},"modified":"2025-04-28T09:21:34","modified_gmt":"2025-04-28T13:21:34","slug":"inactive-copilot-users","status":"publish","type":"post","link":"https:\/\/practical365.com\/inactive-copilot-users\/","title":{"rendered":"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/#Find_Inactive_Copilot_Users_to_Remove_and_Reassign_Expensive_Licenses\" >Find Inactive Copilot Users to Remove and Reassign Expensive Licenses<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/#Solving_the_Data_Problem_to_Find_Unused_Copilot_Licenses\" >Solving the Data Problem to Find Unused Copilot Licenses<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/#Using_the_Graph\" >Using the Graph<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/#Scripting_the_Solution_to_Find_Unused_Copilot_Licenses\" >Scripting the Solution to Find Unused Copilot Licenses<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/#Make_Better_Decisions\" >Make Better Decisions<\/a><\/li><\/ul><\/nav><\/div>\n<div id=\"bsf_rt_marker\"><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-find-inactive-copilot-users-to-remove-and-reassign-expensive-licenses\"><span class=\"ez-toc-section\" id=\"Find_Inactive_Copilot_Users_to_Remove_and_Reassign_Expensive_Licenses\"><\/span>Find Inactive Copilot Users to Remove and Reassign Expensive Licenses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Last January, I wrote about <a href=\"https:\/\/practical365.com\/microsoft-365-copilot-licensing\/\" target=\"_blank\" rel=\"noreferrer noopener\">how to find user accounts with underused Microsoft 365 Copilot licenses<\/a> (or unused Copilot licenses) with the intention of removing those licenses and reassigning them to more deserving users. The script used to analyze Copilot usage and reassign licenses works, but it suffers from two issues.<\/p>\n\n\n\n<p>The first is that the computation to decide when a Copilot license is underused is a blunt instrument. Given that the intention of the script is to illustrate a point rather than to be a full solution, that aspect of its calculations is understandable. It\u2019s easy for an organization to come up with their own algorithm and integrate it into the script.<\/p>\n\n\n\n<p>The second issue is that the usage data used by the script comes from the Microsoft 365 usage reports data store. Incomplete input data invariably leads to bad outcomes, and the usage data is very sparse. It is designed to be the basis for Copilot usage reports in the Microsoft 365 admin rather than to deliver deep analysis. The data for a user simply tells us when they were last active with Copilot in several different apps, such as Outlook, Teams, and OneDrive. No data is available to inform whether someone heavily uses Copilot in any of the apps, and some apps (like Loop) are missing. However, the data suffices to generate a usage report in the Microsoft 365 admin center (Figure 1).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"689\" src=\"https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center-1024x689.png\" alt=\"Copilot usage report in the Microsoft 365 admin center.\n\nInactive Copilot users. Find unused Copilot licenses.\n\" class=\"wp-image-62081\" srcset=\"https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center-1024x689.png 1024w, https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center-300x202.png 300w, https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center-768x517.png 768w, https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center-1536x1034.png 1536w, https:\/\/practical365.com\/wp-content\/uploads\/2025\/03\/Copilot-Usage-in-Microsoft-365-admin-center.png 1587w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Figure 1: Copilot usage report in the Microsoft 365 admin center<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Collectively, the two issues mean that although the script can propose a set of inactive users for license reassignment, the basis of the decision is likely to result in bad choices. For instance, a user who gets incredible value from using Copilot in a single application like Word or Excel and doesn\u2019t use Copilot anywhere else is probably going to be tagged as inactive.<\/p>\n\n\n\n<div class=\"q-blockads-inside-content q-blockads-entity-placement\" id=\"q-blockads-2001666891\"><div id=\"q-blockads-1986694502\"><p><a href=\"https:\/\/www.quest.com\/P365_On_Demand_Migration\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-62892\" src=\"https:\/\/practical365.com\/wp-content\/uploads\/2024\/09\/1901-10-20-2025-Redone-300x31.jpg\" alt=\"\" width=\"861\" height=\"89\" srcset=\"https:\/\/practical365.com\/wp-content\/uploads\/2024\/09\/1901-10-20-2025-Redone-300x31.jpg 300w, https:\/\/practical365.com\/wp-content\/uploads\/2024\/09\/1901-10-20-2025-Redone-768x80.jpg 768w, https:\/\/practical365.com\/wp-content\/uploads\/2024\/09\/1901-10-20-2025-Redone.jpg 860w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/a><\/p>\n<\/div><\/div><h2 class=\"wp-block-heading\" id=\"h-solving-the-data-problem-to-find-unused-copilot-licenses\"><span class=\"ez-toc-section\" id=\"Solving_the_Data_Problem_to_Find_Unused_Copilot_Licenses\"><\/span>Solving the Data Problem to Find Unused Copilot Licenses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The solution is to use better data to analyze the activity levels of Copilot users. Better data means that more developed computations can be used to detect inactivity and lead to better outcomes. Let\u2019s see what steps can be taken to improve matters.<\/p>\n\n\n\n<p>The fundamental issue is the source of better data. The <a href=\"https:\/\/practical365.com\/copilot-interactions-allinteractionhistory\/\" target=\"_blank\" rel=\"noreferrer noopener\">allInteractionHistory Graph API<\/a> is certainly a possibility, but the API is still quite raw and slow. The <a href=\"https:\/\/practical365.com\/copilot-interactions\/\" target=\"_blank\" rel=\"noreferrer noopener\">compliance records created to track Copilot interactions for individual users<\/a> certainly represent a rich source of data, but the data is stored in user mailboxes. Accessing each mailbox to extract and analyze compliance records won\u2019t be a fast process. Fortunately, a third option exists, and that\u2019s the <a href=\"https:\/\/office365itpros.com\/2024\/04\/03\/copilot-for-microsoft-365-audit\/\" target=\"_blank\" rel=\"noreferrer noopener\">audit records captured in the unified audit log for Copilot interactions<\/a>. The audit log is a single source of data that\u2019s reasonably easy to access with PowerShell using the <em>Search-UnifiedAuditLog<\/em> cmdlet from the Exchange Online management module or <a href=\"https:\/\/practical365.com\/audit-log-query-api\/\" target=\"_blank\" rel=\"noreferrer noopener\">the Graph AuditLogQuery API<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Using_the_Graph\"><\/span>Using the Graph<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>I decided to go down the Graph route for two reasons. First, it minimizes the number of product modules that are involved. This might sound like a trite reason, but the Exchange Online management module and the Microsoft Graph PowerShell SDK have had issues loading assemblies and components used by the two products. Resolving the incompatibilities between the different PowerShell modules used for Microsoft 365 automation is a task that Microsoft needs to take on. For now, it seems like the engineering groups that manage the different modules take their own path without worrying about clashes with other modules.<\/p>\n\n\n\n<p>Using the <em>Search-UnifiedAuditLog<\/em> cmdlet is quicker, but it also comes with a limitation of 50,000 records that can be fetched in a single session. My second reason for using the Graph API is that, although slower because searches run asynchronously as background jobs, the audit logs can process higher numbers of records. That could be an important point in large tenants where thousands of Copilot licenses are in active (or inactive) use.<\/p>\n\n\n\n<p>Besides, I also have some code that can be repurposed from the article about <a href=\"https:\/\/practical365.com\/teams-usage-report-data\" target=\"_blank\" rel=\"noreferrer noopener\">analyzing Teams usage to detect inactive teams<\/a>, and I always like when I can reuse some PowerShell.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-scripting-the-solution-to-find-unused-copilot-licenses\"><span class=\"ez-toc-section\" id=\"Scripting_the_Solution_to_Find_Unused_Copilot_Licenses\"><\/span>Scripting the Solution to Find Unused Copilot Licenses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>I started off with the script created for the previous article. It would be nice to say that all I needed to do was to paste the code from the script to find inactive teams, but such an easy solution is seldom found. You can <a href=\"https:\/\/github.com\/12Knocksinna\/Office365itpros\/blob\/master\/Find-UnderUsedCopilotLicenseswithAudit.PS1\" target=\"_blank\" rel=\"noreferrer noopener\">download the complete script from GitHub<\/a> to see the changes made to create the final version.<\/p>\n\n\n\n<p>On a permissions level, the script (app or user) needs to have consent for the <em>AuditLog.Read.All<\/em> permission to run audit jobs and fetch audit records. If running with delegated permissions, the signed-in user must hold a <a href=\"https:\/\/learn.microsoft.com\/en-gb\/purview\/audit-get-started?WT.mc_id=M365-MVP-9501#step-2-assign-permissions-to-search-the-audit-log\" target=\"_blank\" rel=\"noreferrer noopener\">compliance role that allows access to audit logs<\/a>.<\/p>\n\n\n\n<p>The script starts like the previous version by finding the set of users with Microsoft 365 Copilot licenses (SKU identifier 639dec6b-bb19-468b-871c-c5c441c4b0cb). It then fetches the Copilot usage data, making sure that real usernames are in the data rather than obfuscated values. A usage record looks like this:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Name                           Value\n----                           -----\nexcelCopilotLastActivityDate   2025-02-28\nlastActivityDate               2025-03-02\ndisplayName                    Tony Redmond\npowerPointCopilotLastActivity\u2026 2025-02-28\noutlookCopilotLastActivityDate 2025-01-17\ncopilotActivityUserDetailsByP\u2026 {System.Collections.Hashtable}\noneNoteCopilotLastActivityDate\nreportRefreshDate              2025-03-02\nuserPrincipalName              Kim.Akers@office365itpros.com\ncopilotChatLastActivityDate    2025-03-02\nwordCopilotLastActivityDate    2025-03-01\nloopCopilotLastActivityDate    2025-01-29\nmicrosoftTeamsCopilotLastActi\u2026 2025-01-01\n<\/pre>\n\n\n\n<p>Next, the script submits an audit job to find Copilot interactions across the tenant for the 30 days prior to the usage report refresh date to ensure that the audit and usage data cover the same period. The script uses Graph requests instead of Graph SDK cmdlets in an attempt to work around <a href=\"https:\/\/github.com\/microsoftgraph\/msgraph-sdk-powershell\/issues\/3199\" target=\"_blank\" rel=\"noreferrer noopener\">an authentication issue with the cmdlets<\/a> (which might be fixed when you read this text). Unhappily, the same issue affects requests against the Graph API.<\/p>\n\n\n\n<p>After submitting the audit job, the script enters a loop to wait for the job to complete. Typically, an audit job takes about 10 minutes, but it could take longer if there is high demand on the service or many records to fetch. Because of its asynchronous nature, anything to do with audit records is a good candidate to run in the background with Azure Automation.<\/p>\n\n\n\n<p>Once the audit job completes, the script loads the audit events found by the job into an array and processes the items in the array to extract details of the apps used for Copilot interactions. This data is then processed to generate a list of user interactions with Copilot, which looks like this:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">User                   : Kim.Akers@office365itpros.com\nUserId                 : aff4cd58-1bb8-4899-94de-795f656b4a18\nChatInteractions       : 29\nExcelInteractions      : 8\nLoopInteractions       : 5\nOutlookInteractions    : 190\nPowerPointInteractions : 3\nWordInteractions       : 287\nOtherInteractions      : 5\nTotalInteractions      : 527\n<\/pre>\n\n\n\n<p>Putting the usage data that was previously used for the assessment together with details of how individual people use Copilot creates a much more comprehensive view of how people use AI assistance. Deciding how to assess inactivity is up to the individual organization. For the purpose of this exercise, the script has a function to calculate a user score based on the formula:<\/p>\n\n\n\n<p><em>Total count of days since using a Copilot App (Score) divided by the number of Copilot apps used less the total interactions divided by 10.<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function Get-UserScore {\n    param (\n        [int]$Score,\n        [int]$ScoreApps,\n        [int]$TotalInteractions\n    )\n    if ($ScoreApps -gt 0) { \n        [double]$UserScore = (($Score \/ $ScoreApps) - ($TotalInteractions \/ 10))\n    } else {\n        [double]$UserScore = 0\n    }\n    return $UserScore\n}\n<\/pre>\n\n\n\n<p>Usage data is available for seven Copilot apps. The account used six apps in the last 30 days and the total number of days since using all the days is 109 (for instance, the last used date for Copilot in Outlook is 17 January 2025, the date of the usage data is 2 March 2025, so the score for Outlook is 44; adding the score for each app together gets the total number of days). The user\u2019s total interactions are 527, mostly in Word. The user score is:<\/p>\n\n\n\n<p><em>(109\/6) \u2013 (527\/10) = -34.33<\/em><\/p>\n\n\n\n<p>The script sets an activity score threshold of 30 to determine unused licenses. Changing the threshold is a matter of updating a variable. A negative score is good because it means that the user is active across many of the Copilot apps during the reporting period.<\/p>\n\n\n\n<p>Don&#8217;t get hung up on the formula. It&#8217;s there to illustrate a concept rather than making any claim to be the definitive method to measure the use of Copilot. You can adjust the parameters as you like or construct a completely different approach.<\/p>\n\n\n\n<p>After checking all the accounts with Copilot licenses against the activity score threshold, the script outputs a list of those considered not to have used the license at all or only sparingly.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">The folllowing 19 users are underusing their assigned Microsoft 365 Copilot license\n\nUser                                    Number active apps Overall Score\n----                                    ------------------ -------------\nAlain Charnier                                           0 0.00\nPaul Robichaux (Office 365 for IT Pros)                  0 0.00\nMichelle Dubois                                          0 0.00\nKim Akers (She\/Her)                                      0 0.00\nJohn C. Adams                                            0 0.00\nJoanne Crispa                                            0 0.00\nJamie Smith                                              0 0.00\nRen\u00e9 Artois                                              0 0.00\nJames Ryan                                               0 0.00\nEric Hammond                                             0 0.00\nEoin Redmond (France)                                    0 0.00\nBrian Weakliam (Operations)                              0 0.00\nBen Owens (DCPG)                                         0 0.00\nBen James (BusDev)                                       0 0.00\nAndy Ruth (Project Director)                             0 0.00\nJames Abrahams                                           0 0.00\nHans Geering (Project Management)                        2 54.00\nLotte Vetler (Paris)                                     2 62.50\nSean Landy                                               1 73.00\n<\/pre>\n\n\n\n<p>You can then allow the script to go ahead and remove the Copilot licenses from user accounts (the code handles both direct-assigned and those assigned by <a href=\"https:\/\/practical365.com\/group-based-licensing-report\/\" target=\"_blank\" rel=\"noreferrer noopener\">group-based licensing<\/a>). The only thing left to do is to find good homes for the newly-liberated licenses.<\/p>\n\n\n\n<div class=\"q-blockads-content q-blockads-entity-placement\" id=\"q-blockads-832504604\"><div id=\"q-blockads-2939659522\"><p><a href=\"https:\/\/www.quest.com\/Security_Guardian_P365\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-62893\" src=\"https:\/\/practical365.com\/wp-content\/uploads\/2024\/04\/1902-10-20-2025-Redone-300x31.jpg\" alt=\"\" width=\"861\" height=\"89\" srcset=\"https:\/\/practical365.com\/wp-content\/uploads\/2024\/04\/1902-10-20-2025-Redone-300x31.jpg 300w, https:\/\/practical365.com\/wp-content\/uploads\/2024\/04\/1902-10-20-2025-Redone-768x80.jpg 768w, https:\/\/practical365.com\/wp-content\/uploads\/2024\/04\/1902-10-20-2025-Redone.jpg 860w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/a><\/p>\n<\/div><\/div><h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Make_Better_Decisions\"><\/span>Make Better Decisions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>One of the strengths of PowerShell is that it makes it easy to mix and match information drawn from different sources to make better decisions. In this case, combining audit and usage data for Microsoft 365 Copilot activity allows license administrators to understand who\u2019s really using the expensive $360\/user\/year licenses.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions! <\/p>\n","protected":false},"author":84,"featured_media":62266,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10966,9055],"tags":[11350,11352,11349,11351],"class_list":["post-62080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-copilot","category-powershell","tag-auditlogquery-api","tag-find-unused-copilot-licenses","tag-inactive-copilot-users","tag-usage-report-data","entry","has-media"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Use Audit and Usage Data to Find Inactive Copilot Users | Practical365<\/title>\n<meta name=\"description\" content=\"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/practical365.com\/inactive-copilot-users\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users\" \/>\n<meta property=\"og:description\" content=\"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/practical365.com\/inactive-copilot-users\/\" \/>\n<meta property=\"og:site_name\" content=\"Practical 365\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Practical365\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-28T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-28T13:21:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1164\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tony Redmond\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/12Knocksinna\" \/>\n<meta name=\"twitter:site\" content=\"@Practical365\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tony Redmond\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/\"},\"author\":{\"name\":\"Tony Redmond\",\"@id\":\"https:\\\/\\\/practical365.com\\\/#\\\/schema\\\/person\\\/19d7b2f404dd1da1d87586fb07015a19\"},\"headline\":\"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users\",\"datePublished\":\"2025-04-28T10:00:00+00:00\",\"dateModified\":\"2025-04-28T13:21:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/\"},\"wordCount\":1454,\"commentCount\":15,\"publisher\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/1645-01-scaled.jpg\",\"keywords\":[\"AuditLogQuery API\",\"Find unused Copilot licenses\",\"Inactive Copilot users\",\"Usage report data\"],\"articleSection\":[\"Copilot\",\"PowerShell\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/\",\"url\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/\",\"name\":\"Use Audit and Usage Data to Find Inactive Copilot Users | Practical365\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/1645-01-scaled.jpg\",\"datePublished\":\"2025-04-28T10:00:00+00:00\",\"dateModified\":\"2025-04-28T13:21:34+00:00\",\"description\":\"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#primaryimage\",\"url\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/1645-01-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/1645-01-scaled.jpg\",\"width\":2560,\"height\":1164},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/practical365.com\\\/inactive-copilot-users\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/practical365.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/practical365.com\\\/powershell\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/practical365.com\\\/#website\",\"url\":\"https:\\\/\\\/practical365.com\\\/\",\"name\":\"Practical 365\",\"description\":\"Practical Office 365 News, Tips, and Tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/practical365.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/practical365.com\\\/#organization\",\"name\":\"Practical 365\",\"url\":\"https:\\\/\\\/practical365.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/practical365.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/Logo-P365-stacked.jpg\",\"contentUrl\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/Logo-P365-stacked.jpg\",\"width\":1176,\"height\":696,\"caption\":\"Practical 365\"},\"image\":{\"@id\":\"https:\\\/\\\/practical365.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Practical365\",\"https:\\\/\\\/x.com\\\/Practical365\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/practical365-com\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/practical365.com\\\/#\\\/schema\\\/person\\\/19d7b2f404dd1da1d87586fb07015a19\",\"name\":\"Tony Redmond\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg\",\"url\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/practical365.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg\",\"caption\":\"Tony Redmond\"},\"description\":\"Tony Redmond has written thousands of articles about Microsoft technology since 1996. He is the lead author for the Office 365 for IT Pros eBook, the only book covering Office 365 that is updated monthly to keep pace with change in the cloud. Apart from contributing to Practical365.com, Tony also writes at Office365itpros.com to support the development of the eBook. He has been a Microsoft MVP since 2004.\",\"sameAs\":[\"https:\\\/\\\/office365itpros.com\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/12Knocksinna\"],\"url\":\"https:\\\/\\\/practical365.com\\\/author\\\/tony-redmondredmondassociates-org\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Use Audit and Usage Data to Find Inactive Copilot Users | Practical365","description":"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/practical365.com\/inactive-copilot-users\/","og_locale":"en_US","og_type":"article","og_title":"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users","og_description":"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!","og_url":"https:\/\/practical365.com\/inactive-copilot-users\/","og_site_name":"Practical 365","article_publisher":"https:\/\/www.facebook.com\/Practical365","article_published_time":"2025-04-28T10:00:00+00:00","article_modified_time":"2025-04-28T13:21:34+00:00","og_image":[{"width":2560,"height":1164,"url":"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg","type":"image\/jpeg"}],"author":"Tony Redmond","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/12Knocksinna","twitter_site":"@Practical365","twitter_misc":{"Written by":"Tony Redmond","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/practical365.com\/inactive-copilot-users\/#article","isPartOf":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/"},"author":{"name":"Tony Redmond","@id":"https:\/\/practical365.com\/#\/schema\/person\/19d7b2f404dd1da1d87586fb07015a19"},"headline":"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users","datePublished":"2025-04-28T10:00:00+00:00","dateModified":"2025-04-28T13:21:34+00:00","mainEntityOfPage":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/"},"wordCount":1454,"commentCount":15,"publisher":{"@id":"https:\/\/practical365.com\/#organization"},"image":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/#primaryimage"},"thumbnailUrl":"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg","keywords":["AuditLogQuery API","Find unused Copilot licenses","Inactive Copilot users","Usage report data"],"articleSection":["Copilot","PowerShell"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/practical365.com\/inactive-copilot-users\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/practical365.com\/inactive-copilot-users\/","url":"https:\/\/practical365.com\/inactive-copilot-users\/","name":"Use Audit and Usage Data to Find Inactive Copilot Users | Practical365","isPartOf":{"@id":"https:\/\/practical365.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/#primaryimage"},"image":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/#primaryimage"},"thumbnailUrl":"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg","datePublished":"2025-04-28T10:00:00+00:00","dateModified":"2025-04-28T13:21:34+00:00","description":"A previous article explained how Microsoft 365 usage report data can highlight inactive Copilot users. If we add audit data to the mix, the analysis becomes much richer because we can see exactly what use people make of different Copilot apps, like Word, Chat, Outlook, and so on. Better data means better decisions!","breadcrumb":{"@id":"https:\/\/practical365.com\/inactive-copilot-users\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/practical365.com\/inactive-copilot-users\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/practical365.com\/inactive-copilot-users\/#primaryimage","url":"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg","contentUrl":"https:\/\/practical365.com\/wp-content\/uploads\/2025\/04\/1645-01-scaled.jpg","width":2560,"height":1164},{"@type":"BreadcrumbList","@id":"https:\/\/practical365.com\/inactive-copilot-users\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/practical365.com\/"},{"@type":"ListItem","position":2,"name":"PowerShell","item":"https:\/\/practical365.com\/powershell\/"},{"@type":"ListItem","position":3,"name":"Practical Graph: Use Audit Data to Improve Finding Inactive Copilot Users"}]},{"@type":"WebSite","@id":"https:\/\/practical365.com\/#website","url":"https:\/\/practical365.com\/","name":"Practical 365","description":"Practical Office 365 News, Tips, and Tutorials","publisher":{"@id":"https:\/\/practical365.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/practical365.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/practical365.com\/#organization","name":"Practical 365","url":"https:\/\/practical365.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/practical365.com\/#\/schema\/logo\/image\/","url":"https:\/\/practical365.com\/wp-content\/uploads\/2022\/06\/Logo-P365-stacked.jpg","contentUrl":"https:\/\/practical365.com\/wp-content\/uploads\/2022\/06\/Logo-P365-stacked.jpg","width":1176,"height":696,"caption":"Practical 365"},"image":{"@id":"https:\/\/practical365.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Practical365","https:\/\/x.com\/Practical365","https:\/\/www.linkedin.com\/company\/practical365-com"]},{"@type":"Person","@id":"https:\/\/practical365.com\/#\/schema\/person\/19d7b2f404dd1da1d87586fb07015a19","name":"Tony Redmond","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/practical365.com\/wp-content\/uploads\/2022\/06\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg","url":"https:\/\/practical365.com\/wp-content\/uploads\/2022\/06\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg","contentUrl":"https:\/\/practical365.com\/wp-content\/uploads\/2022\/06\/cropped-TonyRedmondHeadShot2016-1200-96x96.jpg","caption":"Tony Redmond"},"description":"Tony Redmond has written thousands of articles about Microsoft technology since 1996. He is the lead author for the Office 365 for IT Pros eBook, the only book covering Office 365 that is updated monthly to keep pace with change in the cloud. Apart from contributing to Practical365.com, Tony also writes at Office365itpros.com to support the development of the eBook. He has been a Microsoft MVP since 2004.","sameAs":["https:\/\/office365itpros.com","https:\/\/x.com\/https:\/\/twitter.com\/12Knocksinna"],"url":"https:\/\/practical365.com\/author\/tony-redmondredmondassociates-org\/"}]}},"_links":{"self":[{"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/posts\/62080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/users\/84"}],"replies":[{"embeddable":true,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/comments?post=62080"}],"version-history":[{"count":0,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/posts\/62080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/media\/62266"}],"wp:attachment":[{"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/media?parent=62080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/categories?post=62080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/practical365.com\/wp-json\/wp\/v2\/tags?post=62080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}