How to manage and find inactive Microsoft teams and Microsoft 365 groups

Inactiveteams Redo Featured

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 user activity in Teams. It allows you to quickly see how many users are using the app to collaborate and communicate.

Accessed through the Teams admin center, the Teams usage report gives an overview of user 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

  1. Navigate to the Microsoft Teams admin center. On the left-hand side, click Analytics & reports, then select Usage reports.
  2. On the View reports tab, in the Reports drop-down menu, select Teams usage.
Screenshot of Usage reports in Teams admin center.

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.

Screenshot showing available date ranges for Teams usage 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).

Screenshot of a 7 day Teams usage report in the Teams admin center.

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
  • Mentions
Screenshot showing number of active users in Teams admin center.

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 private or public
  • 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
Screenshot of table showing the first four columns for a list of teams in the Teams usage report.

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.

Screenshot of the Edit columns pane in Teams admin center

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.

Screenshot of Downloads tab in the Analytics & reports section of the Teams admin center.

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

If you’re comfortable using PowerShell, this script can help you identify inactive Microsoft teams and Microsoft 365 groups.

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
screenshot running powershell script

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.

Office 365 Groups and Teams Activity Report example

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

Thankfully, there are 5 PowerShell script examples that can help you automate many Microsoft administration tasks.

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 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).

Screenshot 2023 05 16 At 10.26.47 Pm
Explore ShareGate for Teams management

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.

Sgt Chatbot Inactive

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 associated 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 set up and even easier to manage—no clunky interface, no coding, and no Azure AD premium subscription required.

What did you think of this article?

Recommended by our team

Getting started is easy

Try ShareGate free for 15 days. No credit card required.

Hosts 1

LIVE VIRTUAL EVENT RISE UP: Ignite your M365 tenant migration playbook