Creating a Q&A Bot for Microsoft Teams


Creating a Q&A Bot for Microsoft Teams just got easier! Microsoft has released a Q&A Bot on GitHub and its pretty cool, plus you don’t need any developer skills (which I don’t) to get this working.

Inspired by the presentation given by Dr. David Kellerman (lecturer in the school of engineering at the University of New South Wales) at Microsoft Inspire this year, I’ve been playing around with bots a little lately. I am by no means an expert on this stuff, but there is a lot than can be achieved almost of the box with the Azure Bot Service and QnA Maker – a service that couples cognitive services with the ability to create question and answer pairs for your bot to consume. When a user asks the bot a question the answers are pulled (and managed) from QnA Maker. Here’s an example of a Question and Answer pair:


The installation documentation is pretty good so i wont cover that here, instead I will walk through what the bot can do and how you might use it. If you have any questions about the installation process, please feel free to ask below.

Interacting with the bot

Once you have followed the above mentioned installation guide you can start interacting with the bot in Teams (it wont respond using the Azure test interface).

In Microsoft Teams users can search for the bot and start a chat:

Here I ask the bot a question about Channels:

I have a couple of options when I receive a response. The first allows me to route my question to an expert if I didn’t find what I was looking for – “Ask an Expert”:

The “Ask an expert” question is then routed to a defined Team/Channel where the “experts” can action them. Here’s whats posted to the ‘Experts’:

The expert can manage the status by assigning the question to themselves or closing it:

Likewise, users can also submit feedback on the answers they receive so that the experts can improve the Q&A knowledge base:

Here’s what the experts see in this case:

Feedback in this bot is manually managed. In Dr Kellerman’s bot, feedback is actually automatically processed and the Q&A knowledge base it automatically improved. Q&A results are also made available to everyone so that questions asked by other students can be seen. This is really cool because it creates a self maintaining knowledge base. Hopefully the open source bot will improve along these lines in the future as such features are way above my pay grade to implement!

Another thing to note is that this bot doesn’t support images and videos in line which I think would be useful. I’m trying to find a way to add this capability. I’ve got a little way there and will share the modifications once completed.

What could you use the bot for?

We’ll in my case I plan to deploy it at my company and build a knowledge base that answers common questions about Teams and Office 365 services. This will help answer peoples questions quickly and easily and route anything the bot doesn’t know to a real person.

I really like what Dr Kellerman has done and with a little imagination and some development skill there are endless possibilities. For example I’d also like to create a bot that could push training videos to users to help with adoption of new or useful features.



    • ish 🙂 I have a working example, but I haven’t quite had the time to push it in to our production QnA bot. Are you a dev? If so I can share the code and you could pull out the relevant bits.

  1. Hi there, is this something you have published somewhere? Or have a github project for? I’m looking for something pretty much exactly like this, so if there’s a resource available for download or a starting code-base I can play with and get my team using that would be fantastic.

  2. I’ve been going through the steps in the install document you refer to in your article but at Step 2, Deploy to your Azure subscription I get a validation error.

    It seems to be based on the location. I get the error message, ‘Validation failed for a resource – This region has quota of 0 instances for your subscription. Try selecting different region or SKU’. I was wondering if you came across any issues when creating your custom deployment and what did you set both the location fields to?


Please enter your comment!
Please enter your name here