Building Apps for Microsoft Teams was the topic of my talk at CollabDays Oslo 2024 on Saturday, and I felt the content deserved a place on the blog as well, so here it is!
In this post, we’ll explore the exciting world of Microsoft Teams app development, showcasing how developers can unlock new possibilities by creating custom apps to extend Teams’ functionality.
The goal of this blog is to provide you with a roadmap to Teams app development, offering a clear starting point from which you can chart your own course. Just as there are many roads to Rome, there are also many paths to building apps for Teams.
Table of contents
Introduction
01 What types of extensibility does MS Teams offer?
02 Why should we spend time building apps for Teams?
03 How do we go about doing that?
Summary
Resources
Introduction
Microsoft Teams app development opens up a world of possibilities for enhancing collaboration and productivity within the Teams platform. By building custom apps you can tailor usersTeams experience to fit unique business needs.
- Microsoft Graph Magic: Simplifying User Removal from teams in Microsoft Teams
- How to leverage teams-js in your Teams app; Working with user context and SharePoint site context
- My 3 key takeaways from the Teams Apps Dev Accelerator course
- Use your coding skills to extend Microsoft Teams
- A collection of resources for Microsoft 365 developers
- Testing Teams apps made easier with the new developer portal
- Enable side loading in Teams
Teams apps allow developers to bring their services directly into the flow of work, making it easier for users to access critical tools without leaving Teams. With a rich set of APIs, SDKs, and tools provided by Microsoft, developers can quickly create, test, and deploy apps to transform how teams work together.
This is a huge topic, and maybe I’ll do a whole blogpost series at some point, as for now I’ve decided to divide it it into 3 main areas: What, Why and how.
01 What types of extensibility does MS Teams offer?

Tabs / apps
Tabs and apps in Teams are essentially web apps displayed within the Teams interface, making them incredibly flexible. This means your creativity is the only real limitation (within reason!). You can design a personalized experience tailored to the current user, offering content or tools specific to their role or needs. Alternatively, you can create shared experiences that foster collaboration and bring teams together in meaningful ways.
Bots
Bots in Teams make it easy for users to interact with a web service through text or adaptive cards. They can be used in channels, group chats, or 1:1 conversations with the bot. Typically, interactions are initiated by the user tagging the bot (@bot), but it’s also possible to create notification bots that proactively send messages—though these should be used cautiously to avoid overwhelming users.
Messaging Extensions
Messaging extensions in Teams come in three main types, each designed to enhance collaboration. Link unfurling provides a content preview when you paste a URL into a chat or channel, offering quick insights without leaving the conversation. Action commands open a modal window where users can input or view information, enabling interactive workflows. Search commands allow users to search external systems for information and embed the results directly into the conversation, making it easy to share and collaborate on relevant content.
Meeting apps*
02 Why should we spend time building apps for Teams?
The answer lies in enhancing collaboration and improving workflows. Custom apps empower users by bringing the right information directly into Teams, eliminating the need to switch between multiple tools and reducing context shifting. They allow users to manage daily tasks seamlessly from a single, familiar platform, boosting efficiency and focus. Additionally, Teams apps can extend and enhance the platform’s native functionality, enabling tailored solutions that meet specific organizational needs and drive more effective teamwork.
Use Cases
Point Taken Knowledgebase

Knowledge sharing is especially important in consultant businesses, where expertise and experience are key assets. A centralized knowledge base can significantly enhance collaboration and efficiency by serving as an internal app for sharing experiences, best practices, and insights across teams.
That’s why we developed an app for all employees, designed to provide easy access to reusable resources like scripts and code, a “Project Solution Gallery” for sharing project insights, and a calendar for tracking internal events. The app also includes a unique “person search” feature, where you don’t search by name but instead filter by subject matter expertise, helping you quickly connect with the right person who can assist in a specific area.
Other usecases
Unfortunately, I can’t share images from our clients’ solutions, but I can provide examples of challenges that have been effectively addressed and improved using Teams apps.
- Enhancing search in Teams
- One problem we tackled with a Teams app was making it easier to find and share teams. The app lets you search for available teams, whether they’re private or open, so you can quickly find the right one to join. It also shows who owns the team, so you know exactly who to reach out to. Plus, there’s a super handy feature to copy and share team URLs, making it easy to get others connected.
- Easy removal of external users from multiple teams
- We built a Teams app designed to help managers manage team memberships while respecting GDPR requirements. The app lets managers search for an external user by their email address and generates a list of teams that both the manager and the user are members of. From there, the manager can easily select the specific team from which the user should be removed
- I’ve previoslut written a blogpost about using MS Graph to simplify removing users from teams
- Project Master Document register
- For another client we build an app that is automatically added to every “project team” that is provisioned. The app is streamlining document management and collaboration. This tab allows users to register documents even before they are created, ensuring better tracking and organization from the start. It also enables sending documents through a multi-step approval flow, making the review process smoother and more efficient. Once finalized, multiple documents can be packaged together and sent to the client simplifying the delivery process.
03 How do we go about doing that?
Lets look at the infrastructure first. Teams apps are just web apps (or web services – if its bots/messaging extensions), so the list of things your need for a ‘teams app’ vs ‘any other web app’ is quite short.

You need
- a Microsoft 365 Tenant – and teams client.
- An App Registration inside Entra ID – this is used to manage your apps permissions.
- And if your are creating a bot/messaging extension – you also need to register it in Azure Bot Service.
- Web app / Web Service – built with the tech stack of your selection
- Somewhere to hos your app/service.
You can host your app/service in Azure – but you don’t have to.

Summary
Resources
- Microsoft Developer Program (its free)
- Microsoft Teams Developer documentation
- MS Teams Toolkit Overview
- Teams Toolkit CLI
- Teams apps with SPfx
- Teams apps samples
- Build apps for Teams meetings and calls
- PnP Powershell
- Deploy your SPfx solution using PnP Powershell (blogpost)
- Teams JavaScript Client Library
- How to leverage teams-js in your Teams app; Working with user context and SharePoint site context (blogpost)
- A collection of resources for Microsoft 365 Developers (blogpost)
- Enable sideloading of apps in Microsoft Teams (blogpost)
If you are interested in Microsoft 365 Development you might also like my other blogposts in this category.
Also, if you have any feedback or questions, please let me know in the comments below. 🙂
Thank you for reading, and happy coding!
/Eli
If you want to support my content you can
