eBay developers recently combined several commonly used technologies, including Lucene search and the Stanford Natural Language Processor, to create Altus Care, a chatbot that provides an instant one-stop support solution for internal eBay Altus users.
Altus is application lifecycle management system that sits on top of eBay's Platform as a Service (PaaS). A core component of the Altus UX, Altus Care uses a chatbot technology to provide instant help and resolve support requests without having to engage support personnel. Eventually, we want to evangelize Altus Care to the rest of eBay development as a general purpose support solution.
Altus Care provides three key features: context-based dynamic FAQ, behavior flow analysis, and interactive Q&A.
- Context-based dynamic FAQ
Altus has dozens of pages, and each page focuses on different functions. Configured in advance, each page maps to one or multiple keywords. Altus Care listens to the user's current page and displays the recommended knowledge article. This feature pushes relevant content to a user in an easy, accessible way.
- Behavior flow analysis
Altus Care listens to the user's current page and captures error codes and messages thrown from back end. If an error is captured, Altus Care will highlight the help document related to the error in the banner. This feature improves user troubleshooting capability.
- Interactive Q&A
If the user still needs help after viewing all the recommended FAQs, they can enter a question and view the result. Two knowledge articles will be displayed with snippets and highlights. When the user clicks the link, they will be redirected to the full article.
Altus Care has allowed us to achieve the following:
- Increased self service: In the last 30 days, we saw 302 clicks on "Report Issue," and 122 were resolved by Altus Care in real time, i.e. 40% of the support requests were resolved by Altus Care without engaging a support contact. Allowing users to help themselves can offer them quicker resolution to their issues.
- Unified support entrance: Altus Care is a one-stop support solution. If it can’t satisfy the user, it will redirect the user to the right support contact. In the last 30 days, 42% of the support workload came from Altus Care. By regulating the support entrance, we offer a consistent user experience and get insights into the areas blocking the users.
How we made it
The Altus Care back end is a chatbot platform that uses search algorithms and Natural Language Understanding (NLU) in its core technology. It’s modular and runs in Raptor production pools, which ensures high availability and reliability. The rich REST APIs streamline on-boarding and easily expand to new domains other than Altus.
Infrastructure and design
Altus Care includes four modules:
- Admin UI: the web console lets administrators easily manage the chatbot lifecycle, including onboard, configure, off-board, and statistics insights.
- Crawler: the service that crawls the knowledge base (KB). The KB source is configurable; it could be JIRA, wiki, GitHub, or a data file. It’s schedulable; it can crawl data at a specified time and date, such as 7 p.m. daily.
- Database: a Redis cluster used as a public storage solution. The KB and domain profile are stored here.
- Back end Service: the most important module. It contains the open API, the search service, and the NLU service.
Altus Care has three data flows:
- Configuration data flow: the domain configuration data from the Admin UI syncs to the crawler and back-end service, respectively
- API calling data flow: API requests from the client (i.e. Altus Care front end) to the back-end service mostly query search
- Data loading/sync flow: the data flow from the crawler to the database to the back-end service is all about the KB and index
We use Lucene as the index and search base library and enrich it. The chatbot handles:
- Synonyms: e.g. prod = production, app = application
- Keyword boosting: e.g. CNAME^4
- Stemming and lemmatization: e.g. failed = fail, pools = pool
We use the Stanford NLP and refine it to identify user intention. In general, the chatbot works out the grammatical structure of a user query and boosts it accordingly. Here is an example of how the chatbot handles a query:
- A user queries “How to create prod pools?”
- The NLU Handler produces a grammar tree.
- The chatbot implements boosting based on the grammar tree and pre-defined rules.
- The chatbot removes stopwords, performs stemming and lemmatization, and implements domain keywords boosting.
- The chatbot handles synonyms.
To understand how the grammar tree works together with pre-defined rule, we can refer to the following chart.
The chatbot supports Altus Care very well and is capable of expanding to more domains. Plus, rich REST APIs enable the following features:
- Domain lifecycle management
- Onboard: domain profile, NLU and KB configuration
- Data manipulation: Insert, update, retrieve, delete operations on the domain KB and index, domain configuration update
- Search: multiple options (Top N, snippets and highlights); feedback
- Statistics and analysis: search history, top queries, normalized query and resolving rate
- Offboard: retire the domain
- Flexible user interface
- A client can call the chatbot API and integrate it with a website or application
- Easy onboard
A pure rule-based or trained chatbot works well for one domain, but needs its rules redefined or retrained to work well for a new domain. Altus Care’s chatbot solution provides a hybrid solution that enables the global optimum, based on a tuned search algorithm and NLU, and also allows domain-configurable attributes taking account of domain specifics. The solution balances domain commonality and specialty and makes on-boarding plug and play.
Altus Care successfully applies chatbot technology to the eBay Platform engineering. It improves the user experience by providing a one-stop support solution and also improves the engineering efficiency by reducing human contact. We recommend Altus Care as a general purpose support solution within eBay and believe it will contribute to internal customer focus in an inventive way.