How to find inactive Microsoft Teams you no longer need

Microsoft Teams opens the door to a whole new world of collaboration—but only if users can find what they're looking for. We explain how to identify inactive teams (and Office 365 Groups), so you can just keep the resources that are actually being used.

Published on November 1, 2019.

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 lot of teams you don't actually need. 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. Microsoft Teams usage report

The Teams usage report is Microsoft's out-of-the-box solution for tracking how your users are actually using Microsoft Teams. 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, including:

  • The number of active users and channels in Teams
  • 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.

3. In the Date range drop-down menu, select either Last 7 days or Last 28 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 any of the following items in the legend underneath:

  • Total active users
  • Teams & Channels active users
  • Active channels
  • Messages

The information in the table underneath the chart gives you a breakdown of usage by each individual team, and doesn't change if you filter the info included in the chart.

You can see each team's:

  • Name
  • Privacy setting
  • Number of active users
  • Number of guests

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 icon to the left of Edit columns). Then click Download in the Downloads tab.

The Teams usage report is useful if you want to get a quick overview of recent usage trends in your organization. But only viewing usage for the past 7 or 28 days is limiting, and doesn't necessarily paint an accurate picture of which teams are obsolete. 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 some point in the future.

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 28 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. Generate an activity report with PowerShell

If you're comfortable using PowerShell, this script posted to Microsoft's TechNet portal can help you identify inactive Microsoft Teams and Office 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 awhile. 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.

3. Detect inactive teams based on an activity threshold

It's hard to know if a team is truly inactive based on user activity from only the past 28 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, 90 days). Any teams that don't meet the requirement are 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

Set an expiration policy in Azure AD

Microsoft's solution for keeping Teams organized and up-to-date? Set an expiration policy for the associated Office 365 Group in Azure AD.

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, with a recently announced update that is currently being rolled out, 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 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.

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

Find inactive teams on an ongoing basis with a third-party tool

A third-party tool like ShareGate Apricot can help identify inactive teams, AND archive 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 Apricot crawls through your teams (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. We'll 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 owner receives an automatic email notification asking them to confirm whether the team should be archived or kept. And with ShareGate Apricot, you can always make the call yourself, or overwrite previously made decisions if you need to.

Owners get an automatic email notification.

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.


Unlike other third-party governance tools, ShareGate Apricot finds obsolete teams AND lets you archive old content indefinitely—so you can rest easy knowing files can be restored anytime. And, ShareGate Apricot is easy to setup and even easier to manage—no clunky interface, no coding, and no Azure AD premium subscription required.

Keep Teams organized across the entire lifecycle.

You might also like