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:

  • For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.

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

Replication Method :

Full Table

Primary Key :

id

API endpoint :

List channels

The channels table contains information about the channels within a team in your Microsoft account.


Replication Method :

Full Table

Primary Key :

id

API endpoint :

List conversation members

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


Replication Method :

Key-based Incremental

Replication Key :

lastModified_date_time

Primary Key :

id

API endpoint :

chatMessages: delta

The channel_messages table contains information about messages in a channel, without replies, in your Microsoft account.

id
STRING

The message ID.

lastModified_date_time
DATE-TIME

The time the message was last updated.

attachments
ARRAY

id
STRING

content_type
STRING

content_url
STRING

content
STRING

name
STRING

thumbnail_url
STRING

channel_messages (table), attachments (attribute)

body
OBJECT

content
STRING

content_type
STRING

channel_messages (table), body (attribute)

channel_identity
OBJECT

chat_id
STRING

created_date_time
DATE-TIME

deleted_date_time
DATE-TIME

etag
STRING

from
OBJECT

channel_messages (table), from (attribute)

importance
STRING

locale
STRING

mentions
ARRAY

id
INTEGER

mention_text
STRING

mentioned
OBJECT

channel_messages (table), mentioned (attribute)
channel_messages (table), mentions (attribute)

message_type
STRING

policy_violation
STRING

reactions
ARRAY

reaction_type
STRING

created_date_time
DATE-TIME

user
OBJECT

channel_messages (table), user (attribute)
channel_messages (table), reactions (attribute)

reply_to_id
STRING

subject
STRING

summary
STRING

web_url
STRING


channel_message_replies

Replication Method :

Key-based Incremental

Replication Key :

last_modified_date_time

Primary Key :

id

API endpoint :

List channel message replies

The channel_message_replies table contains information about message replies within a channel in one of your Microsoft teams.

id
STRING

The message reply ID.

last_modified_date_time
DATE-TIME

The time the reply was last modified.

attachments
ARRAY

id
STRING

content_type
STRING

content_url
STRING

content
STRING

name
STRING

thumbnail_url
STRING

channel_message_replies (table), attachments (attribute)

body
OBJECT

content
STRING

content_type
STRING

channel_message_replies (table), body (attribute)

channel_identity
OBJECT

chat_id
STRING

created_date_time
DATE-TIME

deleted_date_time
DATE-TIME

etag
STRING

from
OBJECT

channel_message_replies (table), from (attribute)

importance
STRING

locale
STRING

mentions
ARRAY

id
INTEGER

mention_text
STRING

mentioned
OBJECT

channel_message_replies (table), mentioned (attribute)
channel_message_replies (table), mentions (attribute)

message_type
STRING

policy_violation
STRING

reactions
ARRAY

reaction_type
STRING

created_date_time
DATE-TIME

user
OBJECT

channel_message_replies (table), user (attribute)
channel_message_replies (table), reactions (attribute)

reply_to_id
STRING

subject
STRING

summary
STRING

web_url
STRING


Replication Method :

Full Table

Primary Key :

id

API endpoint :

List tabs in channel

The channel_tabs table contains information about tabs within a channel in one of your Microsoft teams.

id
STRING

The channel tab ID.

channel_id
STRING

The channel ID.

Reference:

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

channel_tabs (table), configuration (attribute)

display_name
STRING

group_id
STRING

The group ID.

Reference:

sort_order_index
STRING

teams_app
OBJECT

display_name
STRING

distribution_method
STRING

id
STRING

channel_tabs (table), teams_app (attribute)

web_url
STRING


Replication Method :

Key-based Incremental

Replication Key :

last_delivered_date_time

Primary Key :

id

API endpoint :

List conversations

The conversations table contains information about conversations within a group in your Microsoft account.

id
STRING

The conversation ID.

last_delivered_date_time
DATE-TIME

The time a message was last delivered in a conversation.

group_id
STRING

The ID of the group associated with the conversation.

Reference:

has_attachments
BOOLEAN

preview
STRING

topic
STRING

unique_senders
ARRAY

value
STRING

conversations (table), unique_senders (attribute)

conversation_posts

Replication Method :

Key-based Incremental

Replication Key :

last_modified_date_time

Primary Key :

id

API endpoint :

List posts

The conversation_posts table contains information about the posts within a conversation thread in your Microsoft account.

id
STRING

The post ID.

last_modified_date_time
DATE-TIME

The time the post was last modified.

body
OBJECT

content
STRING

content_type
STRING

conversation_posts (table), body (attribute)

categories
OBJECT

change_key
STRING

conversation_id
STRING

The conversation ID.

Reference:

created_date_time
DATE-TIME

from
OBJECT

emailAddress
OBJECT

