How Our Dumb Chat Bot Got A Million Users Without Even Trying
The viral potential of bots
Three months ago, we released a modest chat bot that we thought could be fun to use in group conversations. The bot, which we called Roll, did one simple thing: it randomly selected a participant in the conversation, thereby providing easy and authoritative answers to such pressing questions as “Who is the biggest flirt?” and “Who’s calling the Uber?” and “Who has a crush on me?” (The answer to all of the above is you, obviously.)
We did nothing to promote the bot. No ads. No paid promotions. No splashy launch. We just put it in Kik’s Bot Shop and waited. (Full disclaimer: we work for Kik, and Roll has been our side project.) After 10 days, we had 200,000 users. Thirty days later, we had half a million. Today, we have more than 1 million users. Roll’s one-week retention is 90 percent. At two months, it’s 25 percent. We’re seeing an average of 25 messages per user per day.
Roll started as an experiment. We wanted to build something that millions of people could use, but without the overhead of developing a full application for iOS and Android, which would have required more time, more money, and more reviews. We thought that a bot platform might provide a way to build something cool with significantly less work, and far less friction for people to adopt. Not only did that turn out to be true, but to our surprise, our bot would also spread like crazy.
Bots have come in for their fair share of criticism since Facebook Messenger released its bot developer kit and Kik opened its Bot Shop in April. People are still confused about whether bots should be your chatty friends, or reinventions of apps for a messaging context, or something else entirely. We might not be able to answer all your questions about bots, but we can tell you this: Roll has found more than a million users almost entirely on the strength of being shared peer to peer. We don’t think this could have happened as easily with an app.
How did this happen?
We had one simple plan when we set out to build Roll: make it work for group conversations. That’s easy to say, but not easy to execute. To make it happen, we needed people to actually want to ask the bot questions. We figured that one of the easiest ways to keep users engaged was to make it social. Kik has a feature called mentions, which allows you to bring a bot into an existing conversation by calling it up with the “@” button. For example, if you type “@Roll” at the start of a message while you’re chatting with a friend, Roll bot will appear to answer your question. It will even suggest a list of questions you can ask.
This focus on sociality means the bot improves rather than interrupts your conversations. We routinely remind users who are talking to Roll bot alone to “Try typing @roll in a group or conversation with a friend!”. As a result, the bot’s viral scores have been off the charts. A full 95 percent of Roll’s users have come via viral sharing.
We’ve also kept it simple from the start. We resisted the urge to use natural language processing (NLP) in an effort to make the bot seem more human or to respond to every imaginable question. Instead, we designed Roll bot within a constrained context. The first version of the bot only answered questions containing the word “who”, or the less popular “roll”. The goal of this narrow focus was to clearly set the expectations of what the bot could answer. The original piece of code that made Roll go viral was:
if “who” in message_body: return clever_response
If a user typed in something that did not contain “who”, we immediately respond with a help message.
else: return help_message
To educate users about our chat-based interface, we added about 80 example questions into Kik’s suggested responses, which are presented four at a time on rotation. Each time you message Roll, you’re given a different set of questions to choose from:
- Who is driving?
- Who is most likely to live alone with 5 cats?
- Who is the best Pokemon Trainer?
- Who hasn’t started their homework?
We’ve also gone to great lengths to prevent conversations with Roll from going stale. Again, it’s nothing fancy. We just use simple language and a cycle of options. For example, when you ask Roll bot a “who” question, it always replies with two responses:
- The “thought” — a randomly generated message that makes it seem like Roll bot is thinking of the perfect answer to your question; and
- The username — a randomly selected user from the chat participants
The bot has a list of about 100 “thoughts”, ensuring that each interaction with Roll is unpredictable and different from the last. A few examples:
- We asked 100 die-hard Drake fans, and they said…
- Survey says…
- Sorry not sorry tho…
- Do I have to even say it out loud?
This behaviour is even present in our profanity filter, which layers in an additional level of personalized content. If a user triggers the filter, Roll responds with a suggested response that substitutes in the name of the user who produced the offending content. This is especially entertaining in a group conversation and prompts users to interact with Roll bot further. Instead of replying with something like “Sorry, I don’t understand your message”, Roll bot might say…
- I’ll be taking questions from <name> less serious from now on…
- Ok <name>, I need you to dial it down a notch.
- Please don’t play these games with my heart, <name>.
- Can someone besides <name> ask me something?
The key to Roll’s early success has been not over-thinking the bot experience. Roll bot is simple and social, and that’s about it. We give the power to the users and then get out of the way. The result has been a bot that has been shared more than we ever hoped for. The experience has underscored an advantage that chat bots have over smartphone apps: they’re super easy to try, and just as easy to share. We’d love for you to give it a try.
By Ryan Kelly and Kevin McGaire