Microsoft Teams integration summary

Stitch’s Microsoft Teams integration replicates data using the Microsoft Graph API. Refer to the Schema section for a list of objects available for replication.

Microsoft Teams feature snapshot

A high-level look at Stitch's Microsoft Teams (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Beta

Supported by

Stitch

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-ms-teams

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Microsoft Teams

Microsoft Teams setup requirements

To set up Microsoft Teams in Stitch, you need:

  • A Microsoft Azure account.


Step 1: Add Microsoft Teams as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Microsoft Teams icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Microsoft Teams” would create a schema called stitch_microsoft_teams in the destination. Note: Schema names cannot be changed after you save the integration.

Step 2: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Microsoft Teams integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Microsoft Teams’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Microsoft Teams integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Authorize Stitch to access Microsoft Teams

  1. Next, you’ll be redirected to Microsoft Teams.
  2. Log into your Microsoft Teams account and complete the authorization process. When finished, you’ll be redirected back to Stitch.
  3. Click All Done.

Step 5: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Microsoft Teams integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Microsoft Teams, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Microsoft Teams table reference

channel_members

The channel_members table contains information about conversation members within a chat or channel in your Microsoft account.

Replication Method

Full Table

Primary Key

id

Useful links

channel_members schema on GitHub

Microsoft Teams API method

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_id

STRING

display_name

STRING

email

STRING

id

STRING

roles

ARRAY

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

Key-based Incremental

Primary Key

id

Replication Key

last_modified_date_time

Useful links

channel_message_replies schema on GitHub

Microsoft Teams API method

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

attachments

ARRAY

content

STRING

content_type

STRING

content_url

STRING

id

STRING

name

STRING

thumbnail_url

STRING

body

OBJECT

content

STRING

content_type

STRING

channel_identity

OBJECT

channel_id

STRING

teamId

STRING

chat_id

STRING

created_date_time

DATE-TIME

deleted_date_time

DATE-TIME

etag

STRING

from

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

display_name

STRING

id

STRING

user_identity_type

STRING

id

STRING

importance

STRING

last_modified_date_time

DATE-TIME

locale

STRING

mentions

ARRAY

id

INTEGER

mention_text

STRING

mentioned

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

display_name

STRING

id

STRING

user_identity_type

STRING

message_type

STRING

policy_violation

STRING

reactions

ARRAY

created_date_time

DATE-TIME

reaction_type

STRING

user

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

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

Key-based Incremental

Primary Key

id

Replication Key

lastModified_date_time

Useful links

channel_messages schema on GitHub

Microsoft Teams API method

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

attachments

ARRAY

content

STRING

content_type

STRING

content_url

STRING

id

STRING

name

STRING

thumbnail_url

STRING

body

OBJECT

content

STRING

content_type

STRING

channel_identity

OBJECT

channel_id

STRING

teamId

STRING

chat_id

STRING

created_date_time

DATE-TIME

deleted_date_time

DATE-TIME

etag

STRING

from

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

display_name

STRING

id

STRING

user_identity_type

STRING

id

STRING

importance

STRING

lastModified_date_time

DATE-TIME

locale

STRING

mentions

ARRAY

id

INTEGER

mention_text

STRING

mentioned

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

display_name

STRING

id

STRING

userIdentity_type

STRING

message_type

STRING

policy_violation

STRING

reactions

ARRAY

created_date_time

DATE-TIME

reaction_type

STRING

user

OBJECT

application

STRING

conversation

STRING

device

STRING

user

OBJECT

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.

Replication Method

Full Table

Primary Key

id

Useful links

Microsoft Teams documentation

channel_tabs schema on GitHub

Microsoft Teams API method

Join channel_tabs with on
channels
channel_tabs.channel_id = channels.id
channel_members
channel_tabs.channel_id = channel_members.channel_id
channel_messages
channel_tabs.channel_id = channel_messages.channel_identity.channel_id
channel_message_replies
channel_tabs.channel_id = channel_message_replies.channel_identity.channel_id
groups
channel_tabs.group_id = groups.id
group_owners
channel_tabs.group_id = group_owners.group_id
conversations
channel_tabs.group_id = conversations.group_id
conversation_threads
channel_tabs.group_id = conversation_threads.group_id
team_drives
channel_tabs.group_id = team_drives.owner.group.id

channel_id

STRING

configuration

OBJECT

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

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.

Replication Method

Full Table

Primary Key

id

Useful links

channels schema on GitHub

Microsoft Teams API method

Join channels with on
channel_members
channels.id = channel_members.channel_id
channel_tabs
channels.id = channel_tabs.channel_id
channel_messages
channels.id = channel_messages.channel_identity.channel_id
channel_message_replies
channels.id = channel_message_replies.channel_identity.channel_id

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_modified_date_time

Useful links

Microsoft Teams documentation

conversation_posts schema on GitHub

Microsoft Teams API method

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

body

OBJECT

content

STRING

content_type

STRING

categories

ARRAY

change_key

STRING

conversation_id

STRING

created_date_time

DATE-TIME

from

OBJECT

emailAddress

OBJECT

address

STRING

name

STRING

has_attachments

BOOLEAN

id

STRING

last_modified_date_time

DATE-TIME

received_date_time

DATE-TIME

sender

OBJECT

emailAddress

OBJECT

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_delivered_date_time

Useful links

Microsoft Teams documentation

conversation_threads schema on GitHub

Microsoft Teams API method

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_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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_delivered_date_time

Useful links

Microsoft Teams documentation

conversations schema on GitHub

Microsoft Teams API method

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

group_id

STRING

has_attachments

BOOLEAN

id

STRING

last_delivered_date_time

DATE-TIME

preview

STRING

topic

STRING

unique_senders

ARRAY

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.

Replication Method

Full Table

Primary Key

id

Useful links

group_members schema on GitHub

Microsoft Teams API method

business_phones

ARRAY

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.

Replication Method

Full Table

Primary Key

id

Useful links

group_owners schema on GitHub

Microsoft Teams API method

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

business_phones

ARRAY

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.

Replication Method

Full Table

Primary Key

id

Useful links

groups schema on GitHub

Microsoft Teams API method

Join groups with on
group_owners
groups.id = group_owners.group_id
channel_tabs
groups.id = channel_tabs.group_id
conversations
groups.id = conversations.group_id
conversation_threads
groups.id = conversation_threads.group_id
team_drives
groups.id = team_drives.owner.group.id

classification

STRING

created_date_time

DATE-TIME

creation_options

ARRAY

deleted_date_time

DATE-TIME

description

STRING

display_name

STRING

expiration_date_time

DATE-TIME

group_types

ARRAY

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

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

renewed_date_time

DATE-TIME

resource_behavior_options

ARRAY

resource_provisioning_options

ARRAY

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

Key-based Incremental

Primary Keys

user_principal_name

report_refresh_date

Replication Key

report_refresh_date

Useful links

team_device_usage_report schema on GitHub

Microsoft Teams API method

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_modified_date_time

Useful links

team_drives schema on GitHub

Microsoft Teams API method

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

created_by

OBJECT

user

OBJECT

display_name

STRING

drive_type

STRING

id

STRING

last_modified_date_time

STRING

name

STRING

owner

OBJECT

group

OBJECT

display_name

STRING

email

STRING

id

STRING

quota

OBJECT

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.

Replication Method

Full Table

Primary Key

id

Useful links

Microsoft Teams documentation

users schema on GitHub

Microsoft Teams API method

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

business_phones

ARRAY

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


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.