address
STRING

name
STRING

conversation_posts (table), emailAddress (attribute)
conversation_posts (table), from (attribute)

has_attachments
BOOLEAN

received_date_time
DATE-TIME

sender
OBJECT

emailAddress
OBJECT

address
STRING

name
STRING

conversation_posts (table), emailAddress (attribute)
conversation_posts (table), sender (attribute)

thread_id
STRING

The ID of the conversation thread associated with the post.

Reference:


conversation_threads

Replication Method :

Key-based Incremental

Replication Key :

last_delivered_date_time

Primary Key :

id

API endpoint :

List threads

The conversation_threads table contains information about threads in a group conversation in your Microsoft account.

id
STRING

The thread ID.

Reference:

last_delivered_date_time
DATE-TIME

The time the last message was delivered in the thread.

conversation_id
STRING

The ID of the conversation associated with the thread.

Reference:

group_id
STRING

The ID of the group associated with the thread.

Reference:

has_attachments
BOOLEAN

is_locked
BOOLEAN

preview
STRING

topic
STRING

unique_senders
STRING


Replication Method :

Full Table

Primary Key :

id

API endpoint :

Get a list of 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.

id
STRING

The group ID.

Reference:

classification
STRING

created_date_time
DATE-TIME

creation_options
ARRAY

value
STRING

groups (table), creation_options (attribute)

deleted_date_time
DATE-TIME

description
STRING

display_name
STRING

expiration_date_time
DATE-TIME

group_types
ARRAY

value
STRING

groups (table), group_types (attribute)

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

value
STRING

groups (table), on_premises_provisioning_errors (attribute)

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

value
STRING

groups (table), proxy_addresses (attribute)

renewed_date_time
DATE-TIME

resource_behavior_options
ARRAY

value
STRING

groups (table), resource_behavior_options (attribute)

resource_provisioning_options
ARRAY

value
STRING

groups (table), resource_provisioning_options (attribute)

security_edentifier
STRING

security_enabled
BOOLEAN

theme
STRING

visibility
STRING


Replication Method :

Full Table

Primary Key :

id

API endpoint :

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

id
STRING

The group member ID.

business_phones
ARRAY

value
STRING

group_members (table), business_phones (attribute)

display_name
STRING

given_name
STRING

job_title
STRING

mail
STRING

mobile_phone
STRING

office_location
STRING

preferred_language
STRING

surname
STRING

user_principal_name
STRING


Replication Method :

Full Table

Primary Key :

id

API endpoint :

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

id
STRING

The group owner ID.

business_phones
ARRAY

value
STRING

group_owners (table), business_phones (attribute)

display_name
STRING

given_name
STRING

group_id
STRING

The ID of the group associated with the group owner.

Reference:

job_title
STRING

mail
STRING

mobile_phone
STRING

office_location
STRING

preferred_language
STRING

surname
STRING

user_principal_name
STRING


team_device_usage_report

Replication Method :

Key-based Incremental

Replication Key :

report_refresh_date

Primary Key :

user_principal_name : report_refresh_date

API endpoint :

reportRoot: getTeamsDeviceUsageUserDetail

The team_device_usage_report table contains information about a group’s device usage in Microsoft Teams.

user_principal_name
STRING

The user’s internal identifier in the company’s directory.

report_refresh_date
STRING

The date the report was last refreshed.

id
STRING

deleted_date
STRING

is_deleted
STRING

last_activity_date
STRING

report_period
STRING

used_android_phone
STRING

used_i_os
STRING

used_mac
STRING

used_web
STRING

used_windows
STRING

used_windows_phone
STRING


Replication Method :

Key-based Incremental

Replication Key :

last_modified_date_time

Primary Key :

id

API endpoint :

Get the document library associated with a group

The team_drives table contains information about the drive that your team is on in your Microsoft account.

id
STRING

The drive ID.

last_modified_date_time
STRING

The time the drive was last modified.

created_by
OBJECT

user
OBJECT

display_name
STRING

team_drives (table), user (attribute)
team_drives (table), created_by (attribute)

drive_type
STRING

name
STRING

owner
OBJECT

Details about the owner of the team drive.

group
OBJECT

Details about the group that owns the team drive.

team_drives (table), group (attribute)
team_drives (table), owner (attribute)

quota
OBJECT

deleted
INTEGER

remaining
NUMBER

state
STRING

total
NUMBER

used
INTEGER

team_drives (table), quota (attribute)

web_url
STRING


Replication Method :

Full Table

Primary Key :

id

API endpoint :

List users

The users table contains information about users in your Microsoft account.

id
STRING

The user ID.

Reference:

business_phones
ARRAY

value
STRING

users (table), business_phones (attribute)

display_name
STRING

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