Chatbot features (and games) I would love to see in Facebook Messenger
Facebook has recently announced at their annual F8 conference that new features are to be implemented for Messenger and Messenger Chatbots. Just to name one, they’ve announced the launching of Chatbots for group chats. Although the platform for group Chatbots will not be open to the public yet, it is still possible to get a glimpse of what they will be like, thanks to the Messenger easter-egg @dailycute that posts cute pictures of animals into conversations when mentioned.
There is definitely a huge potential in group Chatbots. Want to keep account of your finances or get recommendations for eating out? Just mention a tipping Chatbot or ask it to give suggestions based on your geolocation and preferences.
The enumeration of the new functions is far from being over, one of the best features I am looking forward to are multiplayer Chatbot “video”games! Similarly to the now disabled @fbchess users could play games with their friends inside Messenger, without having to download an App and find each other on a server. Simple games as a Messenger version of rock paper scissors could be a great way to resolve conflicts. Fantasy Football Chatbots could save users’ bets and keep them updated on scores. Users could train their virtual avatars at one place and battle them in Messenger group chats.
However, the current features of the Messenger API and the available pieces of user information are quite limited. If we really want group Chatbots to be a success, Facebook should enable bigger freedom for its developers. These limitations are understandable, as they protect the users from malicious Chatbots that specialize on stealing personal data. But they also limit developers and prevent them from creating personalized Chatbot experiences. I am pretty sure Facebook is trying hard to find a better balance in this area.
Here are some features that I firmly believe would help developers to expand their ideas and therefore would love to see in the Facebook Messenger Chatbot platform in the future:
- More information about the user (obviously). Right now there is no way to tell if the user accessing the Chatbot is a minor. If my company sells products for people over 18, the automated responses should not allow the user to place an order. Even if age is a sensitive information Facebook is not willing to give away about their users, they could still include a “minor” flag in the user info response JSON. The current user language information could also be misleading at the moment, as many people use Facebook in English despite having another mother tongue. Therefore multilingual Chatbots would most likely just talk in English to its users even if they would prefer to be addressed in their own language. To work around this, user information should also include the current country of the user.
- Send information about the current platform the user is using to access the Chatbot (mobile/desktop version of Messenger, desktop version of Facebook). Image, attachments and templates currently show up in different ways on different platforms. These templates are generated so they could be adjusted to the user’s needs before sending them. Chatbots could also offer more quick reply buttons for users on Mobile, because it is harder for them to send (correct) text messages.
- Attach geolocation to every message sent by the user (after user approval or manually sending geolocation once). Asking the user for their current location all the time breaks the flow of the conversation. This feature would allow a workaround for developers. The Chatbot would still only know the user’s location if they responded to a question, so malicious Chatbots wouldn’t be able to track them 24/7. This feature would allow the development of Messenger fitness trackers, where a Chatbot would ask the user about their workout, and calculate the estimated route after the answer. Even better, alternative reality games could be developed, where certain events would trigger in certain areas without explicitly having to send information about the user’s whereabouts. Think of a Messenger version of Pokémon Go, where Pokémon would pop up and send you a message if you are nearby. This feature could also be used for advertisement: ask a Chatbot about the snowy weather and it will also give you a list of places that offer you some hot chocolate nearby.
- Personalized layout (color, stickers, etc.). In my previous story I complained about the lack of documentation about users unexpectedly changing the layout or sending various “like” stickers. However, if our goal is to really deliver personalized experiences, having the very same layout for every Chatbot is nonsense. I want a paw thumbs up instead of a hand thumbs up for my Tamagotchi Chatbot, and a lavender color for the text background for every message my automated flower service sends. Moreover the avatar could change on the fly, reflecting the current “emotions” of the Chatbot AI.
- Personalized menu items instead of one-size-fits-all menus (and an option to have a menu layout for Mobile versions that does not cover the text input area). Users accessing a customer service Chatbot should have different options available. Users playing a Chatbot game should only have access to certain menu items after completing the tutorial. Chatbot games with save states should show the used slots in the menu.
- Information about whether or not the user has clicked on a link that was sent by the Chatbot. Rather: allow sending special image attachments (widgets) that let the user click or tap them and send back the relative location of the click or tap event. This would allow the creation of point and click games, Cookie clicker games, petting of Tamagotchis, board games, personalized GUI elements, color pickers, and so on. Facebook Messenger’s webview offers similar features already so adding a few tweaks and extra options to the API should do the trick.
- Extended permissions for group Chatbots. Mentioning a Chatbot in a group chat (with conditional paramteres) could break the flow and feel inhuman. Especially if one has to keep mentioning their name every time they want to continue with the workflow. Imagine a discussion like this:
User 1: Should we go to that Sushi place tomorrow?
User 2: I don’t know, let’s ask @SushiBot if they are open
SushiBot: I do not understand “if they are open”
User2: Are you open?
User2: @SushiBot opening times
SushiBot: Our restaurant is open from 10:00 am to 9:00 pm every day!
User1: I’m in another timezone btw
User2: Reserve a table for two, tomorrow at 5 pm central.
SushiBot: A table was reserved for you tomorrow at 5:00pm.
User2: @SushiBot I want Ramen
SushiBot: Ramen will be served for you tomorrow at 5:00pm.
User1: I want 6 salmon maki rolls
User1: @SushiBot I want 6 salmon maki rolls
SushiBot: You need to reserve a table first.
If no context is provided, talking to these Chatbots will be a nightmare and they will seldom have better uses than sending random cat images upon request (no offense @dailycute). Information about the participants in a conversation should also be available to the Chatbot. This could be even harder to achieve for group chats with many participants as users would most likely have to give some kind of approval for the Chatbots to receive their personal data and nicknames (otherwise users could just troll their friends by sending them random mentions). The task is even trickier if users have different gender, languages, timezones, etc. and you have to implement ways for addressing them the correct way. Once we figured out these gimmicks it would be a ton of fun just to mention a simple multiplayer game Chatbot in a group chat and spend a few minutes together playing, on different platforms, without the need of downloading any additional software.