Home

Awesome

Microsoft Teams Samples

Sample code build status

Click here to find out what's new with Microsoft Teams Platform

NOTE: These samples are designed to help understand Microsoft Teams platform capabilities and scenarios. If you are looking for production ready apps then please visit App Templates for Microsoft Teams

The easy way to browse through all the samples is to visit the Microsoft 365 Sample Solution Gallery

Sample lists

  1. Copilot for Microsoft 365 plugin samples
  2. Teams Toolkit samples
  3. Getting Started Samples and Tutorials
  4. Tabs samples
  5. Bots samples (using the v4 SDK)
  6. Messaging Extensions samples (using the v4 SDK)
  7. Webhooks and Connectors samples
  8. Graph APIs
  9. Calls and online meetings bots
  10. Meetings samples
  11. Actions Preview
  12. Scenario specific samples

Copilot for Microsoft 365 plugin samples

NameDescription.NETTypeScriptJavaScript
Northwind InventoryPlugin that allows users to query the Northwind DatabaseViewView
Document SearchPlugin that enables Hybrid Search (Vector + Semantic)ViewView
Product supportPlugin that allows users to query the Products held in SharePoint Online team site via Microsoft GraphView
Multi ParametersPlugin that demonstrates how to implement complex utterances and support deep retrievalViewViewView

Samples built using new generation of Teams development tool - Teams Toolkit

The Teams Toolkit is an extension on Visual Studio Code and Visual Studio. It enable Teams developers to create and deploy Teams apps with integrated identity, access to cloud storage, data from Microsoft Graph, and other services in Azure and M365 with a "zero-configuration" approach to the developer experience. And Sample Apps are provided in Teams Toolkit. Download and try it by today! Learn more about Teams Toolkit.

Getting Started - Samples and Tutorials

Sample NameDescriptionC#TypeScriptApp Manifest
1Hello WorldMicrosoft Teams hello world sample app.ViewView toolkit-iconView

AI samples

Sample NameDescriptionC#JavaScriptApp Manifest
1api-doc-searchThis is a sample API application that demonstrates how to perform RAG-based semantic search using NoSQL CosmosDB.View-
2Compliance CheckerUse Azure OpenAI to compare proposal documents against a guideline document and return whether the proposal complies and why/why not.View toolkit-iconView
3bot-ai-meeting-helperThis sample demonstrates how Azure Open AI extracts action items from meeting transcriptions for all participants who subscribed to the meeting, and subsequently sends these action items to each individual user in a 1:1 chat after the meeting concludes.View toolkit-iconView
4bot-virtual-assistantThis is a sample application that demonstrates a root bot that routes inputs to skill bots for tailored responses.View-
5msgext-expert-finder-jsThis sample implements a Teams message extension that can be used to query a database of candidates based on their skills, location and availability. The sample, when used with Copilot for M365, demonstrates SSO, and Copilot's ability to perform multi-parameter search.View-

Tabs samples

