We’ve dreamed about having conversations with our computers for a long time. Stanley Kubrick’s 1968 film 2001: A Space Odyssey imagined a sentient computer named Hal. In the past few years, with the rise of Siri, Alexa and more, we live in that reality.
A simpler version of the natural language processing apps like Siri are chatbots. 2016 was the rise of the chatbot, and 2017 will continue that trend, with more and more users having “conversations” via the keyboard to find information and complete tasks instead of clicking around in search engines and on websites. Some of us have not yet interacted with a chatbot before, so, what is it like? And what is it like to design one?
The experience of interacting with a chatbot is very similar to interacting with a smart and eager-to-please dog — the bot understands a lot, but won’t always give you the feedback that you expect; their intentions are good, but they are not always helpful; and you end up training yourself as much as you try to train them.
When it comes to designing one, it is very much like training a dog as well. Since there is no visual interface, the tools of brand are limited to the voice and tone of the snippets of conversation that the bot can have. If you are lucky, there might be an avatar that the bot can use, but beyond that, the “personality” of the bot comes solely from the way it reacts and the words that it uses.
No UI is still a UI
First, a slight tangent, if I may.
There is a saying, coined by Golden Krishna, that goes
The Future of UI is no UI. While on the surface, that is a nice, catchy statement, I don’t think it is true. To get semantic, I’d refine that to say The Future of UI is no GUI.
The absence of a graphical user interface (GUI) is still an interface. If your bot uses Facebook Messenger, or WeChat, or Slack, it still has a GUI. It’s just not one that you designed, and you have to work within the constraints of that system.
Further, I would argue that a Conversational UI is still a UI. How could it not be? To design one, you need to make the same decisions that you would if you were designing anything else — there are just a lot more constraints to work within.
You can’t choose the typeface, you can’t rely on colors, or design details such as borders, drop shadows, and the like. Instead, your UI and all the personality of this little bot comes through in the way it can have a conversation. It would be a very different experience to have the bot use a military tone of voice — gruff, coarse, quick and to the point with very few conversational niceties — than if you used a friendly, happy, and more naturally intoned voice.
A Conversational UI may not be a graphical UI, but it is still a UI. There are decisions to be made, but because there are no visuals to work with, the decisions you make are even more crucial to the expression of your bot’s personality and the brand that you want it to reflect.
Our good little boy, Gitpup
As a way to experiment with Conversational UIs, and as a way to create something useful for our team that might also have usefulness in the larger marketplace, Oomph designed, built, and implemented a chatbot for <a href=”//slack.com”target=”blank” rel=”noopener noreferrer” title=”Opens in a new window”>Slack (a Slackbot) and <a href=”//www.hipchat.com”target=”blank” rel=”noopener noreferrer” title=”Opens in a new window”>Hipchat called <a href=”//www.gitpup.io”target=”_blank” rel=”noopener noreferrer” title=”Opens in a new window”>Gitpup.
The problem that we wanted to solve was “How do you make peer-to-peer code review easier to manage and more fun?” As the name suggests, Gitpup is an assistant that we connect to our Github account. Its job is to announce when a Pull Request is ready for review, assign it to someone, track it, and then close it when the review is approved. Once a review has been completed, the user is given “karma” points that come with bragging rights and have become a currency of sorts amongst our team.
Designing the chatbot
Our “design” and personality came from who we decided that this bot was. We toyed with a bunch of ideas, but once we decided that the bot was a dog, it was easy to start to have some fun with it.
As a dog, Gitpup is everything you would want one to be: helpful, quick to respond, and obedient. But Gitpup has a little sass, too. We wanted it to have some personality, and be somewhat of a jokester. It has random phrases that it throws back at you if you mention it by name, and while the randomness is uncontrollable by nature, it does lead to some fun interactions.
A sample conversation with Gitpup
|nate whats unassigned
|Gitpup APP No open, unapproved and unassigned Pull Requests
|nate Thanks gitpup
|Gitpup APP You’re welcome, nate!
|nichole hey gitpup
|Gitpup APP See if I play fetch with you next time, @nichole
|nichole y r u so mean?
It utters plenty of encouragement when a Pull Request is taken or completed by a team member.
Sample workflow with Gitpup
|Gitpup APP [Review #3366] marc has been assigned to Bring react ish into main oomph repo!, #233 on oomphinc.com. Go get ’em, Champ!
|Gitpup APP [Review #3364] brett closed and merged Add logintoboggan module, #269 on drupal-repo +1 Karma (1,766) Yes. You. Can!
|Gitpup APP [Review #3365] brandon approved PR Add style for when there are logos in a grid within content (SASS), #207 on kab. Magnifique!
|Gitpup APP [Review #3365] Thanks for participating, brandon +5 Karma (903). Woof!
We also built some randomness into the daily grind. In addition to helping with reviews, assignments, and approvals, Gitpup announces a Raffle for any Karma that might be unassigned once a day at a random time. You can type
I’m in or
I’ll join to enter the raffle.
Joining Gitpup’s daily Karma raffle
|Gitpup APP Attention Today’s community Karma raffle is in effect! Say I’m in! to join the
raffle within the next 5 minutes to join for your chance to win 45 Karma!
|nate I’m in
|Gitpup APP Thanks for joining, @nate, you’re the first and only participant in this raffle, Purrrrrfect! Chances are looking good!
|nichole im in
|Gitpup APP Fingers crossed, @nichole! There are now 2 participants in this raffle.
|brett ill join
|Gitpup APP This could be the one, @brett! There are now 3 participants in this raffle.
|stephen I’m in as well
|Gitpup APP May the odds be ever in your favor, @stephen! There are now 4 participants in this raffle.
|Gitpup APP And the winner of today’s raffle is… @nathandentzau! Congratulations! +45 Karma
After interacting with Gitpup for a few days, it is easy to forget that it is just a bot that we programmed. Personality is an easy thing to create if you start from a place of authenticity. For us, we were not trying to create a person, we simply wanted an amiable cartoon character that would be fun to interact with and make what might be a dreary task into something a little more engaging.
A well-trained Bot will also train the User
This little experiment into Conversational UIs helped show us how any UI will also train the user in ways to get the most out of it. With a visual UI, it might be lots of trial and error — clicking around to get a sense of what things are and where they go. With Gitpup, it was the same sort of trial and error, but the downside is that a command can simply go unnoticed if it is not in the bot’s vocabulary.
For instance, our patterns match phrases with a certain degree of fuzziness — we ignore punctuation and plurals, just so the commands don’t have to be perfectly typed. To ask Gitpup which PRs are not assigned to someone yet, you can type “whats unassigned” and Gitpup will respond. There is a drawback to a Slackbot that is in an open room where other conversations are happening — you don’t want it to respond to everything that anyone says, so, if you try to get Gitpup’s attention but don’t use the right terms, you won’t get any response.
Users can quickly learn the different commands that a simple bot will recognize, and it’s not so bad to use trial and error to figure it out. But with a more complicated bot that you are in a direct conversation with (via a text app), it can be a little more awkward if your bot does not recognize a lot of natural language. Be sure to design some phrases in the bot’s conversational database that can be used when it does not understand something, or it can not complete a particular task. Success messages are easy to create, but it is harder to create a failure message that does not frustrate a user or make them think that the bot is simply useless.
|brett gimme 4034
|Gitpup APP Ruh roh, I don’t know about Review #4034
|nichole give 3466 to @thatguy
|Gitpup APP Darn, I don’t know who that is!
When is a Chatbot right for you?
While chatbots are all the rage right now, I don’t think normal point and click websites are going away anytime soon. A chatbot service isn’t right for everyone because the service they offer is very transactional in nature—get me this, research that. They can offer information that a user didn’t know that they wanted, but that is often more complicated, and in the end, the user needs to opt into the service somehow.
The questions you can ask are:
- How complex is your service? Would the simple conversational style of a chatbot be helpful for your customers, or frustrating?
- Can you imagine having a conversation with your service? What would it sound like? Are visuals necessary to the experience?
- Would your brand identity translate into a “personality” for a bot? Can you imagine what the “voice” of the service might sound like?
- Where are your customers? Are they likely to already use a message service like Facebook Messenger, WeChat or Slack? Do you want to be where they are?
- Are your customers likely to have an Amazon Echo or Google Home device? Is your service better suited as an add-on to these personal assistants?
- Will customers need to authorize a purchase? Will you need to create your own checkout experience, or can you leverage a pre-existing service like Amazon?
- Do you want your service to work over SMS? Will the limitations of text messaging (message length, possible fees for users) hinder the app’s functionality?
Find a Chatbot and Use it!
If you are a marketer looking for new ways to connect with customers, or a manager looking for tools to keep employees efficient and engaged, you should become familiar with chatbots. We’d recommend these as good starting points:
- Gitpup (of course): if you manage a development team that works with GitHub
- x.ai: A personal assistant chatbot that works by being CC’ed on your emails
- healthtap.com: A Facebook Messenger bot that answers your medical questions and is backed up by real people
- meetcleo.com: A SMS chatbot for managing your money
- assi.st: An integrated platform of bots that work for Google Home, Messenger, Twitter, and Alexa.
The barriers between our computers and our normal everyday interactions are coming down. A computer that can hear your voice commands is probably not far away from you at any given time. Conversational UIs are making it easier to get what you need at any moment without finding a particular app, typing on a tiny screen, or doing a lot of clicking around. They become another tool in the belt and another way to be where your customers are.
If you’d like more information about chatbots and whether or not your company can benefit from the power of No GUI, drop us a line. We’d love to chat person to person. 😉
More reading about chatbots: