We have been building SharePoint solutions for small businesses to large enterprises in Europe since 2004. Here we appreciated the metadata concept for classifying files and items. But now we sorely miss this feature in teams channels to classify conversations. So the idea of TagTeam was born. Furthermore we found out that:
We needed something like this for ourselves to better structure our knowledge channels. We didn't want to create a separate channel for each topic, as we would need more than 20 channels for Microsoft Office 365 knowledge alone (such as SharePoint, Teams, Exchange, etc.). In the end, we would have a barely manageable situation as shown in the picture. Hair-raising - as also stated as channel nightmare by Tracy van der Schyff
We also found a uservoice for a requested tagging feature that has been gathering dust in the backlog since early 2020.
So we decided to develop such a feature ourselves to help us and Teams users worldwide until Microsoft offers it by default.
What it does
Tag messages in your Teams channels with @TagTeam on a specific topic and quickly find them in the Tagged Messages tab.
How we built it
We built a bot and a messaging extension that allows users to tag their messages with some previously created team or channel tags. A card with the deep-link to the Tagged Messages tab is added to the message. As soon as a user clicks on the card, they will be taken to the Tagged Messages tab, where they will see all posts tagged with this tag. In the settings dialog of the message extension and the tab, the user can create tags for his team or channel. The tags are stored in MongoDB. In the Tagged Messages tab, you can filter by tags and authors or do a full-text search to find the messages you want. When you click on the message, you will be taken to the conversation of the respective Teams channel to see all additional information such as comments and reactions.
Challenges we ran into
- Currently, the Teams Graph API for channel messages is very limited. We could only use /messages or /messages/delta, but OData query parameters are not supported! Also, the search is currently not supporting channel messages. So we had to find workarounds with /messages/delta to solve performance and throttling issues until Microsoft will extend the Graph API.
- The manifest for the compose message currently has no support for scopes like teams, groups, or private channels. As we can only query channel messages with the Graph API and don't want to store private messages of our users in our database we would love to include the possibility to display our message extension in private and group chats (but this is not possible yet).
- We underestimated the whole submission process to get our app into the store (e.g. content, screenshots, publisher attestation, ...).
Accomplishments that we are proud of
Even if the app submission validation proccess is somewhat difficult, we learned a lot and look forward to applying this knowledge to our next projects and products.
What we learned
In any case, we have learned to study the checklist for AppStore submissions before development!
What's next for TagTeam
We want to connect TagTeam with the SharePoint Taxonomy to display associated files alongside conversations.