Inspiration
One of our healthcare customers was looking to move pager usage to Microsoft Teams. Not urgent pager usage, but 'regular' pager usage. The tags functionality in Microsoft Teams is a good start, but its biggest weakness is that you can't send a message to another team's tags. So if you're a doctor in the Accident & Emergency (A&E) team you can't @mention the 'cardiologist_oncall' tag in the Cardiology team. And that's the problem we set out to solve!
Along the way, we picked up some additional functionality, all led by clinical input.
Beep is in pilot at one hospital now with a view to rolling it out across the care board (as Beep is multi-tenanted and supports inter-tenant Beeping)
What it does
'Beep lets you @mention another team's tags. Why is that useful? Imagine you're a member of the front end engineering team and you need to contact the @oncall engineer in the back end engineering team. But you're not in the back end engineering team, so you can't @mention their tag. That's where Beep comes in.
Imagine you are in the retail store team of a large multinational and you need to get advice from the regional duty manager. You're not in that team and you don't know who the right person is on a Saturday afternoon. If you were in the same team you could @mention the 'dutymanager' tag, but you're not. That's the problem that Beep solves.
Our most useful use case is in clinical environments. One team looking for a specialist in another team. Beep does this really well. It's Microsoft Teams native, leveraging SSO, compose extensions, bots, adaptive cards and personal tabs. And so it provides all the security and audit capabilities of Teams whilst addressing a need that 'organisational' level tags or shared channels won't.
How we built it
Technologies used:
- Microsoft Graph API.
- Teams Toolkit for Visual Studio Code.
- Adaptive cards for card creation.
- Node.js Bot Framework for bots and messaging extensions.
- Angular Framework for building front-end of Personal Tabs and Compose application.
- HTML/SCSS and Angular Material for designing.
- Azure App Services to host all the BEEP services.
Features Beep hold:
Our application is fully based on Microsoft Teams. We have used several services of Microsoft to build the application.
For authentication we have used Azure Active Directory Single Sign-On SSO. This gives us the power to authenticate users and have secure access to web API's using tokens from the MS Identity platform.
Our application consists of Personal Tab (we are using it as a dashboard to display data user in tabular form), Message Extension (which is called a compose application), Task Module on Adaptive Cards (which is called as comments application).
We are using Microsoft Azure for the deployment of services:
- Resource Group, is used to have all the App Services, Bot Services and Key Vault in a single place.
- App Services, is used to host the application and allow us to build APIs and makes infrastructure managing super simple
- Key Vault, helps us to enhance data protection and compliance. Along with that, it safeguards cryptographic keys and other secrets used by cloud apps and services
- AAD, popularly known as Azure Active Directory, solves the issue of sign-in and access resources. It is basically an identity and access management service.
- Azure Database for MySQL
Challenges we ran into
- Beep in itself is a challenge, as the aim of Beep is to allow users sitting in one team to send messages to a completely different team they are not members of. Understanding the logic behind sending a proactive message in channels using a universal cloud adapter. So, we store all the data references in our database of the team at the time of app installation.
- Next, the main challenge was what if the user add a reply to the card and how we will showcase it on the other side of the team. So, after the deep research, we resolved it by using the adapter again
adapter.continueConversationAsync. To fetch the replies we are using certain permissions.
What's next for Beep App
In collaboration with our pilot customer we are investigating:
- Escalations- repeat Beeps to the same tag, new Beeps to a different tag in the same team, and new Beep to tags in another team.
- Assignment- assigning existing Beeps to another tag or another team.
- Whitelisting of tags on a per team level-so a team can make some tags available in Beep, but not others
- Attachments- 1 photo vs. 1,000 words.
- Inter tenant Beeps- For inter-hospital communications where the hospitals are on different tenants.
- Portal for reporting, especially audit trails




Log in or sign up for Devpost to join the conversation.