Microsoft Teams ON THIS PAGE
Microsoft Teams is Microsoft's cloud-based team collaboration platform, part of the Microsoft 365 suite. It provides persistent chat channels, video conferencing, file storage, and integration with other Microsoft 365 services.
Microsoft Teams integration replicates data using the Microsoft Graph API .
See the
Schema section for a list of objects available for replication.
Feature snapshot
A high-level look at this connector, including useful links, and supported features.
Preparing for authentication To access your data, you need to authenticate the connection with your account credentials.
Information note Make sure that the account you use has read access to the tables you want to fetch.
To set up your Microsoft Teams account, you need:
A Microsoft 365 account with Microsoft Teams deployed in your organization. An Azure subscription with access to the Azure portal (portal.azure.com ) or Entra Admin Center (entra.microsoft.com ). Permission to register applications and grant admin consent in your Microsoft Entra ID tenant (Global Administrator or Application Administrator role). To register a Microsoft Entra ID application and grant API permissions:
Log into your Microsoft Entra admin center account. Navigate to Entra ID > App registrations . Click New registration . Enter a name for the application (for example, QlikDataIntegration ), select Accounts in this organizational directory only , and click Register . On the application's Overview page, copy the Application (client) ID and the Directory (tenant) ID and paste them into a secured file. Navigate to Certificates & secrets > Client secrets > New client secret . Enter a description and expiration date, and click Add .
Copy and paste the secret Value into a secured file.
Navigate to API permissions > Add a permission > Microsoft Graph > Application permissions . Add the following permissions:
User.Read.All — required for the users stream.Group.Read.All — required for the groups, group_members, group_owners, channels, channel_members, channel_tabs, channel_messages, channel_message_replies, conversations, conversation_threads, and conversation_posts streams.Files.Read.All — required for the team_drives stream.Reports.Read.All — required for the team_device_usage_report stream. Click Grant admin consent for [your organization] and confirm.
All permissions must show a green “Granted” status before the connector will work.
Creating the connection For more information, see Connecting to SaaS applications .
Fill in the required connection properties. Provide a name for the connection in Connection name .
Select Open connection metadata to define metadata for the connection when it has been created.
Click Create .
Connection settings Setting Description Data gateway
Select a Data Movement gateway if required by your use case.
Information note This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway . If you have another subscription tier and do not want to use Data Movement gateway , select None .
For information on the benefits of Data Movement gateway and use cases that require it, see Qlik Data Gateway - Data Movement .
Start Date Enter the date, in the format MM/DD/YYYY, from which the data must be replicated from your source to your target.
Tenant ID Directory (tenant) ID. OAuth Application ID Application (client) ID. Application Secret Client secret.
Limitations and considerations Authentication uses application (client credentials) permissions. A Global Administrator or Application Administrator must grant admin consent for all required API permissions. The team_device_usage_report stream calls the Microsoft Graph reports endpoint, which returns data for the past 28 days only. By default, Microsoft 365 anonymizes user identity columns (user_principal_name, user_id) in usage reports. To retrieve actual user identities, a tenant admin can enable Display concealed user, group, and site names in all reports in the Microsoft 365 admin center under Settings > Org settings > Services > Reports . Incremental streams use a mix of server-side and client-side bookmark filtering. The channel_messages stream uses the Graph /messages/delta endpoint with a $filter query. The team_device_usage_report stream iterates day-by-day using a date URL parameter. The channel_message_replies, conversations, conversation_threads, conversation_posts, and team_drives streams retrieve all records and filter client-side because the underlying endpoints do not support $filter on the bookmark field. Groups without "Team" in the resourceProvisioningOptions property are excluded from Teams-specific stream queries (such as channels, channel_messages, channel_members, and so on). Field names are normalized from camelCase to snake_case during extraction. Microsoft Graph API throttling limits apply. The connector handles rate limiting automatically with retry logic. SchemaInformation note Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.
The schema and info displayed below is for version 1.
Depending on your destination, table and column names may not appear as they are outlined below.
channel_members
The channel_members table contains information about conversation members within a chat or channel in your Microsoft account.
channel_members table foreign keys Join channel_members with on channels channel_members.channel_id = channels.id channel_tabs channel_members.channel_id = channel_tabs.channel_id channel_messages channel_members.channel_id = channel_messages.channel_identity.channel_id channel_members.user_id = channel_messages.from.user.id channel_members.user_id = channel_messages.mentions.mentioned.user.id channel_members.user_id = channel_messages.reactions.user.user.id channel_message_replies channel_members.channel_id = channel_message_replies.channel_identity.channel_id channel_members.user_id = channel_message_replies.from.user.id channel_members.user_id = channel_message_replies.mentions.mentioned.user.id channel_members.user_id = channel_message_replies.reactions.user.user.id users channel_members.user_id = users.id
channel_members table schema
channel_id
STRING
display_name
STRING
email
STRING
id
STRING
roles
ARRAY
This is a nested data structure.
user_id
STRING
channel_message_replies
The channel_message_replies table contains information about message replies within a channel in one of your Microsoft teams.
Replication Method
CDC
Primary Keys
id
group_id
channel_id
message_id
Replication Key
created_date_time
Useful links
Microsoft Teams API method
channel_message_replies table foreign keys Join channel_message_replies with on channels channel_message_replies.channel_identity.channel_id = channels.id channel_members channel_message_replies.channel_identity.channel_id = channel_members.channel_id channel_message_replies.from.user.id = channel_members.user_id channel_message_replies.mentions.mentioned.user.id = channel_members.user_id channel_message_replies.reactions.user.user.id = channel_members.user_id channel_tabs channel_message_replies.channel_identity.channel_id = channel_tabs.channel_id channel_messages channel_message_replies.channel_identity.channel_id = channel_messages.channel_identity.channel_id channel_message_replies.from.user.id = channel_messages.from.user.id channel_message_replies.mentions.mentioned.user.id = channel_messages.from.user.id channel_message_replies.reactions.user.user.id = channel_messages.from.user.id channel_message_replies.from.user.id = channel_messages.mentions.mentioned.user.id channel_message_replies.mentions.mentioned.user.id = channel_messages.mentions.mentioned.user.id channel_message_replies.reactions.user.user.id = channel_messages.mentions.mentioned.user.id channel_message_replies.from.user.id = channel_messages.reactions.user.user.id channel_message_replies.mentions.mentioned.user.id = channel_messages.reactions.user.user.id channel_message_replies.reactions.user.user.id = channel_messages.reactions.user.user.id users channel_message_replies.from.user.id = users.id channel_message_replies.mentions.mentioned.user.id = users.id channel_message_replies.reactions.user.user.id = users.id
channel_message_replies table schema
attachments
ARRAY
This is a nested data structure:
content: STRING content_type: STRING content_url: STRING id: STRING name: STRING thumbnail_url: STRING
body
OBJECT
This is a nested data structure:
content: STRING content_type: STRING
channel_identity
OBJECT
This is a nested data structure:
channel_id: STRING teamId: STRING
chat_id
STRING
created_date_time
DATE-TIME
deleted_date_time
DATE-TIME
etag
STRING
from
OBJECT
This is a nested data structure:
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING user_identity_type: STRING
id
STRING
importance
STRING
last_modified_date_time
DATE-TIME
locale
STRING
mentions
ARRAY
This is a nested data structure:
id: INTEGER mention_text: STRING mentioned: OBJECT, which is also a nested data structure.
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING user_identity_type: STRING
message_type
STRING
policy_violation
STRING
reactions
ARRAY
This is a nested data structure:
created_date_time: DATE-TIME reaction_type: STRING user: OBJECT, which is also a nested data structure.
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING user_identity_type: STRING
reply_to_id
STRING
subject
STRING
summary
STRING
web_url
STRING
channel_messages
The channel_messages table contains information about messages in a channel, without replies, in your Microsoft account.
Replication Method
CDC
Primary Keys
id
group_id
channel_id
Replication Key
last_modified_date_time
Useful links
Microsoft Teams API method
channel_messages table foreign keys Join channel_messages with on channels channel_messages.channel_identity.channel_id = channels.id channel_members channel_messages.channel_identity.channel_id = channel_members.channel_id channel_messages.from.user.id = channel_members.user_id channel_messages.mentions.mentioned.user.id = channel_members.user_id channel_messages.reactions.user.user.id = channel_members.user_id channel_tabs channel_messages.channel_identity.channel_id = channel_tabs.channel_id channel_message_replies channel_messages.channel_identity.channel_id = channel_message_replies.channel_identity.channel_id channel_messages.from.user.id = channel_message_replies.from.user.id channel_messages.mentions.mentioned.user.id = channel_message_replies.from.user.id channel_messages.reactions.user.user.id = channel_message_replies.from.user.id channel_messages.from.user.id = channel_message_replies.mentions.mentioned.user.id channel_messages.mentions.mentioned.user.id = channel_message_replies.mentions.mentioned.user.id channel_messages.reactions.user.user.id = channel_message_replies.mentions.mentioned.user.id channel_messages.from.user.id = channel_message_replies.reactions.user.user.id channel_messages.mentions.mentioned.user.id = channel_message_replies.reactions.user.user.id channel_messages.reactions.user.user.id = channel_message_replies.reactions.user.user.id users channel_messages.from.user.id = users.id channel_messages.mentions.mentioned.user.id = users.id channel_messages.reactions.user.user.id = users.id
channel_messages table schema
attachments
ARRAY
This is a nested data structure:
content: STRING content_type: STRING content_url: STRING id: STRING name: STRING thumbnail_url: STRING
body
OBJECT
This is a nested data structure:
content: STRING content_type: STRING
channel_identity
OBJECT
This is a nested data structure:
channel_id: STRING teamId: STRING
chat_id
STRING
created_date_time
DATE-TIME
deleted_date_time
DATE-TIME
etag
STRING
from
OBJECT
This is a nested data structure:
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING user_identity_type: STRING
id
STRING
importance
STRING
lastModified_date_time
DATE-TIME
locale
STRING
mentions
ARRAY
This is a nested data structure:
id: INTEGER mention_text: STRING mentioned: OBJECT, which is also a nested data structure.
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING userIdentity_type: STRING
message_type
STRING
policy_violation
STRING
reactions
ARRAY
This is a nested data structure:
created_date_time: DATE-TIME reaction_type: STRING user: OBJECT, which is also a nested data structure.
application: STRING conversation: STRING device: STRING user: OBJECT, which is also a nested data structure.
display_name: STRING id: STRING user_identity_type: STRING
reply_to_id
STRING
subject
STRING
summary
STRING
web_url
STRING
channel_tabs
The channel_tabs table contains information about tabs within a channel in one of your Microsoft teams.
channel_tabs table foreign keys channel_tabs table schema
channel_id
STRING
configuration
OBJECT
This is a nested data structure:
content_url: STRING entity_id: STRING has_content: BOOLEAN remove_url: STRING website_url: STRING wiki_default_tab: BOOLEAN wiki_tab_id: INTEGER
display_name
STRING
group_id
STRING
id
STRING
sort_order_index
STRING
teams_app
OBJECT
This is a nested data structure:
display_name: STRING distribution_method: STRING id: STRING
web_url
STRING
channels
The channels table contains information about the channels within a team in your Microsoft account.
channels table foreign keys channels table schema
description
STRING
display_name
STRING
email
STRING
id
STRING
web_url
STRING
conversation_posts
The conversation_posts table contains information about the posts within a conversation thread in your Microsoft account.
conversation_posts table foreign keys Join conversation_posts with on conversations conversation_posts.conversation_id = conversations.id conversation_threads conversation_posts.conversation_id = conversation_threads.conversation_id conversation_posts.thread_id = conversation_threads.id
conversation_posts table schema
body
OBJECT
This is a nested data structure:
content: STRING content_type: STRING
categories
ARRAY
This is a nested data structure.
change_key
STRING
conversation_id
STRING
created_date_time
DATE-TIME
from
OBJECT
This is a nested data structure:
emailAddress: OBJECT, which is also a nested data structure.
address: STRING name: STRING
has_attachments
BOOLEAN
id
STRING
last_modified_date_time
DATE-TIME
received_date_time
DATE-TIME
sender
OBJECT
This is a nested data structure:
emailAddress: OBJECT, which is also a nested data structure.
address: STRING name: STRING
thread_id
STRING
conversation_threads
The conversation_threads table contains information about threads in a group conversation in your Microsoft account.
conversation_threads table foreign keys Join conversation_threads with on conversations conversation_threads.conversation_id = conversations.id conversation_threads.group_id = conversations.group_id conversation_posts conversation_threads.conversation_id = conversation_posts.conversation_id conversation_threads.id = conversation_posts.thread_id groups conversation_threads.group_id = groups.id group_owners conversation_threads.group_id = group_owners.group_id channel_tabs conversation_threads.group_id = channel_tabs.group_id team_drives conversation_threads.group_id = team_drives.owner.group.id
conversation_threads table schema
conversation_id
STRING
group_id
STRING
has_attachments
BOOLEAN
id
STRING
is_locked
BOOLEAN
last_delivered_date_time
DATE-TIME
preview
STRING
topic
STRING
unique_senders
STRING
conversations
The conversations table contains information about conversations within a group in your Microsoft account.
conversations table foreign keys Join conversations with on conversation_threads conversations.id = conversation_threads.conversation_id conversations.group_id = conversation_threads.group_id conversation_posts conversations.id = conversation_posts.conversation_id groups conversations.group_id = groups.id group_owners conversations.group_id = group_owners.group_id channel_tabs conversations.group_id = channel_tabs.group_id team_drives conversations.group_id = team_drives.owner.group.id
conversations table schema
group_id
STRING
has_attachments
BOOLEAN
id
STRING
last_delivered_date_time
DATE-TIME
preview
STRING
topic
STRING
unique_senders
ARRAY
This is a nested data structure.
group_members
The group_members table contains information about group members in your Microsoft account. Members can be users, organizational contacts, devices, service principals, and other groups.
group_members table schema
business_phones
ARRAY
This is a nested data structure.
display_name
STRING
given_name
STRING
id
STRING
job_title
STRING
mail
STRING
mobile_phone
STRING
office_location
STRING
preferred_language
STRING
surname
STRING
user_principal_name
STRING
group_owners
The group_owners table contains information about groups’ owners in your Microsoft account. The owners can be a set of users or service principals that have modifying priviliges.
Note : Groups created in Microsoft Exchange will not be available in this table.
group_owners table foreign keys Join group_owners with on groups group_owners.group_id = groups.id channel_tabs group_owners.group_id = channel_tabs.group_id conversations group_owners.group_id = conversations.group_id conversation_threads group_owners.group_id = conversation_threads.group_id team_drives group_owners.group_id = team_drives.owner.group.id
group_owners table schema
business_phones
ARRAY
This is a nested data structure.
display_name
STRING
given_name
STRING
group_id
STRING
id
STRING
job_title
STRING
mail
STRING
mobile_phone
STRING
office_location
STRING
preferred_language
STRING
surname
STRING
user_principal_name
STRING
groups
The groups table contains information about groups in your organization within your Microsoft account. Some old teams in your account will not have a resource_provisioning_options value. For more information, refer to Microsoft’s docs .
groups table foreign keys groups table schema
classification
STRING
created_date_time
DATE-TIME
creation_options
ARRAY
This is a nested data structure.
deleted_date_time
DATE-TIME
description
STRING
display_name
STRING
expiration_date_time
DATE-TIME
group_types
ARRAY
This is a nested data structure.
id
STRING
is_assignable_to_role
BOOLEAN
mail
STRING
mail_enabled
BOOLEAN
mail_nickname
STRING
membership_rule
STRING
membership_rule_processing_state
STRING
onPremises_domain_name
STRING
on_premises_last_sync_date_time
DATE-TIME
on_premises_net_bios_name
STRING
on_premises_provisioning_errors
ARRAY
This is a nested data structure.
on_premises_sam_account_name
STRING
on_premises_security_identifier
STRING
on_premises_sync_enabled
BOOLEAN
preferred_data_location
STRING
preferred_language
STRING
proxy_addresses
ARRAY
This is a nested data structure.
renewed_date_time
DATE-TIME
resource_behavior_options
ARRAY
This is a nested data structure.
resource_provisioning_options
ARRAY
This is a nested data structure.
security_edentifier
STRING
security_enabled
BOOLEAN
theme
STRING
visibility
STRING
team_device_usage_report
The team_device_usage_report table contains information about a group’s device usage in Microsoft Teams.
Replication Method
CDC
Primary Keys
user_principal_name
report_refresh_date
Replication Key
report_refresh_date
Useful links
Microsoft Teams API method
team_device_usage_report table schema
deleted_date
STRING
is_deleted
STRING
last_activity_date
STRING
report_period
STRING
report_refresh_date
STRING
used_android_phone
STRING
used_i_os
STRING
used_mac
STRING
used_web
STRING
used_windows
STRING
used_windows_phone
STRING
user_principal_name
STRING
team_drives
The team_drives table contains information about the drive that your team is on in your Microsoft account.
team_drives table foreign keys Join team_drives with on groups team_drives.owner.group.id = groups.id group_owners team_drives.owner.group.id = group_owners.group_id channel_tabs team_drives.owner.group.id = channel_tabs.group_id conversations team_drives.owner.group.id = conversations.group_id conversation_threads team_drives.owner.group.id = conversation_threads.group_id
team_drives table schema
created_by
OBJECT
This is a nested data structure:
user: OBJECT, which is also a nested data structure.
drive_type
STRING
id
STRING
last_modified_date_time
STRING
name
STRING
owner
OBJECT
This is a nested data structure:
group: OBJECT, which is also a nested data structure.
display_name: STRING email: STRING id: STRING
quota
OBJECT
This is a nested data structure:
deleted: INTEGER remaining: NUMBER state: STRING total: NUMBER used: INTEGER
web_url
STRING
users
The users table contains information about users in your Microsoft account.
users table foreign keys Join users with on channel_members users.id = channel_members.user_id channel_message_replies users.id = channel_message_replies.from.user.id users.id = channel_message_replies.mentions.mentioned.user.id users.id = channel_message_replies.reactions.user.user.id channel_messages users.id = channel_messages.from.user.id users.id = channel_messages.mentions.mentioned.user.id users.id = channel_messages.reactions.user.user.id
users table schema
business_phones
ARRAY
This is a nested data structure.
display_name
STRING
given_name
STRING
id
STRING
job_title
STRING
mail
STRING
mobile_phone
STRING
office_location
STRING
preferred_language
STRING
surname
STRING
user_principal_name
STRING