Using IoT to reorder household products
Subscriptions are one tactic to keep household essentials—like toiletries and cleaning supplies—in stock, but since delivery happens on a fixed schedule, it’s easy to end up with too little or too much. Enter Target Fetch, a service that enables smart devices to measure the stock of select essentials as they’re being used, triggering a reorder at the right time.
As Lead UX Designer, I defined the information architecture and corresponding user flows that support the tracking, reporting, and reordering of a variety of devices and replenishment products. I also designed the app’s interface and participated in the planning, execution, and analysis of qualitative research efforts.
Before beginning the design and dev work, we needed to understand how and why people use subscriptions today. We surveyed 300+ people who had subscriptions for essentials, conducting follow-up interviews with ten participants to build context. Three primary goals surfaced:
- Replenish inventory
- Offload the cognitive burden of tracking a household shopping list
- Reduce unplanned trips to the store
For several users, however, the task of tracking a list had been replaced with the task of managing a subscription. These participants recalled instances when a regular shipment had arrived while they still had a substantial stock at home. As a result, they closely monitored their inventory and subscriptions so they could intervene and avoid paying for products they didn’t need. This group informed our primary persona, and we believed that inventory-based subscriptions could offer peace of mind.
While our team accepted that Fetch wouldn’t address every essential or smart device at launch, user research and business intelligence showed that subscriptions had the most value when several types of essentials were available. With this in mind, the platform was designed to be flexible from the outset. I worked with the product owner and engineers to establish common dependencies to enable any device to reorder:
- user account
- device type
- replenishment product
- product status
- payment & shipping
- dashboard – inventory/device/shipment status
Let’s look at how users interact with core components--device type, replenishment product, and product status--in the Fetch app. Note: The Fetch platform supports third-party device integrations, but for the sake of simplicity, I'm going to focus on the Fetch hero devices.
Fetch’s three hero devices include smart versions of a paper towel holder, a toilet paper spindle, and a liquid soap dispenser. Sensors inside the devices measure the corresponding essentials as they are used and report this information to the app.
Once our first prototype devices were ready, we launched a 3-month, in-home study with eight families. We observed that the devices’ lack of lights, buttons, or other state indicators caused people to worry about whether everything was working. Adding these indicators to the hardware would increase costs, so I found opportunities to increase transparency via the app and communication UX.
Device setup in the app begins with users selecting their device type. An animation appears on screen as the app searches for the device. Once identified, the app shows a card with the device’s unique ID, information that can be verified on the physical device. If the app is unable to connect to the device during setup, an error message alerts the user and offers troubleshooting recommendations.
I also designed flows to support users in understanding their devices after setup is complete. It’s important for devices to sync frequently with the app in order to maintain an accurate record of a user’s inventory, so I made the most recent sync time visible on the device details screen, and I allowed users to manually sync with a button on the same page. In the event that a device hasn’t synced with the app in a while, an email will be sent alerting the user. Finally, when the device's firmware needs to be updated, emails and in-app messaging help users stay informed and do their part.
After setting up their device, users select the product they want to be shipped. It’s possible to have dozens--and occassionally hundreds--of product options within one essentials category, so tools to refine the results are necessary. At the time, Target’s search API often included unrelated results in its responses, and engineering a custom solution would be a huge technical endeavor. To validate what to build, I created paper prototypes and conducted a think-aloud exercise.
Eight people viewed a mockup of the landing page and were probed on how they would find their favorite essential products. Of that group, 5 testers preferred filters, 2 preferred search, and 1 preferred sort, and the most important considerations overall were brand, size, and sales. I gave the engineering team recommendations based on these findings, and the revised implementation eliminates the search bar, enables filtering by brand, and addresses pricing and sales through sort options. I also made improvements to the presentation of product information, lengthy product names and small photos were hard to decipher
Proceeding to the Product Status section, users enter information about their inventory, which determines when an order is triggered. To ensure this section was clear, we did a study to learn how people described their stock—when they used whole versus partial units, how they assessed opaque containers, etc. The findings allowed me to standardize how inventory is communicated in the UI, regardless of a product’s category.
Returning users can view Fetch’s accounting of their inventory from the app’s home screen, and if they see an error in the record, they can edit it on the inventory details screen.
Anticipating the measurements would be a little off in the beginning, I incorporated opportunities to finetune the readings. I created a communication-focused user journey that proactively reports these measurements via email and asks them to verify.
Emails and push notifications alert the user about 48 hours before a shipment is processed, enabling the user a window to cancel an order if the timing is off. One week after setup, users are sent an email showing the current status level on record, and if the number doesn’t reflect reality, users can choose to update.
Restocking essentials is the explicit purpose of Fetch, but the aspiration to reduce one’s day-to-day cognitive load makes the service compelling. One of the key things I learned in this project is that transparency and communication are just as important to earning users’ trust as fulfilling the value proposition of a product.