This topic provides details on how to capture Microsoft Office 365 Teams Chat messages via Collect.
- Information captured
- Setup instructions
Before using this data source, note the following license requirements, version support, and special considerations.
The following licenses are required to use this data source:
- Microsoft 365 E5/A5/G5
- Microsoft 365 E3 plus one of the following:
- Microsoft 365 E5 Security Add-on
- Microsoft 365 E5 Compliance Add-on
- Microsoft 365 E5 Information Protection and Governance Add-on
- Microsoft 365 E5 Information Protection & Data Loss Prevention Add-on
For more details on Microsoft 365 requirements, see Accessing Microsoft 365 tenants on the Relativity documentation site.
We support Microsoft 365 E3, E5, A5, and G5.
Note the following considerations about this data source:
- The connector can access data regardless of the geographic location the data resides in when Microsoft Multi-Geo capabilities have been implemented.
There are two levels of filtering data:
- Data Source - data is being filtered according to specified Monitored Individuals. No filter is applied at message level. So, if a Monitored Individual exists in a channel, we will ingest the whole conversation for the day. If a conversation does not have any Monitored Individuals as participants for that day, we don’t ingest the conversation at all.
- Data Batch- only messages with data for the date that matches the Data Batch collection period will be captured. For example, a message that has been exported for 10/1/2021 will be captured by the Data Batch that has collection period from “10/1/2021 00:00” to “10/2/2021 00:00”.
Note the following considerations about how chat content is captured:
- Mentions are captured as plain text.
- Formatted text is captured as plain text.
- Numbered rows are captured as a single line.
- Team meetings are captured as message placeholder.
- Emojis are collected as plain text.
Slack content will be displayed in the Relativity Short Message Format (RSMF) in the Relativity Viewer to provide reviewers with a native chat like review experience. You can find more information on the Relativity Short Message Format here.
This section lists what activities and, if applicable, metadata are captured when you use this data source.
The following table lists activities captured by this data source:
|Combined chats||Chats are combined into easy-to-read threads|
|One-on-one chat messages|
|Group chat messages|
|Public team messages||Applies to both public and private channels|
|Private team messages||Applies to both public and private channels|
|Organization-wide team messages||Applies to both public and private channels|
|Last version of edited messages|
|Chat meetings||Includes chats via internal Teams video calls only, not external|
|Attachments||This includes archived attachments and Audio and Video attachments|
|Message count metadata|
|Attachment count metadata|
|Data for accurate search and retrieval during eDiscovery||Includes preserved metadata and original message time|
The following table lists activities not captured by this data source:
|Activity not captured||Notes|
|Reaction collection||MS Export API does not yet support this|
|Summary record collection for every Microsoft Teams meeting or call|
|User profile images|
|Chats during externally-hosted Teams video calls|
|Participant leaving/being deleted from the channel||Participant is captured only if they wrote a message|
|Self Chats||These are messages that a user sends to themself|
|Messages submitted by unlicensed O365 User||Microsoft Export API does not support the collection of this data|
The following table lists metadata captured by this data source:
|DATE||Start date of a chat or start date of a slice in the chat split into slices|
|SUBJECT||Friendly name of the team and channel|
|FROM||The first person to send a message in that respective slice|
|CONVERSATION-ID||Unique identifier - when creating a data mapping, set Read From Other Metadata Column to Yes.|
|X-RSMF-EndDate:||End date of the chat/slice - when creating a data mapping, set Read From Other Metadata Column to Yes.|
|X-RSMF-MessageCount:||Number of messages in the chat/slice - when creating a data mapping, set Read From Other Metadata Column to Yes.|
|X-RSMF-AttachmentCount:||Number of attachments in the chat/slice - when creating a data mapping, set Read From Other Metadata Column to Yes.|
A “Slice” of data refers to a start and end time of data that will be captured in one Relativity Document. Unless specified, a slice will contain one days worth of data.
This section provides details on the prerequisites and steps for setting up this data source.
You must have the following in order to complete the setup instructions for this data source.
You must have Collect installed in the workspace to set up this data source, since Collect will be used for data retrieval.
For details on installing Collect, see Using Relativity Collect.
You must have the following company-provided information to complete the authentication steps that precede setting up the data source:
- Access to the Azure portal and an active account
- A Client Secret
- An O365 domain name
- An Application / Client ID
You must have the following information to complete the data transfer.
- An application ID
- A Client secret
- An O365 domain name
Before configuring the data source complete the following authentication steps.
We strongly recommend registering a separate Azure Application for each Data Source.
Try to avoid running parallel Teams connections from the same Azure Application as Microsoft will throttle calls causing collection jobs to fail.
To register your app:
- Open your Azure Portal.
- Click More Services.
- Search for and select Azure Active Directory.
- In the left-navigation menu, click App registrations.
- Click New Registration. This will open the Register an application page.
- Enter an application name in the Name field.
- Select Accounts in this organizational directory only as the supported account type.
- Enter the redirect URL, http://localhost/ or https://localhost/, as the sign-on URL.
- Click Register. For more information on registering an application in Azure, see Microsoft’s documentation.
From the app’s page, add permissions to the web API:
- Click API Permissions.
- Click Add a permission.
- Click Microsoft Graph.
- Select Application Permissions.
- Select the following options from the Application Permissions section:
- Click Add permissions.
- Click Grant Permission.
To request access to the protected APIs mentioned in this topic, complete the following request form. Microsoft review access requests every Wednesday and deploy approvals every Friday, except during major holiday weeks in the U.S. Submissions during those weeks will be processed the following non-holiday week. The person who submits the above form to Microsoft needs to receive confirmation from Microsoft that permission has been granted. For additional details about Teams security, contact Trace support.
Grant Admin consent for the API:
- Click the API Permissions tab.
- Click Grant admin consent for [tenant].
- In the pop-up window, click Accept. If you do not have the ability to grant Admin consent for application permissions, you will need to find an Admin that can consent.
- Once clicked, the window will show all permissions granted.
- Verify all permissions have been granted.
- Click Accept to grant the permissions.
Generate Client Secret:
- In the left navigation menu, select Certificates & secrets.
- Select New client secret.
- Enter a description in the Description text box.
- Set the expiration time frame to Never.
- Click Add.
- Click on the clipboard and copy secret to clipboard to paste in your text document. Save this secret, as you will need it to set up your data sources in Trace.
Microsoft will only show this secret this one time; there is no way to recover a secret if it is forgotten or lost. Make a note of the Application ID that Microsoft assigned to the app registration. This ID is also required for setup of data sources in Trace.
You will need the following information to complete setup of the data source from the Trace front end:
- Application ID
- Client Secret (copy the Value field)
- Domain (mycompanydomain.com)
Make sure you copy the Value field item for your Client Secret. Do not accidentally copy the Secret ID item as this is not the your Client Secret.
Limit the access of Relativity Collect to specific Microsoft user accounts and mailboxes by using the New-ApplicationAccessPolicy Powershell cmdlet. For more information, see Microsoft documentation.
The following sections provide the steps for installing Collect and configuring the data source.
Prior to creating the Data Source, install the Collect application and configure the appropriate instance settings by following the Using Relativity Collect page.
Most parameters work the same for all Collect Data Sources. Follow the instructions from common_collect_data_source_functionality section.
O365 Teams specific parameters:
- Data Source Type: Select Microsoft O365 Teams.
- Application Secret: The Client Secret provided by the client (see Authentication for more details).
- The following is an example of an application secret, which includes random chars and numbers: NMubGVcDqkwwGnCs6fa01tqlkTisfUd4pBBYgcxxx=
- Data Source Specific Fields section
- Domain: The O365 domain name provided by the client.
- Application Id: Application / Client ID provided by the client. For example, 53ba6f2b-6d52-4f5c-8ae0-7adc20808854
- Frequency in Minutes: 1440
- Collection Period Offset in Minutes: 0