(This is version 1, more of a “brain dump” so that I don’t forget what steps I’ve taken. I’ll revise this post with more detail about each step when I’m back from my travels. You may find there’s enough signposting for you to get started already.)

It’s just gone 5:00am where I am in Seattle, WA. I fly home later tonight after soaking up a week with thousands of other members of Microsoft’s technical community at an internal event called TechReady. Needless to say, the content shared is highly confidential but is motivating, inspirational and truly awesome. It’s as a result of this shot of technical excitement that I decided to build a Q&A bot. What’s even better? I did it in less than an hour with zero code and so can you! Read on to find out how…

Disclaimer

I am not a proficient developer. In fact, I find code scary. I can be dangerous with HTML, CSS, python, and I’ve even been known to toy with VisualBASIC and C# in the past but one thing I don’t call myself is a developer. This is important to note because when I first looked at this I naturally assumed it would be technically complex, time-consuming, and require a PhD in machine learning. As you’ll see, it doesn’t.

I’m expecting to update this post several times with more context and detail. When I built the Bot I didn’t have writing a blog post in mind and therefore didn’t write out the steps or take screenshots. Since a few people have asked how I did it, I’m writing it up. There may be gaps, and if there are please let me know in the comments.

Lastly, the Bot I’ve built is rudimentary. It’s awesome and fully working, but to take it to the next level I can see the need to start adding some custom code and development. I provide what I did here purely “as-is” to help you get started.

Introducing jamesbmarshallbot

I needed a purpose to build a Bot, and since I’m often asked fairly simple and common questions and am often setting an “OOF” (Out of Office) response I thought that a “virtual James” that people could ask questions of would be a great proof of concept and might even help keep my inbox manageable whilst I’m out with customers and partners.

Ways to interact

Right now you can speak to the Bot in three main ways:

Skype
as a contact you chat within the client.
Microsoft Teams
as a bot you chat with via the web or desktop app.
Web chat
a simple web portal chat interface.

It’s actually very simple to support channels like FaceBook Messenger, Slack, Telegram and even services like Twilio but I haven’t activated those for now.

You will need…

Actually, you won’t need very much but here’s a list that might help:

An Azure subscription.
Don’t worry if you don’t have one, you can get 150 of free credit by signing up for a trial
.
Questions.
This isn’t strictly required, but if you have a bunch of URLs to FAQ pages it’s very easy to train the Bot on those questions automatically. As you’ll see, you can add your own but a pre-existing bank of “question and answer pairs” can save some time.
Refreshments.
Diet Coke is my preference, but grab yourself a drink.
High-level Steps

I will cover these steps in more details as I update this post. In summary, the steps you’re going to take are:

Create the initial Q&A bot
using QnA Maker
.
Train the Bot
with pre-existing FAQs and customer questions, and we’ll test to make sure they’re being answered correctly.
Create a Bot using the Azure Bot Service
(in preview), to which we’ll hook up the Q&A Bot we just made.
Configure the Azure Bot Service and Q&A Bot to work together
, it’s a few clicks and some copy-and-paste.
Configure Channels
for the Bot to be interacted with.
Start chatting!
[Optional] Create an Azure Web App
to host a simple page with the web chat embedded in it.

At a high level, it’s “as simple as that”. You canchat to mine if you like! Some questions to ask:

“How are you”?
“What is CSP?”
“Are you single?”

I’ve built mine to have learned from the CSP FAQ
. In theory, any of the questions there should get an answer from the Bot. My next task is to go through and re-train the Bot to understand more “natural” questioning, and of course, add more question-and-answer pairs to make it even more useful!

Further Reading

It goes without saying that I’m not a genius. I did reference some online materials to help put this all together:

Create Bot from FAQ page with no coding
a little light on detail, but the last step helped me make the bridge between QnA Maker and Azure Bot Service.