We explain how to identify inactive teams (and Microsoft 365 groups), so you can prioritize and keep only the resources that are being used.
Microsoft’s modern workplace is all about freedom and flexibility, allowing users to create and use the tools they need without having to go through IT.
One potential flip side of that vision? You could find yourself with a sprawl of inactive users and many teams you don’t need. Sprawl affects productivity and can put your sensitive data at risk. Even with an airtight governance plan in place, you’re bound to eventually wind up with teams that have simply served their purpose.
One of the best ways to keep Teams organized and easy-to-navigate (which in turn helps boost user adoption) is to clean up any resources your users no longer use—we’re talking about getting rid of inactive and unnecessary teams.
So how can you identify which teams to keep and which are obsolete?
1. Find inactive teams by running a Microsoft Teams usage report
The Teams usage report is Microsoft’s out-of-the-box solution for tracking usage activity in Microsoft Teams. It allows you to quickly see how many users are using the app to collaborate and communicate.
Accessed through the Microsoft Teams admin center, the Teams usage report gives an overview of usage activity and information, including:
- The number of active users and channels in Teams across your organization
- The number of active users, channels, guests, and messages in each team
How to view the Teams usage report
- Navigate to the Microsoft Teams admin center. On the left-hand side, click Analytics & reports, then select Usage reports.
- On the View reports tab, in the Reports drop-down menu, select Teams usage.
3. In the Date range drop-down menu, select either Last 7 days, Last 30 days, or Last 90 days. Then click on Run report.
How to interpret the Teams usage report
The report you generate will show usage activity trends for the time period you specified (although the reports usually reflect a 24 to 48 hour delay from time of activity).
You can filter the info shown on the chart by clicking on one of the items in the legend underneath. In the example below, we can choose from:
- Total active users
- Active channels
- Reply messages
- Post messages
- Channel messages
The information in the table underneath the chart gives you a breakdown of usage by each team’s usage during the specified date range and doesn’t change if you filter the info included in the chart.
By scrolling through all the columns to the right, you can see each team’s:
- Name: The display name of the team
- Privacy setting: Whether the team is a private or public team
- Active users: The number of active users in the team
- Guests: The number of guests in the team
- Active channels: The number of channels that have at least one active user
- Post messages: The number of all the post messages in channels
- Reply messages: The number of all the reply messages in channels
- Meetings organized: The number of scheduled and ad hoc meetings a user organized
- Urgent messages: The number of all the urgent messages
- Reactions: The number of all the reactions to messages
- Mentions: The number of all the mentions used in messages
- Channel messages: The number of unique messages that the team’s users posted in a team chat
You can choose to add or remove any of these columns by clicking on Edit columns (the gear icon) in the top right corner of the Teams usage report.
If you want to download the report, click Export to Excel (the Excel icon) in the top right corner of the Teams usage report. Then click Download in the Downloads tab.
Head over to the official Microsoft documentation for more details and information about the Microsoft Teams usage report.
The Teams usage report is helpful if you want to get a quick overview of recent usage trends in your organization. But only viewing usage for the past 7, 30, or 90 days is limiting and doesn’t necessarily paint an accurate picture of which teams are obsolete. For example, it could be that a particular project has been put on hold for a month or two, with plans to pick things back up at a future date.
The other blind spot of the Teams usage report is that it only shows data for active users and channels. A truly obsolete team—one that’s been inactive for more than 90 days, for example—won’t be included in the report. That means you need to deduce which teams haven’t been included, ultimately resulting in more work (and guesswork) for IT.
2. Find inactive Teams by generating an activity report with PowerShell
The basic premise is that a group (and by extension, that group’s team) becomes “inactive” when there’s been no recorded use of the associated mailbox, SharePoint site, or Teams chats in a while. The script checks audit records to establish:
- Whether any SharePoint file activity has taken place in the group’s document library in the past 90 days
- Whether any conversations have taken place in the group mailbox in the past year
After running the script, an HTML report file is generated, containing statistics like:
- Number of groups scanned
- Number of potentially obsolete groups (based on document library activity)
- Number of potentially obsolete groups (based on conversation activity)
- Number of Teams-enabled groups
- Percentage of Teams-enabled groups
This method also leaves a lot of the onus on IT—from scripting, to interpreting the report, to making a decision about archival—making it harder for Teams to scale as fast as your organization.
It’s hard to know if a team is truly inactive based on user activity from only the past 7-90 days. And both of the above options put all of the responsibility on IT, making it harder to scale fast.
Instead, it’s possible to find unused and obsolete teams based on whether or not they comply with an activity threshold (say, 30 days). Any teams that don’t meet the requirement are automatically flagged as inactive.
To do this, you either need to:
- Set an activity-based expiration policy in Azure AD (Azure AD Premium subscription required)
- Use a third-party automated governance tool
3. Set an expiration policy in Azure AD
Microsoft’s solution for keeping Teams organized and up to date?
Until recently, that’s meant setting an expiration timeframe (i.e. 90 days)—at which point group owners receive an automatic email notification asking if they’d like to renew or delete their group (and associated team).
Now, IT admins can set an expiration policy that will automatically renew a group if user activity is detected in that time period. Groups which are being actively used will be automatically renewed—so there’s no need for owners to receive e-mail notifications.
Even with this new intelligence, setting an expiration policy has the same drawbacks as before, namely:
- Only available options are to renew or delete. Owners still have to choose between renewing or deleting their team. If they decide to delete it, there’s no way to get that content back past Microsoft’s 30-day “soft-delete” period—which means they’re more likely to keep renewing it “just in case”.
- Email notifications are only sent to group owners. You can specify an email address where the renewal and expiration notifications should be sent when a group has no owner. But if the owner simply fails to make a decision by the expiration deadline, the group is automatically deleted. And if IT doesn’t notice in time (within 30 days of deletion), that content could be gone for good.
- Only one expiration policy can be configured for all Microsoft 365 groups in an Azure AD organization. This mean admins need to determine a policy that can be applied to most groups in the organization, but may not be the most ideal choice for all.
Admins can view automatically renewed groups by checking the activity audit logs in Azure AD. And those deemed inactive—either by an owner’s decision or lack thereof—can be found by selecting Groups, then Deleted groups in the Azure AD admin center, (but only for 30 days after deletion). But that means regularly checking and verifying deleted groups—not exactly making life easier for IT.
Admins could also choose to make themselves an owner of every Microsoft 365 group and get every email notification to ensure nothing slips through. But again, that just creates more work (and a ton more emails) for IT.
There’s also the fact that you need to possess (but not necessarily assign) Azure AD Premium licenses for the members of all groups to which the expiration policy is applied.
4. Find inactive teams by automating Microsoft Teams reporting with ShareGate
Our software has more than adequate reporting for SharePoint and Teams. ShareGate identifies inactive teams, AND archives their files and folders indefinitely. So there’s no need for owners to keep renewing a team because they’re afraid of letting something go.
ShareGate crawls through your teams and groups daily (including their associated Outlook inboxes and SharePoint site collections) looking for user-generated activity—then surfaces up any teams that don’t meet the inactivity threshold you’ve set. It will show you all of the inactive teams that were detected in one convenient place (without having to make yourself an owner).
When a team is flagged as inactive, the entrusted owner(s) can choose to receive an automatic email or ShareGate’s Teams chatbot asking them whether they want to keep, archive, or delete their inactive team. And with ShareGate, you can always make the call yourself, or overwrite previously made decisions if you need to.
When a team gets archived, we copy its content and store it securely—on our Azure server or yours—so you can delete the team from your tenant and only keep resources that are actually being used. So it’s easy to keep your Teams organized and up to date on an ongoing basis.
If you’re in Teams, we know you’re using SharePoint alongside it. Stay on track with regular reporting. Read this article on which SharePoint reports to schedule regularly to get started.
Remember all those security risks associate with sprawl that we were talking about earlier? Well, there’s help for that! Unlike other third-party governance tools, ShareGate’s teams management software finds obsolete teams AND lets you archive old content indefinitely—so you can rest easy knowing files can be restored anytime. And, ShareGate is easy to setup and even easier to manage—no clunky interface, no coding, and no Azure AD premium subscription required.