{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["partial"]},"type":"markdown"},"seo":{"title":"Microsoft Teams Chat Provider Configuration Guide","siteUrl":"https://docs.synqly.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Microsoft Teams uses OAuth 2.0 client credentials via the Microsoft Graph API. You will need to register an Azure application, generate a client secret, and grant the required Application permissions with admin consent."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1-register-an-azure-application","__idx":0},"children":["1. Register an Azure Application"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://portal.azure.com"},"children":["Azure portal"]},", search for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["App registrations"]}," and select it. Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ New registration"]}," -> enter a name -> select the appropriate supported account types -> leave ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Redirect URI"]}," blank -> click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Register"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Overview"]}," page, copy the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application (client) ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Directory (tenant) ID"]}," to a safe location."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2-create-a-client-secret","__idx":1},"children":["2. Create a Client Secret"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Manage"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Certificates & secrets"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ New client secret"]},". Enter a description, choose an expiration period, and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copy the secret ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Value"]}," immediately — it will not be shown again."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3-add-api-permissions","__idx":2},"children":["3. Add API Permissions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the app registration, navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Manage"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API permissions"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ Add a permission"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Microsoft Graph"]}," -> ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application permissions"]},". Add each of the following:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Permission"},"children":["Permission"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Channel.ReadBasic.All"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List channels within a team."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ChannelMember.Read.All"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List members of a channel."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ChannelMessage.Read.All"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read messages posted in team channels."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Chat.Read.All"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read messages in 1:1 and group chats."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["User.Read.All"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List users in the tenant and resolve message authors."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All permissions must be ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application"]}," type, not ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delegated"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once added, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Grant admin consent for [your tenant]"]}," and confirm. This requires a Global Administrator or Privileged Role Administrator and is a one-time action."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"4-optional-find-your-team-id","__idx":3},"children":["4. (Optional) Find Your Team ID"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Team ID is required only if you want to query channel messages. If you are only querying user-scoped chats (DMs and group chats), skip this step."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Microsoft Teams (web or desktop), locate the team you want to integrate."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click the three-dot menu (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["..."]},") next to the team name."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Copy link to team"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The copied URL looks similar to:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://teams.cloud.microsoft/l/team/19%3AkH2nP9rM4tQ6sW8vY1zXjL3aFcDuE5bN7%40thread.tacv2/conversations?groupId=b27d4e91-3a06-4f8c-9d12-7e5fa4ce8b03&tenantId=c3e7a209-8b45-4d16-a0f1-5c89d2b7e64a"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Team ID is the value of the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["groupId"]}," query parameter — in the example above, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["b27d4e91-3a06-4f8c-9d12-7e5fa4ce8b03"]},"."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"5-configure-the-integration","__idx":4},"children":["5. Configure the Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tenant ID"]},": The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Directory (tenant) ID"]}," from step 1."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]},": The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application (client) ID"]}," from step 1."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]},": The secret ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Value"]}," from step 2."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Team ID"]}," ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(optional)"]},": The team's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["groupId"]}," from step 4. Required only for querying team channels."]}]},"headings":[{"value":"1. Register an Azure Application","id":"1-register-an-azure-application","depth":2},{"value":"2. Create a Client Secret","id":"2-create-a-client-secret","depth":2},{"value":"3. Add API Permissions","id":"3-add-api-permissions","depth":2},{"value":"4. (Optional) Find Your Team ID","id":"4-optional-find-your-team-id","depth":2},{"value":"5. Configure the Integration","id":"5-configure-the-integration","depth":2}],"frontmatter":{"slug":"guides/provider-configuration/teams-chat-setup","seo":{"title":"Microsoft Teams Chat Provider Configuration Guide"}},"lastModified":"2026-05-18T22:20:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/provider-configuration/teams-chat-setup","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}