I have long been a Google and Android fan and thus whenever a new device or software product comes out, I am quick to be an early adopter of it. The reason why is because I believe Google made a correct assumption a long time ago that as long as it could collect as much data about as a user as possible, it would be able to create amazing products and services that use that data in ways that make us go WOW! The latest of these trends is their push towards chatbots, voice assistants, and home and work automation. My girlfriend recently bought me a Google Home for my birthday and so these trends have been fresh on my mind. [Side Note: I highly recommend the Google Home but more on that in another post].
Conversational UIs are becoming more and more prevalent in today's society due to chatbots, messaging applications, Internet of Things devices such as the Google Home and Amazon Echo. Conversational UIs are an important medium for conveying information because they can provide rich media answers, automated information sharing, and contextual actions to internal and external systems that we use every day. Conversational UIs can also provide new engagement methodologies for interacting with users and potential customers. Lastly, because conversations are how we as humans gather, process, and organize information about the world, conversational UIs are more intuitive user experiences.
Because I believe that chatbots and voice-activated UIs are a trend that is here to stay, I decided it would be fun to try and build one. I wanted this to work both as a chat both to interact with on the various messaging services Facebook Messenger, Slack, Kik, etc AND because I wanted to eventually parlay it into a chatbot I could use on my Google Home at some point, I decided to create it using Google's framework and tools. The biggest tool in this arsenal was Google's recent acquisition API.AI. API.AI provides an easy-to-use framework to define user intents, custom responses and actions, and integrations into internal and external entities, apps and services.
So what did I build this bot to do and what steps did I take to do it? I wanted the chatbot to be something related to this website, so I made it a chatbot about me and my work. It will respond as me and answer questions about who I am, my portfolio of work, how I help companies, the work I do, etc.
First, I created my new chatbot agent within the API.AI dashboard interface.
On this screen, you need to name your bot, write a description for the chatbot, make it private or open to the public, choose a language and time zone. The last important thing to note is that they have provided some great sample data you can use to get your bot started. They have samples for news, pizza delivery, profiles, etc. I chose the profile chatbot example to help me get started on this bot.
Secondly, you need to define your intents. Intents are basically how you anticipate a user will interact with your bot and the responses the bot should give in return. This is where you are defining the schema that will help you set up the architecture of your chatbot's conversational UI.
Here you can see the intents that I have setup for this chatbot. The 'about' intent contains questions such as who are you and what is your name? The 'company' intent allows a user to ask what I can do for their company. The 'hobby' intent allows a user to ask about my hobbies and fun facts about me. The 'portfolio' allows the user to ask about my portfolio, resume and body of work. I think you get the picture!
You can see, when I click into one of these intents (portfolio), how this logic is programmed into the chatbot.
Once the infrastructure was setup, I was ready to publish my new chatbot and embed it into this blog for everyone to play with! API.AI allows you to publish your chatbot with a one-click integration; they then gave me the embed code for my blog.
Below is the chatbot I built. I welcome your feedback on the chatbot! What is your favorite chatbot experience? Do you think chatbots will become an important conversational UI in the future? What functionality do you want to see from chatbots?