“Coming together is a beginning, staying together is progress and working together is success.” – Henry Ford.
A team of four wonderful individuals from the Microsoft Learn Student Ambassador programme, from different parts of the world, came together as one to build a solution, with the common goal of building for the community.
The team consists of:
Someleze Diko, a Microsoft Power Platform Enthusiast and developer (#PowerAddict) and a Beta Microsoft Learn Student Ambassador. Diko is a United Nations Peace Ambassador, Media Director at Artpeace, that advocate for peace and education through art and Vice President of Business Technologies at VarsityGenie for developing Power Platform solutions that enhance business processes. Diko is Enthusiastic about upskilling people through the Microsoft Power Platform.
Ansh Mishra, a pre-final year student at Manipal University, a tech-enthusiast and a full-stack developer and his goal is to build a product that can solve some real-world problems and positively impact society.
Aditya Garg, a Beta Microsoft Learn Student Ambassador from Punjabi University Patiala. He loves working in various technical field such as Internet of things, Machine learning and Cloud Computing.
Haimantika Mitra, an electronics graduate, a support engineer and Microsoft by profession and a big-time techie, with a love for low code development.
We as a team built a solution for the Microsoft Learn Educator Ambassador Community. A community consists of people who are there to learn, build and share together. At times, they might have some questions pertaining to the program and other related details. It is possible that due to time zone difference, or work schedule or various other reasons, admins might not always be available to answer questions. What can we do to tackle queries better? We can build a bot that supports the community with answers asked by the educators.
That’s a brief of what our solution looked like.
To begin with, we needed three things:
- A QnA bot
- A database that can be used as our knowledge base
- A Power App from where question and answer pairs can be filled easily to our knowledge base.
The first requirement was a database, that can serve as our knowledge base. It required to be i> updated with new question and answer pair that feeds to the bot ii> only editable by admins. We used a SharePoint list for this, as it is highly secure and can be easily linked with Q nA maker.
Figure 1: SharePoint list that acts as our Knowledge Base
The next thing we focused on, was to create a bot that can use the above formulated SharePoint list as knowledge base. We simply moved to QnA maker, signed in with our M365 activated account and then the bot was ready with few clicks and absolutely zero code.
Figure 2: The QnA maker
Figure 3: The app service
We have the QnA bot and Knowledge base ticked out of our to-do list. Next in line is, how do we link the bot to our knowledge base.
For this, we need the help of Power Automate. The flow had to be formulated in such a way, that it is capable to update the KB with the new pair of question and answers and link it to the bot KB. The trigger to the flow is, whenever a new item is added/deleted from the SharePoint list. We then make use of the tokens to connect it to the QnA maker and update the knowledge base, whenever there is a change in the SharePoint list. The picture below shows the steps need to achieve the above workflow.
Figure 4: The Power Automate flow that links the SharePoint list to the QnA maker
Next, we prepared a Power App, that helps the admin to simply add new QnA pairs, which gets reflected to the knowledge base .For this, we incorporated the above flow.
The final step required for us is to integrate the bot with MS Teams. The solution provided by us is a detailed flow, that makes the bot pop us as adaptive card when the admin is mentioned. Educators ask their question, and the answer is returned from the QnA maker knowledge base. We send an additional poll, to ask if their question was answered. If not, we send them another adaptive card that records the new question in our SharePoint list and sends an email to the admin with the question link.
The picture shows the flow, where the trigger is, when an admin is mentioned. After that an adaptive card pops up, that takes the question from the user and returns back with an answer from the knowledge base. Then it sends another adaptive card in the chat, which confirms if the educator’s question has been answered. If yes, it sends a thank you message, if not, it sends another adaptive card that stores the response (the unanswered question) in the SharePoint list and mails the admin with the link, for them to answer.
Working of the above flow:
Figure 5: The adaptive card that captures the response
Figure 6: Affirmation of the received response
Figure 7: The answer returned by the QnA maker
Figure 8: The adaptive card that asks if the user's query has been resolved
That marks the end of our solution, and it wouldn’t have been possible to complete it without the help of the team-mates. Through this, we learnt that a solution that is not found on the internet can be achieved with teamwork. It also highlights how low-code/no-code is the future and one can build perfectly scalable solutions with it.
This project acted as a learning curve, as we delved deeper into Azure and Power Platform and found out ways by which we can connect various Microsoft services. Solving a real-life problem gave us an experience of the wonders of technology can perform, how to work in production environments and mostly importantly we learned how to work in a team, keeping everyone’s views, time-constraint, time zone difference into consideration. To conclude, it was an amazing learning experience and the guidance received from the Microsoft team helped us improve our solution and think out of the box. The learnings that we carry ahead will not only help us in our career, but also is a testimony of our skills.
Some additional resources that helped us: