All bots promise ease of use, but are they actually, well, easy to use? In 1990, Jakob Nielsen identified 10 usability heuristics for evaluating user interfaces against a set of universal design principles. Inspired by Nielsen, I’ve come up with six relevant heuristics to evaluate bots:
- Visibility of system status and recognition rather than recall — Keep the user apprised of the system and their options at critical points and give the user options to request additional information at any point.
- Match between system and real world and help users recognize, diagnose, and recover from errors — Know your audience. Don’t switch communication styles.
- User control and freedom and error prevention — Get confirmation from the user at critical points, and provide escape hatches for multi-step interactions.
- Flexibility and efficiency of use — Provide accelerators to power users.
- Consistency and standards and aesthetic and minimalist design — Keep the communication style and personality/voice consistent.
- Help and documentation — Provide help within the bot.
Let’s take a look at some popular bots and see how they hold up against these heuristics. I’ve chosen Poncho, CNN and 1-800-Flowers — three bots on Facebook’s Messenger platform — all introduced at the F8 developer’s conference a few weeks ago.
Poncho
Poncho starts out strong by providing a hint as to what to do: talk about the weather.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*-OrBcCXsxLWBq3rDqI_CyQ.png?strip=all&ssl=1)
Ok, sounds good, let’s talk about it, Poncho!
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*beB2oD_7CayPdqD-0YPU3Q.png?strip=all&ssl=1)
This is an awesome interaction so far. Let’s recap:
AI Weekly
The must-read newsletter for AI and Big Data industry written by Khari Johnson, Kyle Wiggers, and Seth Colaner.
Included with VentureBeat Insider and VentureBeat VIP memberships.
- There’s no ambiguity about what to do or say
- Poncho has confirmed the information provided (my location)
- Poncho is giving me the ability to “undo” or amend the information I’ve provided.
Let’s see what it looks like if I say “Nope”:
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*IM-V_pXY6041NVXNyg9SOg.png?strip=all&ssl=1)
Decent, though I’m not a fan of Poncho running me through identical language here (Is that the right city?). Up to this point, I forgot I was conversing with a bot; now my innocence is lost.
Anyways, let’s keep going and say “Yea.”
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*vSYUpBFMB3VBl8vkENSnVQ.png?strip=all&ssl=1)
I get the weather along with the next CTA; I don’t want to set any notifications for now, but thanks for asking, Poncho.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*ADCcAtVAhCwadpvNFQLfIA.png?strip=all&ssl=1)
This is just a fantastic job of providing inline documentation, and Poncho even prompted me to ask for this help. Awesome. Also a great example of structured messages in Facebook to remove any potential for ambiguity.
Let’s see if we can get at some system visibility:
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*oSiaiwH-n1F_7CAwcdPLDQ.png?strip=all&ssl=1)
Succinct and clear.
Poncho also does a great job with banter, and when you reach the limits, he pulls you back:
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*fJDyrNxLt3rS9P1bDBPvQQ.png?strip=all&ssl=1)
Verdict
- Visibility of system status and recognition rather than recall — Responds to queries regarding system status. Provides structured messages to guide the user.
- Match between system and real world and help users recognize, diagnose, and recover from errors — Poncho uses vocabulary I’m familiar with.
- User control and freedom and error prevention — I made an “error” entering my location and Poncho let me fix it. Awesome.
- Flexibility and efficiency of use – If I come back, Poncho will remember my location, saving me a few keystrokes.
- Consistency and standards and aesthetic and minimalist design — Poncho is pretty straight to the point, and the structured messages are clear and concise. Poncho is also a delight to talk to, most of the time.
- Help and documentation — Fantastic example of inline documentation done right.
Poncho knocks it out of the park.
CNN
Next up, CNN.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*CgaSiflmilPG8lRfgYwtnQ.png?strip=all&ssl=1)
CNN makes good use of structured messages. However, this already feels less like a conversation and more like a command line.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*4pqCv10bJ1fn8-B-yzKHzQ.png?strip=all&ssl=1)
While the CNN bot is definitely not something I’d want to have a beer with, that works in its favor when it comes to guiding my actions; I’m more inclined to treat it like a command line and less like a pal.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*A2rpcjQwkfWOuU22FZjWig.png?strip=all&ssl=1)
Other than having it give me stories, it’s unclear what I can do with this bot. It seems to rely too much on accepting interactions via structured message, and “Ask cnn” doesn’t really do much.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*cuNzi-GyvVhhmPFg8Wjb0w.png?strip=all&ssl=1)
This bot gets the job done, but it’s a tad underwhelming. I’d rather just use the website.
Verdict
- Visibility of system status and recognition rather than recall — Structured messages are very clear, but fails to accommodate regular messaging; unclear CTAs at times.
- Match between system and real world and help users recognize, diagnose, and recover from errors – Very little opportunity for interacting outside of structured messages.
- User control and freedom and error prevention — Not too many opportunities for errors here.
- Flexibility and efficiency of use — CNN bot all but asks you to treat it like a command line; it seems to not differentiate between power users and novices.
- Consistency and standards and aesthetic and minimalist design — Consistent, but no voice here; it’s like I’m looking at an RSS feed in Messenger.
- Help and documentation — Provides inline help, though it seems like some stuff is missing: For instance, what should “ask CNN” do?
1–800-Flowers
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*Rbs-kRW0jgEcVtw5hRJ4Pg.png?strip=all&ssl=1)
Leads with a structured message. Doesn’t really make me want to have a conversation with this thing. Let’s see what happens if I hit “Talk to support”:
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*Zw3VqqSv3J-ltzfn4rcCxw.png?strip=all&ssl=1)
Oh crap, I don’t want to talk to a human. Cancel, cancel!
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*gD9fcQEMJ3lywfp8oWaOrg.png?strip=all&ssl=1)
Coincidentally, that is an awesome example of undo in action right there.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*WStpk5WVur7krDs9wYUhHQ.png?strip=all&ssl=1)
Great use of confirmation right here.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*6rym1ClzNpYVMd85QUgtVQ.png?strip=all&ssl=1)
Not a fan of this interaction here. They’re forcing me into using structured messages, which feels limiting. However, it is nice that they prompted me to ask ‘help’. Let’s ask for help.
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*UNyx99T81nuEABhDFKSnCA.png?strip=all&ssl=1)
I let the bot sit fallow for a while, and then this happened:
![](https://i0.wp.com/cdn-images-1.medium.com/max/800/1*YO0hiyS8IyXwXwfwnP_dMQ.png?strip=all&ssl=1)
That’s a really nice touch!
Verdict
- Visibility of system status and recognition rather than recall — Great job using structured messages to guide a user through the interaction.
- Match between system and real world and help users recognize, diagnose and recover from errors – Fails, especially at the end: When I tried to enter an exact date, it choked.
- User control and freedom and error prevention — Did a great job of allowing me to go back and change my order.
- Flexibility and efficiency of use — Nice use of humans to fill in the gaps; novice users would appreciate the human touch, while power users can get right to ordering.
- Consistency and standards and aesthetic and minimalist design — It feels like I’m interacting with a webpage inside Messenger.
- Help and documentation — Great inline help.
Conclusion
While I think there’s still plenty of opportunity to figure out some bot-specific design heuristics, Nielsen’s hold up pretty well. We can see that all three bots do a great job of providing affordance around error prevention and recovery, and all three provide inline help right in the bot. These go a long way toward grounding the user in the experience.
Crafting a compelling, delightful bot experience is going to be a key differentiator between the bots that see adoption and those that don’t. Nielsen’s heuristics continue to provide a great benchmark to point us in the right direction.
A version of this post appeared on Medium.com.
Kevin Scott is a desingineer, half human/half bot.
VentureBeat's mission is to be a digital town square for technical decision-makers to gain knowledge about transformative enterprise technology and transact. Learn More