Connect Microsoft Teams data to Worklytics, enabling communication analysis and general collaboration insights based on collaboration via Microsoft Teams. Includes user enumeration to support fetching mailboxes from each account; and group enumeration to expand emails via mailing list (groups).
Please review the Microsoft 365 README for general information applicable to all Microsoft 365 connectors.
See the Microsoft 365 Authentication section of the main README.
See the Microsoft 365 Authorization section of the main README.
Besides of having OnlineMeetings.Read.All
and OnlineMeetingArtifact.Read.All
scope defined in the application, you need to allow a new role and a policy on the application created for reading OnlineMeetings. You will need Powershell for this.
Please follow the steps below:
Ensure the user you are going to use for running the commands has the "Teams Administrator" role. You can add the role in the Microsoft 365 Admin Center
NOTE: It can be assigned through Entra Id portal in Azure portal OR in Entra Admin center https://admin.microsoft.com/AdminPortal/Home. It is possible that even login with an admin account in Entra Admin Center the Teams role is not available to assign to any user; if so, please do it through Azure Portal (Entra Id -> Users -> Assign roles)
Install PowerShell Teams module.
Run the following commands in Powershell terminal:
And use the user with the "Teams Administrator" for login it.
Follow steps on Configure application access to online meetings or virtual events:
Add a policy for the application created for the connector, providing its application id
Grant the policy to the whole tenant (NOT to any specific application or user)
Issues:
If you receive "access denied" is because no admin role for Teams has been detected. Please close and reopen the Powershell terminal after assigning the role.
Commands have been tested over a Powershell (7.4.0) terminal in Windows, installed from Microsoft Store and with Teams Module (5.8.0). It might not work on a different environment
NOTE for pseudonymizing app ids
In case of pseudonymize_app_ids
is set to true
, the userId
and chatId
fields will be tokenized. In such case and if you want to populate example variables like example_msft_user_guid
or example_msft_chat_guid
in the example responses, you will need first to get a list of user and use the id
in the variable. Using a plain user id without tokenization might not work on endpoints that require a tokenized user id.
API Endpoint | Example Response | Sanitized Example Response |
---|---|---|
/v1.0/teams
/v1.0/teams/{teamId}/allChannels
/v1.0/teams/{teamId}/channels/{channelId}/messages
/v1.0/users/{userId}/chats
/v1.0/users/{userId}/onlineMeetings
/v1.0/users/{userId}/onlineMeetings/{meetingId}/attendanceReport/{reportId}
See more examples in the docs/sources/microsoft-365/msft-teams/example-api-responses
folder
of the Psoxy repository.