Sample NameDescriptionC#TypeScriptJavaScriptApp Manifest
1Personal tabsSample app showing custom personal Tab with ASP. NET CoreMVC, RazorYeoman GeneratorView
2Personal tab quick-startSample personal tab quick-start app.View toolkit-iconView toolkit-icon
3Personal tab with SSO quick-startSample personal tab with SSO hello world app.ViewView toolkit-iconView toolkit-icon
4Channel and group tabsSample app showing custom group and channel Tab with ASP. NET CoreMVC, RazorYeoman GeneratorView
5Channel and group tab quick-startSample channel and group tab hello world app.View toolkit-iconView toolkit-iconView
6Channel and group tab with SSO quick-startSample channel and group tab with SSO hello world app.ViewView toolkit-iconView toolkit-icon
7SPFx TabSample app showing Microsoft Teams tabs using SharePoint FrameworkView
8Tab SSOMicrosoft Teams sample app for tabs Azure AD SSOViewView toolkit-icon
9Config Tab AuthenticationMicrosoft Teams sample app for config tabs Azure AD authenticationViewView
10Deep Link consuming Subentity IDMicrosoft Teams sample app for demonstrating deeplink from Bot chat to Tab consuming Subentity IDViewView toolkit-icon
11Integrate graph toolkit component in teams tabMicrosoft Teams tab sample app for demonstrating graph toolkit componentViewView toolkit-icon
12Device permissionsMicrosoft Teams tab sample app for demonstrating device permissionsView toolkit-iconView
13Build tabs with Adaptive CardsMicrosoft Teams tab sample code which demonstrates how to Build tabs with Adaptive CardsViewView toolkit-iconView
14Tab in stage viewMicrosoft Teams tab sample app for demonstrating tab in stage viewViewView toolkit-iconView
15Create Conversational tabMicrosoft Teams tab sample app for demonstrating create conversation tabViewView toolkit-iconView
16Product inspectionDemonstrating a feature where user can scan a product and mark it as approved/rejected.ViewView toolkit-iconView
17Staggered PermissionThis sample demos to get staggered graph api permissions.ViewView toolkit-iconView
18Tab people pickerThis is an tab app which shows the feature of client sdk people picker.ViewView toolkit-iconView
19Tab channel contextThis sample shows the contents of tab context object in a private and shared channel.View toolkit-icon
20Tab app monetizationThis sample shows how to open purchase dialog and trigger purchase flow using teams-js sdk.View toolkit-icon
21Personal Tab with Nav-Bar menuAdd multiple actions to the upper right in Nav-Bar and build an overflow menu for extra actions in an app.View toolkit-icon
22App Caching in MeetingsThis sample shows how to improve the subsequent loading time of an App.View toolkit-icon
23Tab Multi HubInteract with the user's calendar, mail, profile, geolocation from personal tabs app.View toolkit-icon
24tab-ui-templatesThis sample app can help you better understand how apps should look and behave in Microsoft Teams. The app includes examples of tested, high-quality UI templates that work across common Teams use cases (such as dashboards or forms).View toolkit-icon
25Tab External AuthThis sample illustrates how to implement Google auth using external auth providers.View
26Tab Meeting Tanscript RecordingThis sample shows meeting transcripts and recordings.ViewView toolkit-icon
27Tab DeepLink Pass ValuesMicrosoft Teams sample which displays deeplinks based on the values passed dynamically to the context.View
28Tab Meeting Recording and transcript with auto recordingThis sample shows meeting recording and transcript with auto recording.View
29Offline Support TicketsThis sample app demonstrates a classic CRUD application that functions offline within Microsoft Teams. When the Android device reconnects to the internet, users can sync their data with blob storage.View toolkit-iconView
30Nested App AuthenticationThis sample shows nested app authentication (NAA) is a new protocol that simplifies single sign-on (SSO) for single page applications.ViewView toolkit-icon

Bots samples (using the v4 SDK)

NOTE: Visit the Bot Framework Samples repository to view Microsoft Bot Framework v4 SDK task-focused samples for C#, JavaScript, TypeScript, and Python.

