Shipping Bot
Overview
This product is a chat bot prototype I designed and developed for a client company while working as a Technology Apprentice at Junior. The bot’s purpose is to streamline and simplify the client’s product’s workflow and to package it inside a platform users are already on every day: Slack. Due to the nature of this project, the client’s name has been removed and demo images are not included on this page. For more details and demos, please contact me at projects@samweiller.io.
Experience
This project allowed me to explore the field of chat bots, and gave me an opportunity to push the boundaries of such a new and emerging field in technology. The project also gave me experience presenting in front of high ranking clients, including the CEO and COO of the company.
Role
On this project, I acted as strategist, designer, and developer.
Deliverables
A fully working interactive prototype of the bot, multiple presentations to the founder team at Junior, and two presentations to the executive team of our client company, which I led.
Process
01 - Product Strategy
In the summer of 2016 I worked as a Technology Apprentice at Junior: a product to market company in San Francisco. One of the main projects while I was there was working with a shipping company to redesign their digital platforms. Parallel to this main project, our founders wanted to propose a chat bot that accomplished the same tasks as the main product, but in a more personal, conversational, and convenient way. I was given this idea and their existing and future products, and was told to, “come up with something awesome and discuss it in a few days.”
02 - Designing a Chatbot Experience
Before even thinking about the bot platform, I started by mapping out the entire user experience on all of their products and platforms. This clearly laid out all the elements I needed to include in the conversation and gave them a hypothetical order. Given how new the bot field is, I ran into a lot of low-level issues that did not have “best practices” solutions yet. One problem we ran into throughout the conversation was how fuzzy AI fit into the workflow. In a situation of trying to predict, say, a user’s destination address, does it make more sense to provide a prediction first and ask for user confirmation/correction, or to skip a step and just ask the user to provide the details themselves? We examined this question with some guerilla user testing around the office, but never came to a consensus on the best way to do it.
03 - Developing the Bot
I developed the bot using Node.JS and the BotKit Framework, which allows you to define the entire product inside of standard, conversational terms (“ask”, “reply”, etc.). The original proposal I made to the founders team was a basic, 5 turn bot, with most of the impressive features (natural language processing, price estimation) being “faked”. As the development process progressed, features kept getting tacked on, forcing me to refactor my code on the fly to meet the requests of the team.
04 - Presenting to Executives
We presented the demo to the executive team of the client company twice. Both times, I was representing the entire technology wing of our company and presenting my own work and decisions to the client.
05 - Bot So Much
Due to various political and logistical reasons, the bot never went past the proposal stage. However, my work has still been added to Junior’s portfolio and, hopefully, will live on someday in the future.