Picking by Voice with Alexa, Lambda and MongoDB
Detailed architecture with AWS services and MongoDB Collections used
Sample of the Orders collection
Imagunet has been working on process automation for a couple of years now and we witness how our customers struggle with traditional order fulfillment systems or even voice-drive application.
We decided to combine the accuracy of Alexa (Natural Language Processing) NLP capabilities with the flexibility on data structure storage that MongoDB provides to create a new generation of flexible, always-learning and scalable voice-driven order fulfillment platform.
What it does
Our application enables each warehouse staff to login into an Alexa skill which will poll orders from a MongoDB collection. Each item on these orders is then read to the staff and step-by-step confirmations are requested in a natural language.
All of this occurs while the warehouse staff can use both of their hands to accelerate order processing while handling a more "natural" conversation with an application.
How we built it
Every order generated by customers can be uploaded as a JSON document to a MongoDB collection. These orders can be as complex as desired supporting many item sub-categories and quantities variations.
A python-based Lambda function in AWS uses the information stored in each order to provide instructions to warehouse staff via short announcements read by an Alexa Skill, which ask for confirmations on progress and audits the quantity remaining in each inventory position (to provide a second level of accuracy for order processing). These lambda functions can read through any type of JSON data structure to ensure that integration with order reception systems is done faster and more transparently.
As orders are being fulfilled, all the paths to specific items are recorded in a separate collection which can be use to improve times and facilitate order packing based on conditions like items weight, etc.
Each warehouse staff is authenticated and each session progress (as well as duration and performance) is also stored in a dedicated collection.
Challenges we ran into
Making sure that the messages delivered by Alexa were concise and short enough to allow the warehouse staff to move faster and avoid "please, repeat" requests.
Our toughest challenge is to continue to make our voice interaction more user-friendly to reach a broader and more general market of order fulfillment companies.
Accomplishments that we're proud of
Creating various types of Collections (including Capped Collections) to handle User information, Session data and overall order listing.
Having our solution running in a few weeks while getting a MongoDB CE working in a few days within our Well-architected Framework for AWS resources (e.g.: in private subnets with straight-forward connections with lambda services).
Being able to incorporate basic path optimization mechanisms in the order processing functions without sacrificing flexibility on order structure.
What we learned
How easy it is to insert and retrieve data from a MongoDB collection.
What's next for Picking by Voice
We are actively adding support for Spanish (our main market) and we are looking for ways to incorporate Machine Learning techniques for path optimization. We are building the most complete, accurate and cost-effective solution for Order Fulfillment.