Sample NameDescription.NETJavaScriptPythonJavaApp Manifest
1Teams Conversation Bot quick-startMessaging and conversation event handling hello world.View toolkit-icon
2Teams Conversation Bot SSO quick-startMessaging and conversation event handling hello world with SSO.ViewView toolkit-icon
3Teams Conversation BotMessaging and conversation event handling also includes read receipt event functionality in personal scope.ViewView toolkit-iconViewViewView
4Message ReactionsDemonstrates how to create a simple bot that responds to Message ReactionsViewView toolkit-iconViewView
5Authentication with OAuthPromptAuthentication and basic messaging in Bot Framework v4.ViewView toolkit-iconViewViewView
6Teams File UploadExchanging files with a bot in a one-to-one conversation.ViewView toolkit-iconViewViewView
7Task ModuleDemonstrating how to retrieve a Task Module and values from cards in it, for a Messaging Extension.ViewView toolkit-iconViewViewView
8Start new thread in a channelDemonstrating how to create a new thread in a channel.ViewView toolkit-iconViewViewView
9Universal botsTeams catering bot demonstrating how to use Universal bots in TeamsView
10Sequential workflow adaptive cardsDemonstrating on how to implement sequential flow, user specific view and upto date adaptive cards in bot.ViewView toolkit-iconView
11Channel messages with RSC permissionsDemonstrating on how a bot can receive all channel messages with RSC without @mention.ViewView toolkit-iconView
12Bot with SharePoint file to view in Teams file viewerThis sample demos a bot with capability to upload files to SharePoint site and same files can be viewed in Teams file viewer.ViewView toolkit-icon
13Type ahead search control on Adaptive CardsThis sample shows the feature of type ahead search (static and dynamic) control in Adaptive Cards.ViewView toolkit-iconView
14People picker control in Adaptive CardsThis sample shows the feature of people picker control in Adaptive Cards.ViewView toolkit-iconView
15Proactive Messaging sampleThis sample shows how to save user's conversation reference information to send proactive reminder message using Bots. This uses Teams toolkit for Visual Studio Code to provide scaffolding experience.View toolkit-icon
16Proactive Tab ConversationsUsing a bot to create and store conversations that can be later used inside a sub-entity, tab conversation. This sample includes the details required to proactively message a channel from a bot, set-up and store details for channel tab conversations, and viewing channel conversations from a personal app.View
17Suggested Actions BotThis sample shows the feature where user can send suggested actions using bot.ViewView toolkit-iconView
18Adaptive Card Actions BotThis sample shows the feature where user can send adaptive card with different actions using bot.ViewView toolkit-iconView
19SSO for your Adaptive CardsThis sample code demonstrates how to get enable SSO authentication for your Adaptive Cards Universal Actions in bot.ViewView toolkit-icon
20Different formatting on cardsThis sample feature shows how to use different formatting on cards using bot.ViewView toolkit-icon
21Different types of cards using botThis sample shows the feature where user can interact with different types of cards using bot like Adaptive, hero, list, Office 365 Connector, receipt, sign in, and thumbnail cards and card collections.ViewView toolkit-icon
22User specific views in Adaptive cardsThis sample shows the different ways developers can consume user specific views in Adaptive cards.ViewView
23Bot configuration app with type ahead search control.This sample demonstrates the features of bot configuration and reconfiguration for both teams and group chats, including a type-ahead search (static and dynamic) control on Adaptive Cards.View[View][BotConfigurationApp#nodejs
23Bot configuration app with authThis sample demonstrates the features of bot configuration auth and reconfiguration for both teams and group chats.ViewView
24Tag mention botThis sample app demonstrates the use of tag mention funtionality in teams scope using Bot Framework.ViewView toolkit-icon
25Bot All CardsSample which demonstrates sending different types cards supported in teams using bot.ViewView toolkit-iconView
26Apps in FederatedThis sample app allows users to easily view a list of group members. When a new member is added, their details are promptly displayed.View toolkit-icon
27Requirement Targeting OneWay DependencyMicrosoft M365 RT sample app in Node.js which specify one-way-dependency relationships between app capabilities (using elementRelationshipSet) and functionality using hostMustSupportFunctionalities.View toolkit-icon
28Requirement Targeting Mutual DependencyMicrosoft M365 RT sample app in Node.js which specify mutual-dependency relationships between app capabilities using elementRelationshipSet.View toolkit-icon

Additional samples

Sample NameDescription.NETJavaScript
1Proactive MessagingSample to highlight solutions to two challenges with building proactive messaging apps in Microsoft Teams.View
2Sharepoint List BotThis sample app shows the interaction between teams bot and SharePoint List, Bot saves the specified details in SharePoint List as back-endView
3Teams Virtual AssistantCustomized virtual assistant template to support teams capabilities.View

Messaging Extensions samples (using the v4 SDK)

NOTE: Visit the Bot Framework Samples repository to view Microsoft Bot Framework v4 SDK task-focused samples for C#, JavaScript, TypeScript, and Python.

Sample NameDescription.NETJavaScriptPythonJavaApp Manifest
1Messaging extensions - search quick-startHello world Messaging Extension that accepts search requests and returns results.View toolkit-iconView
2Messaging extensions - searchMessaging Extension that accepts search requests and returns results.ViewView toolkit-iconViewViewView
3Messaging extensions - action quick-startHello world Messaging Extension that accepts parameters and returns a card. Also, how to receive a forwarded message as a parameter in a Messaging Extension.View toolkit-iconView
4Messaging extensions - actionMessaging Extension that accepts parameters and returns a card. Also, how to receive a forwarded message as a parameter in a Messaging Extension.ViewView toolkit-iconViewViewView
5Messaging extensions - auth and configMessaging Extension that has a configuration page, accepts search requests and returns results after the user has signed in.ViewViewView
6Messaging extensions - SSO authMessaging Extension that has a configuration page, accepts search requests and returns results with SSO.ViewView toolkit-icon
7Messaging extensions - action previewDemonstrates how to create a Preview and Edit flow for a Messaging Extension.ViewView toolkit-iconViewViewView
8Link unfurlingMessaging Extension that performs link unfurling.ViewView toolkit-iconViewViewView
9Messaging extension - Adaptive Card based loop componentsDemonstrates how to create Messaging extension with adaptive card-based loop components.ViewView toolkit-iconView
10Messaging Extensions AI - Sentiment AnalysisMessaging Extension with AI capability that performs sentiment analysis (positive/negative/neutral) for messages posted in Microsoft Teams chatViewView toolkit-icon
11Copilot HandoffThis sample implements a Teams message extension that can be used as a plugin for Microsoft Copilot for Microsoft 365. The message extension showcases copilot handoff along with allowings users to query the Northwind DatabaseView toolkit-icon

Additional samples

Sample NameDescription.NETJavaScriptPython
1Link unfurling demo of RedditMessaging Extension with Link Unfurling Samples for Reddit LinksView
2Link unfurling - setup a meetingThis sample illustrates a common scenario where a user shares a link to a resource with a group of users, and they collaborate to review it in a meeting.View

Webhooks and Connectors samples

[!IMPORTANT]

The existing Microsoft 365 (previously called Office 365) connectors across all cloud platforms are nearing deprecation, and the creation of new Microsoft 365 connectors will soon be blocked. For more information on the schedule and how the Workflows app provides a more flexible and secure experience, see retirement of Microsoft 365 connectors within Microsoft Teams.

Sample NameDescriptionC#JavaScript
1ConnectorsSample Office 365 Connector generating notifications to teams channel.ViewView
2Generic connectors sampleSample code for a generic connector that's easy to customize for any system which supports webhooks.View
3Outgoing WebhooksSamples to create "Custom Bots" to be used in Microsoft Teams.ViewView
4Authentication in todo Connector AppThis is a sample app which shows connector authentication and sends notification on task creation.View
5Incoming WebhookThis is a sample used to send card using incoming webhook.ViewView

Graph APIs

Sample NameDescriptionC#JavaScriptApp Manifest
1Resource Specific Consent (RSC)This sample illustrates how you can use Resource Specific Consent (RSC) to call Graph APIs. .ViewView toolkit-iconView
2Graph API Channel Life CycleThis sample illustrates how you can use Graph API Channel Life Cycle to call Graph APIs. .ViewView toolkit-icon
3Graph API Teams App Installation Life CycleThis sample illustrates how you can use Teams App Installation Life Cycle by calling Microsoft Graph APIs. .ViewView toolkit-icon
4Graph API Teams App Catalog Life CycleThis sample illustrates how you programmatically manage lifecycle for your teams App in catalog by calling Microsoft Graph APIs. .ViewView toolkit-iconView
5Graph API Chat Life CycleThis sample illustrates how you can use Teams App Chat Life Cycle by calling Microsoft Graph APIs. .ViewView toolkit-icon
6Activity Feed NotificationMicrosoft Teams sample app for Sending Activity feed notification using Graph API in a Teams Tab.ViewView toolkit-icon
7Proactive installation of App and sending proactive notificationsThis sample illustrates how you can use Proactive installation of app for user and send proactive notification by calling Microsoft Graph APIs.ViewView toolkit-iconView
8Change NotificationThis sample app demonstrates sending change notifications to user presence in Teams based on user presence status.ViewView toolkit-icon
9Graph Pinned MessageThis is a sample application which demonstrates how to pin messages in chat using Graph api.ViewView toolkit-icon
10Graph Bulk MeetingsThis is an sample application which shows how to create Teams meetings in bulk using Graph api.ViewView toolkit-icon
11Graph Meeting NotificationThis is a sample application which demonstrates the use of online meeting subscription and sends you the notifications in chat using bot.ViewView toolkit-icon
12Change Notifications Team/ChannelThis sample application which demonstrates use of Team/Channel subscription that will post notifications when user create/edit/delete team/channel using Graph api.ViewView toolkit-icon
13graph-teams-tagThis is a sample application which demonstrates how to use CRUD Graph operations within tab related to team tags.ViewView toolkit-icon
14Graph API Explorer for RSCResource-specific consent (RSC) is a Microsoft Teams and Microsoft Graph API integration that enables your app to use API endpoints to manage specific teams within an organizationView toolkit-icon

Calls and online meetings bots

Sample NameDescriptionC#
1Calling and Meeting botThis sample app demonstrate how a Bot can create a call, join a meeting and transfer the callView
2Local Media SamplesLocal media samples give the developer direct access to the inbound and outbound media streams.View
3Remote Media SamplesThe Incident Bot sample is a Remote Media sample demonstrating a simple incident process workflow started by a Calling Bot..View

Meetings samples

Sample NameDescriptionC#JavaScriptApp Manifest
1Meetings ExtensibilityMicrosoft Teams meeting extensibility sample: token passingViewView toolkit-icon
2Meetings notificationMicrosoft Teams meeting extensibility sample for interacting with in-meeting notificationsViewView toolkit-icon
3Meetings SidePanelMicrosoft Teams meeting extensibility sample for iteracting with Side Panel in-meetingViewView toolkit-icon
4Details Tab in MeetingsMicrosoft Teams meeting extensibility sample for iteracting with Details Tab in-meetingViewView toolkit-iconView
5Meetings Stage ViewEnable and configure your apps for Teams meetings to use in stage viewViewView toolkit-iconView
6Meeting EventsGet real time meeting eventsViewView toolkit-iconView
7Meeting Recruitment AppSample app showing meeting app experience for interview scenario.ViewView toolkit-iconView
8Meeting Transcript AppThis is a sample application which demonstrates how to get Transcript using Graph API and show it in the task module.ViewView toolkit-icon
9Meeting signing programmatic share to stageDemonstrating the programmatic share to stage feature, by means of a document signing in a meeting.View
10Meeting Live CaptionThis is a sample meeting side panel application which demonstrates how to enable live caption in the meeting and using the CART link how to send caption in live meeting.ViewView toolkit-icon
11Anonymous user supportThis sample app shows anonymous users support in teams meeting apps.ViewView toolkit-icon
12Live coding interview using Shared meeting stageThis sample demos a live coding in a teams meeting stage.ViewView toolkit-icon
13Meeting-TabsThis sample shows app stage view, Mute/Unmute Teams meeting audio call and Side panel.ViewView toolkit-icon
14meetings-attendance-reportThis is a sample application which demonstrates how to get meeting attendance report using Graph API and send it in meeting chat using bot.ViewView toolkit-icon
15meetings-audio-stateThis is an sample tab (side panel) application which shows how to mute/unmute Teams meeting audio using toggle Incoming Client Audio API.View toolkit-icon
16meetings-context-appThis sample shows the contents of meeting tab context object in a meeting tab and using bot's meeting API, meeting participant details and meeting details are sent to user.ViewView toolkit-icon

Actions Preview

Sample NameDescriptionC#JavaScriptApp Manifest
1Actions across Microsoft 365This sample contains preview documentation for (Microsoft 365 extended Teams apps) Actions in Microsoft 365 app(microsoft365.com).View toolkit-icon

Scenario specific samples

Sample NameDescriptionC#JavaScriptApp Manifest
1Teams Dialogs (referred as task modules in TeamsJS v1.x)Sample app showing off the Teams Dialogs(referred as task modules in TeamsJS v1.x), a way to invoke custom code from a bot, a tab, or both!ViewView toolkit-iconView
2AuthenticationSample illustrating seamless inline authentication for Microsoft Teams apps.View
3Complete SamplesSample covering multiple scenarios - dialogs, ME, and facebook auth.ViewView toolkit-icon
4Region Selection AppThis app contains a bot and Tab which is helpful to set the regionViewView
5App LocalizationMicrosoft Teams app localization using Bot and TabViewView toolkit-iconView
6App SSOMicrosoft Teams app SSO for Tab, Bot, ME - search, action, linkunfurlViewView toolkit-iconView
7App Installtion using QR codeThis sample demos app installation using QR code of application's app idViewView toolkit-iconView
8Archive groupchat messagesDemonstrating on how a bot can archive groupchat messages and send it to user as a file.ViewView toolkit-icon
9App check in locationDemonstrating feature where user can checkin with current location and view all previous checkins.ViewView toolkit-iconView
10Message reminder setup through messaging extensionDemonstrating a feature where user can schedule a task from messaging extension action command and get a reminder card at a scheduled timeViewView toolkit-iconView
11Bot daily task reminderThis sample demos a feature where user can schedule a recurring task and get a reminder on the scheduled timeViewView toolkit-iconView
12Tab request approvalDemonstrating a feature where user can raise the requests and manager will be notified about the requests and manager will be redirected to approve/reject the request from received notification.ViewView toolkit-iconView
13Bot request approvalDemonstrating a feature where user can send task request to his manager using universal adaptive card and manager can approve/reject the request.ViewView toolkit-iconView
14Join the Team using QR codeThis sample demos a feature where user can join a team using QR code containing the team's id.ViewView toolkit-iconView
15Activity feed broadcastDemonstrating a feature to notify any message to all members of the organisation using activity feed notification .ViewView toolkit-icon
16App complete authThis sample demos authentication feature in bot,tab and messaging extension.View
17Release ManagementThis is a sample used to send workitem notification using Azure webhook.ViewView
18Link unfurling for 'Share to teams'This sample demos the feature of link unfurling for Share to teams.View toolkit-icon
19App Icon Badging In Microsoft Teams MeetingsThis sample app shows the feature of sending app icon badging in Teams' meetings.ViewView toolkit-icon
20Teams Open AI Embeddings And Redis Search based On Uploaded File Using BotThis Open AI sample app demonstrates the user search functionality using Open AI embeddings and completion APIs.View toolkit-icon
21Combined Tab and Office Add-inDemonstrates using add-in to take action on specific Office documents and using tab to aggregate data about all those specific actions.View toolkit-iconView
22Sharepoint tab request approvalThis sample app demonstrates the usage of SharePoint Embedded for storage in teams.View
23App HR talentThis app simulates connection to a recruiting and talent management system and allows users and teams to create, manage and search positions and candidates.ViewView

Application templates

App NameDescriptionCode
1QBotQBot is a solution designed for classroom teaching scenarios which allows teachers, tutors, and students to intelligently answer each other's questions within the Microsoft Teams collaboration platform.View
2Resource HubResource Hub is a solution designed for all the help you need to use Teams, all in one place.View

Submitting issues

The issue tracker is for issues, in other words, bugs and suggestions. If you have a question, feedback or suggestions, please check our support page.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

<img src="https://pnptelemetry.azurewebsites.net/microsoft-teams-samples/samples/landing-page" />