TurboTax's Archie
Archie is a friendly tax expert who is with you all year long, helping you understand and take care of your financial well-being. He is a chatbot connected to various services and knowledge bases that can make sure you understand money and tax situations as they happen.
And that was the brief that we started with as creative team that included two developers and two designers. To develop a tool that would allow TurboTax to build relationships with their customers all year long rather than as one urgent, anxiety-filled sprint per year in tax season.
We designed Archie to be a natural language (NL) interface that is both delightful to interact with as well as useful at the right time and place. So he can tell jokes but he can also notice if you're on a business trip and help you record your receipt, for example.
NL interfaces are powerful because everyone already understands natural language. But they are a challenge to design and develop because even state of the art NL algorithms fall well short of the language abilities of people. And to make things worse, when NL interfaces fail, people don't usually understand why or how because these types of interfaces don't provide much transparency into the mechanics of how they work. So with this in mind, we focused hard on making an interface that makes sure you understand what you can say at all times and if there is a disconnect, can directly address and repair that miscommunication.
With the help of writers, we developed a dialog system that uses trees of dialog for defining everything Archie can possibly say, pattern matching for matching incoming language forms within the context of the current overarching conversation, and a probabilistic parser to decipher things you say as nouns and verbs so that they can be used for matching. We built most of our service in Python. However, we used Clojure to define tax rules and we used Wit.ai (since bought by Facebook) for its probabilistic parser and handy interface for prototyping new dialogs.
My role in this project spanned concepting, researching and introducing the field of Natural Language Understanding based interfaces to my teammates, prototyping, and connecting our design considerations to our natural language capabilities in production code. I also managed secondary and primary research in the domain of taxes and finances. This involved a whole lot of digesting information about our target audiences (for this prototype we focused on simple filers and freelancers who run a home office) and organizing and interviewing tax experts.