Microsoft Teams private chat

Microsoft Teams is a leading collaboration tool for businesses, combining online meetings, calls, private and Team chats, file and screen sharing, and many more productivity features.

In this post, we will cover the relevance of one of the most relied upon features, Microsoft Teams private chat messages, and how and why IT admins should collect private chat usage data prior to Teams migration initiatives.

What are Microsoft Teams private chat messages used for?

The use of Microsoft Teams private chat messages – both 1×1 and group chats – has grown significantly over the past three years. We typically see much higher usage of private chats in comparison to Teams channel conversations. In one example, the average Teams user in an organization created 600 chat messages per month. In the same month, the average Teams user created 15 channel conversation messages. If this pattern repeats itself, a conclusion can be made that users prefer to create ad hoc chat threads rather than creating conversations in structured Teams channels.

This does create a bit of a dilemma for planning migrations. The private chats are not part of an existing structure. They are not directly connected with a Team or project. A Teams meeting can exist within a Teams channel, but the chat in the meeting is separate from the Teams channel conversation.

Are private chat messages valuable?

If Teams private chats are basically independent of each other and of Teams, how can a value be assigned to them? Here are three methods to try to place value:

  1. A chat thread contains important business information or decisions to the users in the private chat thread.
  2. The members in a private chat thread need to continue messaging without losing history. Thus, the private chat must be migrated from source tenant to target tenant (or at least a copy of the private chat thread must be brought from the source tenant).
  3. Legal or regulatory compliance requirements to maintain a history of all private chat messages.

The first two valuation methods would be difficult to determine without contacting the private chat members. The third valuation method might be determined using communication compliance features.

For Microsoft Teams, communication compliance features can be enabled to identify the sharing of sensitive content. This feature is managed in Microsoft Purview Communication Compliance. The private chats identified as containing sensitive content can be flagged for migration to ensure that the messages are migrated to the target tenant.

It is difficult to say that every chat message is valuable. Nor can we conclude that all chat messages have no value. We also can’t easily identify and select specific private chats that we deem valuable or unvaluable. Instead, we often take the approach to migrate the most recent private chats with an option to archive the remainder. Thus, more value is placed on recent private chats over older private chats.

What is the value of getting private chat message counts?

The migration of private chat messages can be slow and tedious. It is one of the last activities before the final cutover in a tenant-to-tenant migration project. Planning for your private chat migration requires an understanding of the private chat usage in your source tenant. That is, you need to know how many private chat messages exist for each user before you start to migrate them.

In a Practical 365 blog post, Microsoft Teams Private Chat Migration Challenges Explained, I detailed some of the difficulties in getting the total count of private chat messages. So, let’s consider capturing these count values:

  • Last 30 days
  • Last 12 months

The last 30 days provides a short-term indication of how many Teams private chat messages users want to migrate. These are the messages that they absolutely want to have so that they can continue working with zero impact after the migration.

The last 12 months provides a long-term indication of how many private chat messages that users may want to archive. These are the messages that they may want to review in the future.

Either of these count values can be extrapolated to indicate the total number of private chat messages that exist for the applicable users.

Options for capturing Microsoft Teams private chat message count values

There are two options that can help you capture chat message count values:

  • Running a report in the Microsoft Teams admin center
  • Using Power BI and the Microsoft 365 Usage Analytics report

1.    Running a report in the Microsoft Teams admin center

The first option is running a report in the Microsoft Teams admin center. You can select 7, 30, or 90 days. Unfortunately, you cannot go back 12 months. The user account names are obfuscated to protect identities (but you can change this as an Admin). You can choose which columns to display in the report and export to Excel.

I created a private chat in a Microsoft demo tenant as Megan Bowen and the MOD Administrator and added seven (7) messages.

Microsoft Teams private chat example

I had to wait two days for the activities to appear in a report. Unfortunately, any chat messages that are included in the demo tenant do not appear in reports. In the Microsoft Teams admin center, I configured a Teams user activity report for the last 30 days.

Microsoft Teams private chat activity report

You can also export the report data to a CSV file.

Microsoft Teams private chat activty screenshot

You can also create totals for a column in Excel. Thus, you can total the number of chat messages in the last 30 days, which in this case was 7.

Microsoft Teams private chat excel export

The production Teams user activity data available for the last 7, 30, or 90 days will provide you with the data you need to make decisions on how far back to go to migrate your company’s Microsoft Teams private chat messages.

