Microsoft Teams is a leading workspace for real-time collaboration, communication, virtual meetings and file sharing for your entire organisation. Collaboration and communication has become critical for every business in recent years and organisations are increasingly using apps to integrate with vital services, access their data on the go and keep people connected whenever they need.
In this blog, Ejaz Hussain, a Developer here at Content+Cloud, will explore some of the benefits and challenges of building apps for Teams, as well as demonstrating how to build a Microsoft Teams app using Teams’ outgoing webhook capabilities.
Why build a custom app for Microsoft Teams?
Having launched in 2017, Microsoft Teams now attracts 280 million monthly active users, and has seen a surge in third-party and custom-designed apps. There are many ways of extending and improving Teams’ functionality, and that shows no sign of slowing with the the newest evolution of Teams which promises to operate faster and with greater flexibility.
Teams apps can help you solve various business problems and scenarios by bringing key information, common tools and trusted processes to where people increasingly gather, learn and work.
Microsoft Teams includes native apps from Microsoft as well as third-party providers. However, there are times when your organisation’s needs may exceed Teams’ existing capabilities.
When faced with this scenario, you can choose between building apps for Microsoft Teams or converting your existing business app into one which integrates with Teams, Outlook, SharePoint, OneDrive and other Microsoft 365 applications. Additionally, Teams can be integrated with third-party apps and add-ins that enhance productivity and collaboration.
Benefits of building apps for Microsoft Teams
Although using a pre-existing app may be a faster solution, creating a custom app for Microsoft Teams, specifically designed to serve your needs, can often be a more beneficial long-term solution. Bringing these bespoke tools to a familiar and reliable space improves efficiency and boosts your productivity by taking your processes directly to where your people spend most of their time.
Some of your most common and relied-upon functions and activities can be optimised by bespoke apps:
- Greater communication and collaboration: engage in important conversations, pull information from other systems and make decisions through shared decision-making.
- More engaging social interactions: relationships are the foundation of a successful and happy workplace. Create social-focused apps to extend your company’s culture beyond the office and build communities for your people.
- Streamlined business processes: performing tasks such as submitting helpdesk requests, searching recently used or modified documents and retrieving upcoming planner tasks across Microsoft 365 plans can become simpler and less disruptive to work time when utilising bespoke apps.
- Specialised app integrations: you can provide a more natural and seamless user experience by integrating your app with Teams features such as tabs, bots and messaging extensions. You can leverage the context and data of Teams to enhance your existing app’s functionality and make it more attractive and engaging to a wider potential user base by personalising its user interface.
- User-specific engagement with tabs and bots: your users can focus on their own tasks or view activities important to them with one-to-one conversational chat bots and personal apps. Tabs are scoped to a single user and can be pinned for easy access, while a personal app can be designed to offer a bird’s eye view of a user’s current responsibilities.
Capabilities of custom apps for Microsoft Teams
Building apps for Microsoft Teams offers multiple ways in which you can extend standard app functionality for it to integrate in a collaborative environment.
Here is a selection of ways that your custom app for Microsoft Teams can improve your workflow:
- Tabs: webpages that are Teams-aware and can be added part of a team channel, group chat or personal app.
- Bots: apps that automate simple and repetitive tasks performed by users.
- Messaging extensions: features that enable users to search and share external information in conversation, such as sending a card or creating a help ticket based on the content of a channel post. For example, users can look up order or customer information in an external system and share it in a conversation without leaving Teams.
- Personal apps: these allow users to focus on tasks and view activities important to them. The content in a personal app is only relevant to individual users.
- Webhooks and connectors: these allow users to subscribe to a channel for notifications and messages from an external system, such as your APIs. There are three different types of webhooks:
- Outgoing webhooks (for sending a message from Teams to an external system)
- Incoming webhooks (for sending a message from an external system to Teams)
- Connectors (packaged webhooks by you, Microsoft or third parties)
- Adaptive Cards: actionable snippets of content that simplify the sharing of structured data in conversations in a consistent way across all devices and applications. An example use case is gathering information through input forms.
- Graph API: this provides access to data and insights stored in Microsoft 365 as well as information about teams, channels, users, and messages. Example use cases include showing upcoming meetings or retrieving information about people in your organisation or the files you’ve been working on.
Case study: building a custom app for Microsot Teams collaboration for a not-for-profit client
You can communicate and collaborate more effectively with your team by pulling information in from other systems, facilitating conversations and letting users take action all within Teams.
We’ve been helping a client integrate a SharePoint Online-based intranet with Microsoft Teams to make it easier for its users to access and share content and increase collaboration.
In this instance, a custom Teams app was required. Here’s what they needed – and how we solved their problem.
The challenge: losing time and productivity through lack of Team integration
Microsoft Teams platform is the client’s primary tool for real-time communication and collaboration in the organisation. They have a SharePoint based intranet running on the Microsoft 365 platform.
The client’s biggest challenge was to enable users to not only collaborate in existing content and workflows, but also to gather and share information from external systems without switching between platforms. Before implementing our solution, users had to leave Microsoft Teams to access information from the SharePoint Online-based intranet site.
It was the client’s requirement that Microsoft Teams and SharePoint Online be seamlessly integrated to ensure that users could access relevant intranet pages directly within the Microsoft Teams App as well as navigate to SharePoint Online pages for additional information.
The solution: turning Microsoft Teams into a useful space for collaboration through webhooks
Following a thorough analysis of the current challenge and an in-depth discussion with the client, we recommended a solution to provide a better integration between Microsoft Teams and the client’s intranet.
In order to integrate the SharePoint intranet content with the Microsoft Teams platform, we offered a solution utilising Microsoft Teams’ Outgoing Webhooks capability. An Outgoing Webhook is a way to integrate Microsoft Teams with external apps. It can respond with rich messages that include cards and images and does not require creating bots through the Microsoft Bot Framework.
The Outgoing Webhook feature in Microsoft Teams lets you integrate and communicate easily with your external apps, enabling you to provide rich text messages, images and cards to your users.
As a result of this integration, users will be able to share content with their teams from the intranet, stay focused and engage in necessary conversations without having to leave Microsoft Teams.
Solution Architecture – how this works technically
It all works seamlessly for the user – but what’s happening in the background?
- A user @mentions the Outgoing Webhook in the compose section of the Microsoft Teams and send a query.
- Microsoft Teams sends a POST request to an Azure function working as a web service to accept an incoming POST request.
- Web service validate the message using security token provided by the Microsoft Teams.
- If the messages is valid, Web service pass the query to SharePoint Online Search API to bring back relevant SharePoint Pages.
- Web service converts API results into rich adaptive cards and sends the Adaptive card back to Teams client.
The process is captured in this flowchart:
Extended collaboration: webhooks, bots, or a custom app for Microsoft Teams
Your users’ collaboration and productivity can be enhanced by creating custom apps in Microsoft Teams and providing them with a tailored experience based on their preferences and needs. Additionally, Microsoft Teams’ existing ability to extend its functionality means that the possibilities for collaboration within your organisation are vast.
The platform has a wide range of features, integrations and customisations that make it easy to collaborate, coordinate tasks, share files, access data and create innovative solutions.