I have a lot of relatives back home in Hawai’i, many of which are slightly out of touch with modern day technology, and still struggle to figure out the magical black box that is the internet. When they need help with a problem, they either message their children for help, or turn to the yellow pages. So I figured, how can I allow people to access information that can be found in the yellow pages through a simplified mobile interaction?
The average person has about 80 different apps installed in their phone. That’s a lot of apps, all of them providing some unique value that a user can leverage when needed. The problem with this, is that for each of these apps, the user must familiarize themselves with a new interface, work through different task flows, and acclimate themselves to varying feedback and interactions for each app. For many of these apps, the usage is only triggered by occurrence of an event.
From this arises the opportunity to leverage chatbots as a means to access app services through conversational interactions. Puka, an SMS chatbot that helps users resolve common household problems, explores this opportunity. By utilizing the Yelp API, users can tell Puka about a household problem and receive the name, rating, and phone number of nearby businesses that can help.
This chatbot was programmed in Ruby and Sinatra, hosted on Heroku, and available to chat through Twilio.
I began this project by first doing some background research on chatbots in order to understand how users are able to accomplish tasks and resolve problems through conversations. I looked at chatbots within the travel industry in particular, since the domain has a flourishing chatbot presence. Below, I created a domain analysis with axis assessing range of conversationality, and assisting vs. managing.
With an understanding the chatbot landscape, I began to consider possible scenarios in which a chatbot would be useful. Since texting is an interaction that is familiar to people of a large range of age groups, I decided to interview older relatives in order to determine some common problems that they experience. One of the more common responses from these interviews was the uncertainty of what to do and who to call during a leak or electrical problem with the house. I figured that many homeowners/renters likely encounter similar scenarios and decided to make a chatbot to address this problem.
I began crafting the bot by considering its personality, and giving it a name.
Puka is the Hawaiian word for ‘hole’. I chose this name when recalling one of my interviews with my aunty, in which she described wanting to fix a ‘puka’ in her wall. Keeping Puka’s personality in mind, I started to build the dialog flow to systematically diagram the conversation a user would have with Puka. In this dialog flow, I also experimented with Puka’s tone in the responses.
Puka is a SMS chatbot that helps users locate nearby businesses to resolve common household problems. These common household problems are based off of six predefined categories: Electricity, plumbing, leaks, heating, pests, and cleaning services. The code implemented is able to recognize not only keywords associated with the problem, but also the relevant emojis as well.
Puka is to register the user inputted problem to be later used as the search term in the Yelp API. Puka also 'remembers' the user's provided zipcode by storing this information in sessions for later recall. Having the user input the zipcode also allows this information to be set as the location used for the Yelp API business search.
Using the formatted JSON file from Yelp, I return the names, phone numbers, and ratings for up to three relevant businesses nearby.
Currently, the conversation ends with Puka providing the user with three Yelp businesses, but I think a more useful call to action would be to either allow the user to access the Yelp page on the app, or prompt to call the business of their choosing. I would also like to build out an 'other' category, in the case that the user's problem does not fall under one of the six predefined categories. This flow could help the user diagnose the problem to arrive at a term that can be searched within Yelp.
I would like to be able to make Puka more than just a bot that can be of use when called upon for a variety of use cases using Yelp's API. Puka could be messaged if a user would like to find nearby businesses for other services such as personal aesthetics, food establishments, auto repairs, and others.
I would have also liked to spend more time on the conversation between Puka and the user. Right now, I utilize emojis to make the interaction more delightful, but I think use of other media such as giphys could also serve a more dynamic purpose, and might make the overall experience more engaging.