Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Microsoft provides 2 set of Graph APIs to archive chat and channel messages for Microsoft Teams. The Verba system supports both integrations. The following table provides a comparison of the 2 integration options.


FeatureWebhook/DLP APIExport API
CaptureInternal chat (peer-to-peer and group) messages and filesSupportedSupported
External chat (peer-to-peer and group) messages and files

Supported

Files can only be archived if the chat is started by an internal party

Supported

Files can only be archived if the chat is started by an internal party

Internal channel messages and filesSupportedSupported
Internal meeting messages and filesSupportedSupported
External meeting messages and files

Supported

Files cannot be archived unless the meeting is hosted by an internal party

Supported

Files cannot be archived unless the meeting is hosted by an internal party

Private channel messages and filesSupportedNot supported
Channel announcementSupportedSupported
RepliesSupportedSupported
ReactionsSupported

Supported

Reactions that are added after the query returned the message, will not be archived. because there is a known bug in the Export API confirmed by Microsoft.

EmoticonsSupportedSupported
Animated GIFs, Stickers, Praises, and other rich contentSupportedSupported
Send email to channelSupportedSupported
Loop componentsNot supportedNot supported
OneNoteNot supportedNot supported
Participant join/leave events

Supported

Initially, the membership information is determined based on periodic membership queries and/or message sender information (there is a chance that this is not 100% accurate all the time. VFC data is only as accurate as the information returned in the periodic query).

From the time a conversation is being recorded, accurate participant information can be determined from join/leave system events.

Supported

Initially, the membership information is determined based on periodic membership queries and/or message sender information (there is a chance that this is not 100% accurate all the time. VFC data is only as accurate as the information returned in the periodic query).Microsoft has a feature on the roadmap to include , which provide the list of members at the time of the query. From the time a conversation is being recorded, accurate participant information can be determined by combining the initial membership information received from the periodic membership queries and from join/leave system events in the exported messages which can resolve this issue in the future.

