Humanizing Technology Through Chatbots
An exploration into building engaging, delightful Conversational User Interfaces for real humans.
[IMAGE] HEADER IMAGE OF PERSON INTERACTING WITH BOT
Are you a Designer, Strategist, Product Manager, or anything in between interested in learning about how to integrate a chatbot into a user’s life? Great, you’re at the right place!
This article is aimed at providing a general understanding of Conversational User Interfaces (CUIs) to equip you with a background to deploy your own experimental pilot within the field. While this article is not for those looking to launch big projects and/or programs related to chatbots, it is for those looking to learn about bot basics, what is necessary to build a bot, and the hurdles that may come with doing so in 2018.
Chatbots are nothing more than a trendy gimmick.
It didn’t take long for this thought to leave my head after researching into the topic. Like many other things, I learned that bots are what you make of them and the more that I delved, the more I realized their potential.
For my final assignment as Design Intern at DARE Amsterdam, I was tasked with building a functional, proof-of-concept chatbot. I would be working with Marion Mulder, an Amsterdam-based Digital Product Owner fascinated with CUIs and who had already given countless talks and keynotes about the subject.
Our first step was thinking of a valuable purpose for the chatbot to fill. We picked Eurovision as the topic since it wasn’t directly tied to any brand and because Marion knew a group of fans who would be interested in trying it out. Additionally, we both felt that we could craft a funny, enjoyable, and entertaining personality to reflect the contest. After familiarizing myself with Eurovision and the culture behind it (sorry, it’s just not as big in the States), I moved onto absorbing as much information as I could about designing a chatbot.
The process was unclear to me at first, and having read through dozens of articles and Amir Shevat’s book, “Designing Bots: Creating Conversational Experiences,” it was still foggy. However, one thought became clear: the process of designing chatbots is an ever-changing one which continues to adapt based on the designer, the tools available, and the intended platform.
I’ve broken down my learnings into several sections:
- A Brief History
- Collecting Your Ingredients
- Building Your Foundation: Purpose, Persona, & Paths
- Bringing It To Life
- Testing & Revising
1. A Brief History
While chatbots are one of the trendiest topics at the moment, they’re far from new. To understand the present and future of chatbots, we must first revisit the past.
[IMAGE] TIMELINE OF CUI
From the earliest days of computers, humans have had to work to understand how to use them. Moving forward, we’ve been trying to make computers as human-centric as possible so that anyone could use them without practically having to learn a new language.
While the world’s first computer was invented in the 1940s, bots specifically can be traced back to the 50s when Alan Turing developed the Turing Test as a way to see if computers could outsmart humans. A little over a decade later (in 1964), Turing, along with Joseph Weizenbaum, developed Eliza, a psycho-therapist bot. Although the bot sounded robotic, it still managed to invoke strong emotional reactions from its users and in only 200 lines of code. This impressive feat paved the way for all modern-day chatbots.
Eliza helped in getting us to where we are today but she was only a piece of a much larger puzzle. It wasn’t until the 80s that big companies like Apple and Microsoft introduced GUI’s, revolutionizing computers so that the average Joe could use one without touching an intimidating command line.
While this was a great step forward, technology has improved significantly since then and it’s because of this that artificial intelligence and chatbots are now gaining so much traction. Every day we’re approaching a more connected world, one in which computers are increasingly as easy as, or in some cases even easier, than working with a human.
2. Collecting Your Ingredients
The technology behind chatbots are changing daily, therefore so is the skillset needed to craft one. At this point there’s no shortage when it comes to picking a platform for your bot to run on, but this will largely affect what skillset you’ll need.
Regardless of the backend, there are a couple key characteristics necessary for designing any bot:
- A Logical Mindset
When working with some platforms, as soon as you want to make your bot more advanced, you’re going to need to be able to map out `if`/`then`statements as workarounds for making things as easy as possible for the user. This will be expanded on in the Bringing It To Life section.
- A User Experience Design Approach
Thinking in terms of your bot’s user experience is essential to the process. In any use case, attention should be given to how you phrase questions (priming), how you time messages, how you onboard users, etc. Otherwise users may not understand how to use your bot which will result in abandonment.
- Basic Visual Design Knowledge
It’s good to keep in mind that “conventional design” takes an alternative form when working with chatbots. Designing extends beyond creating a memorable bot profile picture and into many other forms (expanded on in the next section).
- Patience (A Lot of It)
The technology for building a chatbot isn’t quite there and that becomes obvious as soon as you begin working with any of the tools to make one. In fact, most chatbots today fake artificial intelligence. Depending on the platform, it’s not unlikely that small bugs will pop-up here and there. Sometimes they’ll automatically fix themselves and sometime they won’t.
[IMAGE] 4 SYMBOLS OF NEEDED CHARACTERISTICS
3. Building Your Foundation: Purpose, Persona, & Paths
Step 1) Defining Purpose
The first step in creating a chatbot is understanding your users and determining your goal. This means exercising that UX mindset we just spoke about. To do this, start by asking yourself these 3 questions:
- What will the bot’s goal and core functionality be?
- Who will be using your bot?
- How will they interact with it? What else could they be doing when interacting with it? How will the bot integrate into their life?
Keep in mind that the number one reason for bot abandonment is if the bot lacks a clear purpose.
If you’re sure that your bot has a clear purpose and a set of tasks it will achieve, it’s time to analyze our answers and translate them into the foundations for our chatbot. For example, this is how I did so with the Eurovision bot:
- Bot Goal: Provide something in fan’s pockets to test trivia questions, or if they’re talking to others, have a genie in their pockets to fact check or challenge each other.
- Audience: Eurovision fans
- Supported Devices: Desktop & mobile, with an emphasis on mobile
Platform: Facebook Messenger
Having conducted interviews with a small group of Eurovision fans, I uncovered that they each shared the interest of using this type of bot when out watching Eurovision at a bar or to challenge friends when spending time together. Making it enjoyable and easy-to-use while on the go (mobile) became a must. Additionally, because they all had in common using Facebook Messenger to communicate with friends and family, it made more sense to integrate it in a platform that they were already using daily rather than having them install a new app.
Step 2) Creating a Persona
Moving on, it’s time to create our bot persona. Here it’s most helpful to define a couple of concrete attributes that embody the associated brand or bot experience itself. For this process, I found Liz Well’s tutorial most helpful and ended up using her templates to guide me. Here is the persona chart I made for the Eurovision bot:
As you can see, Marion and I geared our bot’s personality towards a sassy, “know-it-all” sorta queen which we felt would engage and provoke Eurovision fans the most. After narrowing down a list of brainstormed attributes to 4 words, we then translated these into design principles and eventually into a direction for the bot’s voice, style, and dialog.
At this stage, we also came up with the name Eugenie because not only was it gender-neutral, which is what we wanted for this use case, but it also hinted at the genie-like intelligence manifested in the bot’s core values as well as it’s main functionality.
[IMAGE] EUGENIE PROFILE PICTURE
Step 3) Mapping Conversational Paths
With a clear purpose and personality for our bot, the next step was creating a draft of the conversation paths. Below I created Eugenie’s “happy path,” which is how the conversation would go if everything went smoothly. All underlined words are entities (variables collected from the user) which help bots understand and trigger correct intents (what the user wishes to do).
Of course, the conversation doesn’t always go smoothly and because of this, it’s most helpful to sketch out all of the possibilities including “repairs” or workarounds if the bot doesn’t understand the user. Liz provides a great example of how this should be done in her post, however in my case since I was without a developer, I started simpler and disabled the user from typing messages, easily keeping the flow on track.
When writing your bot’s scripts, it’s also important to prime the user. This means driving the user to say the right thing in the right format. For example, let’s say your bot asks when the user would like a package to be delivered. As you can imagine, the user could respond to this in a number of ways but formulating your question to receive a user response in a format that the bot will understand is the goal.
As you’ll notice continuing to read on, what originally started out as a chatbot where users could quiz the bot, ended up evolving into just the opposite: where the chatbot quizzes the user. Although your final bot may stray away from your original paths, this is still a very important stage in building your bot’s foundation.
The reason for Eugenie’s happy path changing later on is because I started off too ambitious. With most things, it’s more important to start small, and in terms of this chatbot, that meant limiting user’s responses to get a functioning quiz bot before allowing user’s to freely type.
Having experienced this, I would highly recommended starting small and working to make your bot more advanced as you gain a better understanding of how we turn these conversational scripts into a functioning, automated bot.
4. Bringing It To Life
Now the fun really begins. At this point if you’re working with a team, the developer should get started building the bot based off of the previous work, but if you’re working alone, like me, it’s time to research.
When it comes to finding a backend for your chatbot, there’s no shortage of solutions. Chatfuel, Dialogflow (previously API.AI), and Wit.AI are just to name a few but finding the right solution for you and your bot presents a challenge.
Since these services are constantly changing, your best bet is researching into what would works for your case, however this comparative table of 25+ services details what features they offer, how much they cost, and more.
The following 4 subsections address my experience in designing a complicated quiz bot with the service Chatfuel. While you may not use the same service for your bot, it’s still helpful to skim through the rest of this section to gain an understanding for the sorts of unexpected problems that may arise when designing a bot.
1) Starting from S̶c̶r̶a̶t̶c̶h̶ a Template
I originally tried out Dialogflow which I knew was powerful but had a difficult time getting into it. I moved onto Chatfuel since it offered a visual approach. To start, I used the service’s quiz template bot to see how I could learn from it.
In short, it takes the user through 5 questions and offers them quick replies as answers. If the user gets the question correct, it adds a point to an attribute for the user’s score. At the end of the questions, the bot tells the user their score based off of this value and allows them to restart the quiz or challenge their friends.
While simplistic, this bot provided a helping hand in kickstarting Eugenie.
2) Eugenie is Born
Over the course of a couple days, I started to bring Eugenie to life, albeit not the sassiest version I envisioned, but at least a minimally functioning one. I initially disabled users from typing messages so that they could only interact with it by using quick replies or buttons since I knew free typing would immediately complicate things.
Knowing that I wanted to make the experience more natural, the fact that this flow was similar to the template quickly became a problem. As soon as I wanted to make it more complex, like randomizing bot responses, allowing it to give hints, and having contextual responses based on the question, the limited functionality of Chatfuel instantly became apparent.
3) Problems Arise
My first challenge was randomizing responses when the user answered a question. Obviously returning the same response “Correct!” 4 times in a row isn’t very exciting as the Chatfuel quiz bot template did by default. But to randomize responses, something that on the surface I thought would be an easy task, became anything but. Yes, while it is possible to randomize responses, there was no easy way to stop the bot from repeating a response.
To do this, I brainstormed a workaround which involved creating an attribute assigned to each response: from r1 to r4. The attribute would be assigned a variable after a response was said. This way when the user would answer a question, the bot would first check to see if the response’s corresponding attribute had already been assigned a value. If it hadn’t, then the response would be sent as normal, otherwise it would refer the bot back to the response block until it had found a response which hadn’t already been said.
In this way, no phrases would be repeated and Eugenie instantly felt less robotic. Figuring out this issue led to others and to continue making the bot as natural as possible involved many additional workarounds like this.
After several days of troubleshooting, brainstorming, and tinkering around, I was rewarded with the first prototype of Eugenie, complete with properly functioning randomized responses, contextual responses (different responses when answering the first question), point system, onboarding, and a seamless flow. I had my eyes set on one final feature to make it seem more natural: enabling users to type messages without breaking Eugenie.
4) Gettin’ Real
As soon as I allowed users to type messages to Eugenie, everything instantly became complicated again and I was happy I had started much simpler. This is where Chatfuel’s limitation really shocked me.
While the platform’s AI system allowed for inputting keyphrases and corresponding bot replies, it failed to address contextual responses out-of-the-box. For example, since the first question’s answer is Ukraine, Chatfuel’s AI module only allowed for when the user to say this to always react a certain way. So at first, if the user would enter Ukraine for question 2, it would still return a correct response because it didn’t yet understand that the answer only pertained to question 1. The user could even get a correct response by typing Ukraine right when the chatbot conversation started. Eugenie simply didn’t understand context yet.
This time around, I resolved the issue with another workaround in the form of a system of checks. I assigned each of the 4 answers to redirect the bot internally to a check question block which would return a correct response if and only if the bot had asked the corresponding question. Otherwise the bot would fall back on an incorrect response.
Again, this is an example of one of the many issues I was forced to address with a workaround while using Chatfuel to make a quiz bot. I could write up a whole blog post just on Chatfuel workarounds but in the end, I resolved all the major issues with creative workarounds. Talking with Eugenie was finally feeling far more natural now, it just required some thinking to get there.
6. Testing & Revising
When I initially had the first Eugenie prototype up and running, I turned to Eurovision fans and friends to help out in testing and revising. Just like with any product design, user testing throughout the process is invaluable as it helps uncover unforeseen issues as early as possible.
One of the best ways to user test chatbots is called Wizard of Oz Testing. Just like the name suggests, it means pretending to be a bot with real users to help identify issues like redundant questions, hidden entities, and additional complexities.
Observing user’s interactions with Eugenie tremendously helped in improving the bot. I won’t go into all the details but the most helpful and obvious issue was that Chatfuel’s limitations were again apparent if the user started small talk with the bot. Using the service’s AI module, the only option was to manually type as many small talk phrases and responses that I could think of.
Luckily it wasn’t long before I discovered that I could integrate Dialogflow’s comprehensive small talk feature within Chatfuel by relaying any unrecognized phrases to the service. Again Eugenie instantly transformed in front of my eyes and most of the initial minor issues vanished.
Congratulations, you’ve reached the end. In the end, I’m proud to say that this exploration was a personal success and while Eugenie is far from the most sophisticated chatbot out there, I pushed Chatfuel to its boundaries and learned a lot along the way.
If you’re about to embark on making your very own chatbot, I hope you find value in this post and am curious to see how the technology which powers chatbots and AI continues to improve in the future. One thing is for sure for the future:be sure to keep your eyes out for Eugenie as Eurovision 2018 approaches. You never know whether or not Eugenie will pop-up smarter and sassier than ever to get you back into the contest.
Chatbots have come a long way since conception in the 50s but the technology that powers them is often over-hyped and not quite there yet. It is possible to make a seemingly intelligent chatbot in 2018 for a designer, but that’s not without facing countless issues. With interest in the field increasing over the past couple of years, it’s only a matter of time before designing a delightful, engaging, and complex chatbot will be as seamless as talking to one.