Moscow Muler is a SMS-based bot I built that users can chat with, play party games, send selfies and receive customized drinks according to the facial attributes showing on their pictures, such as their age, gender, makeup, hair color and mood. It's powered by two APIs, Microsoft Azure - Cognitive Science - Face, and Cocktail DB. The bot was built with Ruby and Sinatra framework.
Time Span: September - October 2018
How I Started It
I first thought about building a chatbot about food and drinks. I found that a lot of food/drink-related apps are about nutrition and calories, they are very healthy but they take away the fun part of enjoying food and drinks. Then I thought about what young people do nowadays. They love taking selfies, sharing stuff on social media, showing their personalities and having fun in nightlife. With this user persona, I decided to create a chatbot that can offer customized cocktails based on emotions on selfies.
Moscow Muler’s speaking style is casual and funny and he often uses emoji to express his emotion. Besides learning what he can do, the users can understand his personality better through fun facts and the “Never Have I Ever” game with him. The facts and jokes are based around drinks and nightlife to reflect his “virtual bartender” and “party host” identity. Directions on trigger words and what questions can be asked are given so that the dialog flow is always clear. Sometimes the users will get customized response to their selfies, such as “I like the lipstick you have on”.
There are guiding messages and trigger words to keep the conversation going.
Adding fillers can help keeping the users be engaged and patient during waiting time. My bot usually takes more than 5 second during the cocktail recommendation feature, it will say “please wait, I am making your cocktail now” to keep the user engaging and ease the awkwardness during wait. Sometimes the user asks for something that is beyond my bot’s capabilities, such as ordering food and getting information about bars, the user journey will end suddenly if my bot says “sorry I can’t help you with that”. An optimization opportunity here is that my bot should provide other routes for the users to smoothly continue navigating, which could be the Yelp app, a website and other specialized bots.