Are you testing in a Microsoft Demo tenant?

If yes, you may see a card in Microsoft 365 Admin Center\Usage where it states that “no one is using the product yet”. This is not true if you already added chat messages as demo users. User activity data may take up to 48 hours to appear in reports. See Microsoft 365 Reports in the admin center for more information.

2.    Use Power BI and the Microsoft 365 Usage Analytics reports

The second option is to use Power BI and the Microsoft 365 Usage Analytics report. The Power BI report has some powerful features over the exported data available in the Microsoft Teams admin center.

There is one major dependency to resolve before you start to use this report. The usage data for this report is only available from the date that you enable Microsoft 365 usage analytics to start collecting data for Power BI reports. Any prior data is unavailable. Thus, you should enable the usage analytics as soon as possible for reporting purposes. You should have at least one month of data to report on so that you can extrapolate out to a year.

In addition, the template app is not free– you will need a Power BI Pro license. For details, see prerequisites for installing, customizing and distributing a template app. You must be either a Global adminExchange adminSkype for Business adminSharePoint adminGlobal readerReport reader or Usage Summary Reports Reader to establish the connection to the template app. Finally, only the user who made the initial connection to the template app can customize the reports or create new reports in the Power BI web interface.

Once you have the report installed and configured (with sufficient usage data), you will have a very rich report for analysis. Below is a sample of a report with some data blurred out. The benefit of this Power BI report is that it reports on 12 months’ worth of data and breaks it up by month.

Power BI usage report example

Note that I am displaying channel message activity counts in the above report, too. There are approximately 40 times more private chat messages than Teams channel messages in this report. The data in this report can help you identify where your users post more messages: private chats or Teams channels.

On demand migration Microsoft 365 migration tool

One solution. Many workloads.

Migrate and consolidate all your Microsoft 365 workloads with one simple and secure solution.

The report also allows for filtering on user activity. The filtering capability enables you to filter by department, country, state and city. This can be very helpful when you need to organize private chat migrations into groups. For example, the report below filters on the R&D department. Only the users who are members of the R&D department are listed – with their names obfuscated. This is helpful if you want to know the private chat message counts for specific departments when planning for phased migrations.

Example Power BI report

How should you use the reports to migrate your private chats?

It is difficult to determine an exact throughput for private chat migration. Ideally, you can run a small POC of a private chat migration to gauge your potential migration throughput performance. Then extrapolate the results to determine how many messages you can migrate in a one-week cutover period. It’s hard to be completely accurate since we recommend merging messages during the migration process. You can also review the throughput during later migrations and adjust your estimates accordingly.

Planning for chat migration throughput

There are migration API service limits for Gets and Posts for chat messages. These limits can be viewed in the Microsoft Teams service limits table in the Microsoft Graph throttling guidance. According to this throttling guidance, it should be possible to read up to 1,728,000 chat messages per day (24-hour period). There is a lower throughput limit for writing messages per day; but enabling the merging of messages will improve the overall throughput. Please note that actual sustained migration throughput may be lower due to throttling. I go into more detail in a recent post about getting around the challenges of private chat migrations.


Microsoft Teams private chat migrations are becoming more critical to businesses. Therefore, you should enable Microsoft 365 usage analytics to start collecting data for Power BI reports as soon as possible. You can use the report data to determine how many messages you have in scope for the entire migration project. Then you can run a POC migration to determine the migration throughput and determine how many private chat messages you can migrate. This will enable you to determine how many users with their private chats can be migrated during a cutover period. You may need to adjust:

  • Who is included in the private chat migration
  • How many days of private chat messages are migrated
  • How many days of private chat messages are archived

Teams migration: Overcoming the key challenges

IT pros need know how to migrate Microsoft Teams from one tenant to another, securely, accurately and efficiently. Discover proven strategies for key challenges when planning and executing a successful Teams migration.

View Guide

About the Author

Randy Rempel

Randy Rempel has 25 years of experience with designing, delivering, and managing a variety of solutions with an emphasis on legacy application migrations to the Microsoft platform. As a Senior Product Manager for Quest, he manages content migration products that provide solutions related to tenant-to-tenant mergers, acquisitions, and divestitures. Randy has earned several Microsoft certifications over the years along with a few IBM, Scrum, and ITIL certifications.

Related Articles