How to build a shopping bot?

Nishan Bose
7 min readJan 7, 2017

--

Jarvis, HAL 9000, Google’s AI Bot, Microsoft’s Twitter ChatBot, CNN Bot, Gym Bot, WeChat bots, Messenger bots and many others are reshaping how us humans interact with technology. But are they truly “reshaping” interaction techniques? Humans are social beings and we tend to interact with other humans in natural language — conversations. This is how we are most comfortable — instead of in binary or writing algorithms or clicking buttons. No wonder there is a massive surge in the number of bots on the market as this allows us to “talk” to machines.

So what is the market? Market here are the platforms on which users spend majority of their time. Instead of building yet another app to fight for users attention and space on the home screens — utilizing existing platforms lower the threshold to climb over that barrier. example: Twitter or Messenger.

I read an article on Medium the other day (need to link here) — which piqued my interest. Bots / ChatBots nowadays are like webpages in the early 90’s where they were unusable / non-intuitive / slow but people would still use them. In comparison it means that just like webpages it will be a while before current technology is able reach a stage for widespread adoption in case of bots. So hold tight while product teams around the world experiment with what works best.

Why?

Very soon we will have design patterns for bots just like we do for web design. Until then, I am going to take a shot at what is a trillion $$$$ industry — Online Shopping! This is also a take at E-commerce’s new baby — Jet.com and their Fresh product offering on the east coast. It may come as a surprise to many of you but Jet.com Fresh has the lowest prices compared to (Amazon, Food Marts or any around the corner stores). Plus the more you shop on Jet.com, the more discounts you can get and there is no membership fee! (unlike Amazon Prime Pantry or Costco)

What are the problems?

Back in the day people would go out to salesmen and shop owners to buy stuff. Stuff refers to everything that is meant for consumption or can be purchased using existing economies of transaction. The uniqueness of those interactions was that the salesmen and shop owners knew you. They recognized you from afar and understood what your needs were. Additionally, they could hold a conversation with you. Fast forward to now, we go online, not knowing precisely what we are looking for and are overwhelmed by the sheer number of options. Eventually we end up buying what we think best suits us but this goes on repeat every single time we are buying something. But this online transaction also presents an opportunity — an opportunity for convenience. What if a machine knows exactly what you are looking for and can also give you the most suitable choices — limited to 3 or 4 maybe? That would be the ideal customer experience. To summarize:

  1. E-commerce websites have too many choices
  2. It time consuming to “search” for what you are looking for
  3. Personal interaction is missing

Who is the User?

Reiterating the product choice for this post — For the sake of validating an effective interaction system let’s narrow down the customer segment to people looking for groceries (Fresh Produce, Dairy & Eggs, Meat & Seafood). These are the top-level categories currently offered by Jet.com Fresh.

Customer Needs

For an effective experiment to validate ideas, let’s list down the three most important needs:

  • As a user, I want to buy groceries quickly
  • As a user, I want to buy groceries from the convenience of my home or office or while commuting
  • As a user, I want the best prices without having to pay extra for membership fees or signing up for rewards cards

Solution

Even though we started with the end solution in mind — Bots. Its not just about building a bot — but ensuring a seamless customer experience. So, based on the needs we are going to come up with a bot which meets the above customer needs. Additionally, the bot will contain features which maintain the mission and experience of Jet.com in the best form possible. After all, we do not want a half-baked product while also keeping the experiment small enough for validation.

The features which stand out on Jet.com which must be part of the solution:

  1. Price drops as more items are added to the cart within a single category typically from the same fulfillment center
  2. No shipping fee if total basket size (oder values) is above $35

Another goal (may be expensive in terms of dev hours) is to personalize the shopping experience — learn from past history, learn from similar orders and recommend best choices.

The following mockups are for a bot built on Facebook Messenger.

Sample User Journey flow for buying Milk on Jet using the Jet.com FreshBot

The above mockups are in the following order row 1, left to right and then continue onto row two left to right. After the last mockup in the second row, the user will be presented with the options in the 2nd mockup. The cycle would continue till the user decide he/she is done with adding the required items to the cart. Once cart is ready, the in-app browser of Messenger can be invoked to acquire credit card details and shipping location. This information should be updated on Jet.com to create appropriate credentials.

For order tracking, the bot can communicate as per the order is processed, shipped and delivered.

Technical Implementation

There are various ways one can build the bot. One of the choices is on the Facebook Messenger platform. So let’s evaluate the options:

  1. Facebook Messenger — Create a page or use an existing page where an app can be added. This app can then be linked to a backend rest API interface to be able to respond to requests from users. The backend app would need to be built from scratch and should be able to handle natural language. There are libraries out there which make this easier but it would require considerable dev effort. Although, there are simpler ways for implementation. Provide a wizard style interface in the bot based on search categories and redirect to in-app browser for additional operations like order quantity, add to cart, account creation etc.
  2. Amazon Lex— Amazon recently announced a platform which allows setting up rules based operations. Based on the initial rules, the engine is able to learn and interact with the user appropriately. This could replace the custom built backend but not completely and would be limited to language processing for starters.
  3. There are multiple other platforms available which allow building and managing bots across various platforms like Messenger, WeChat, Slack, Telegram etc. As such, a bot should be platform agnostic in its ideal form but in the beginning to validate the idea, a quick-and-dirty experiment could be performed using the Facebook Messenger bot. Using the Facebook platform also has advantages where the bot can be promoted by spending advertising dollars which essentially becomes a new channel of user acquisition.

KPI’s and Success Metric

As with any experiment / startup — its critical to measure indicators of success. In case of the shopping bot for Jet.com, the end of funnel conversion where a user successfully places an order is the success metric.

This indicator by itself is probably unfair — so how do we go about truly measuring success?

Let’s start with a hypothesis: Cost of user acquisition who make a purchase on Messenger bot is lower than cost of user acquisition via search engine marketing who make a purchase.

We would now be tracking the number of people who have installed the app and the conversion rate for number of people who have actually purchased an item.

Additionally, we would monitor the drop offs in the user journey when placing an order. This can be used to iterate the user experience which would impact the completion of start-to-end buying action.

Summary

A shopping bot is great start to serve user needs by reducing the barrier to entry to install a new application. Additionally, sending out push notifications is as easy as sending a message. Push notifications are one of the best ways to re-activate a user. Although, building a bot is a difficult task and would require heavy UX involvement even though most of the interaction is via text.

Given a chance, I would definitely try this out and evaluate the outcomes which could be positive or negative.

Additionally, I strongly recommend Jet.com to try and build a bot as they are true disruptors of e-commerce. Also, the speed at which Jet.com moves is brilliant and are not afraid of trying new things especially because there is no legacy structures or code tying them down.

Feel free to provide feedback. I would be more than happy to hear from you.

--

--