Participant join and leave times are stored as follows:

  • Participant join timestamp: it is based on the timestamp of the last received message in the chat when the membership polling was initiated. This approach means that all the current members of the chat will be treated as they joined since the first message which was returned by the Export API query.
  • Participant leave timestamp: it is based on the time when the membership polling returned the membership change (the participant is no longer listed as a participant in the chat). 

    . Join/leave system events provide historical information and are used to verify changes in participant membership since the last membership information update.

    Note: Until the data from the initial membership query is received, only partial participant information is available, determined from the system events and user activity. The receipt of accurate participation information can also be delayed due to the delay in the ingestion of Teams chat and channel messages, and any throttling limits that exist for the API.

    Selective capture

    Supported for both chats and channels with limitations, participant information is not 100% accurate all the time (see below)

    Chat: supported

    Channel: supported, but the API only offers team based queries (user based queries are not available, teams have to be configured as recorded extensions)

    Participant informationChat and channel membership information is collected by receiving join/leave system events and periodically querying Graph API endpoints and caching the data on the Media Recorders.

    Chat and channel membership information is collected at the point when the Export API is queried. The accuracy of the chat and channel membership information has no effect on the selective capture, there will be no data loss. However, due to the periodic query nature, the membership information might not be accurately reflected in the database for the chat and channel conversations. See Participant Join/Leave Events for more information.

    Chat/channel name and description updates

    Supported

    Available through regular polling and system events.

    Supported

    Available through regular polling.

    Disclamier notificationNot supportedNot supported
    ArchitectureIntegration with Microsoft Graph APIs

    The Webhook/DLP API is a set of Microsoft Graph APIs which that allow subscribing to change notification events for both chat and channel messages in a Teams tenant. The Webhook API based integration provides a real-time capture of messages and attachments.

    For more information, see https://docs.microsoft.com/en-us/graph/teams-changenotifications-chatmessage

    The system utilizes other Graph APIs to collect additional information such as attachments, user information, group membership, etc.

    The Export API is a set of Microsoft Graph APIs which allow querying both chat and channel messages for specific users and teams in a Teams tenant. The Export API based integration provides a non real-time capture of messages and attachments.

    For more information, see https://docs.microsoft.com/en-us/microsoftteams/export-teams-content

    The system utilizes other Graph APIs to collect additional information such as attachments, user information, group membership, etc.

    Data segregation, access to regulated users' data onlyNot supported, the webhook sends data for every user in the tenant which is filtered on the Media Records only, the files in the file queue are encrypted automaticallySupported
    Load balancing for Recording DirectorSupported via load balancers

    Supported by automatic allocation of archived users and teams to file queues

    Note: Recording Director and Media Recorder roles are always co-located for Export API based deployments

    Load balancing for Media RecorderSupported via file queues
    Failover for Recording DirectorSupported via load balancers

    Supported by deploying standby servers

    Note: Recording Director and Media Recorder roles are always co-located for Export API based deployments

    Failover for Media RecorderSupported by deploying standby servers
    Scalability for Recording DirectorScales by adding more servers behind a load balancer

    Scales by adding more servers

    Note: Recording Director and Media Recorder roles are always co-located for Export API based deployments

    Scalability for Media RecordersScales by adding more servers
    Possible data loss scenarios
    • Microsoft only retries sending events a few times, so data can be lost after that. The risk can be mitigated by deploying multiple Recording Directors behind a load balancer.
    • Data loss is possible if selective archiving is configured and the participant information is not up-to-date (see Participant Information for more information).

    No data loss since the queries can be executed at any time. Microsoft stores messages for the defined retention period (see https://docs.microsoft.com/en-us/microsoftteams/retention-policies). Deleted messages are kept for 21 days only.

    Multi-tenancy

    Supported

    Supported

    Data duplicationNo duplication, messages and files are stored only once even where there are multiple archived users in the same chat or channel

    Chat: data duplication, messages and files are multiplicated based on the number of archived users in the chat

    Channel: no duplication, messages and files are stored only once even where there are multiple archived users in the same channel

    ExportExport

    SMTP-based export only

    User/participant-based or conversation/chat based export

    SMTP based export only

    User/participant based only

    LicensingMicrosoft licensingInstant message, and attachment archiving requires one of the following user licenses for bot Webhook/DLP and Export API deployments for all archived users:
    • Office 365 A5/E5
    • Microsoft 365 A5/E5
    • Microsoft 365 Information Protection and Governance
    • Office 365 Advanced Compliance

    For more information, see https://docsFor licensing information, please refer to the following Microsoft knowledge base article, "Graph APIs for Teams Data Loss Prevention (DLP) and for Teams Export" section:

    https://learn.microsoft.com/en-us/office365/servicedescriptions/microsoft-365-service-descriptions/microsoft-365-tenantlevel-services-licensing-guidance/microsoft-365-security-compliance-licensing-guidance#microsoft-purview-data-loss-prevention-graph-apis-for-teams-data-loss-prevention-dlp-and-for-teams-export

    In addition to the user license requirements above, the owner of the application registration must define the licensing model for the deployment. Model A is required for Security and Compliance (S+C) and general usage scenarios. The licensing model is configurable in the VFC system.

    For more information about seeded capacity and consumption fees, see https://docs.microsoft.com/en-us/graph/teams-licenses.

    LimitationsLimitations-

    The following limitations should be considered when deploying the Export API based solution:

    • The Microsoft Export API only returns the latest version of the message, not the complete history of the message, previous edits will not be returned.
    • The onBehalfOf attribute is missing for apps, such as Forms, the sender is not recognized due to this limitation.
    • Microsoft has no official SLA for the completeness of the records, we estimate min. 15 minutes, but it is recommended to use the default 1 hour delay for the queries.
    • Participant join/leave times are not accurate (see above)
    • Reactions that are added after the query returned the message, will not be archived. because there is a known bug in the Export API confirmed by Microsoft (see above)
    • Private and  shared channel messages are not supported (change is planned for 9.8.1)

    Deploying Microsoft Teams chat and channel archiving

    ...