What's inside Alena: disassembling the chatbot bone by bone





Those who use the M.Video mobile application or website have probably noticed the presence of a chatbot in them. No, we are not talking about online chat, which almost every website now has that sells something. We are talking specifically about a chatbot - a system that not only keeps the client, but accompanies him, helps, consults, advises. And all this is done not by a contact center employee, but by artificial intelligence.



A lot of people don't like chatbots . It is rather a matter of psychology. It is more convenient for a person to communicate with a person, a unique personality, and not a machine. As a result, a sharp negative assessment appears, which, like any extreme, is not entirely true, but has the right to life.



We believe that every opinion is important, but at the same time there are objective markers (CSI, correctness of the scenario, etc.) that show how quickly and efficiently the chatbot works and how it copes with its tasks. We rely on these indicators. And the further we develop the chatbot, the more benefits it brings to customers.



Our bot's name is Alena. Today, it processes all incoming customer messages that come through the website, mobile application and messengers Telegram, WhatsApp and Viber. Most often, through the chatbot, customers ask questions related to the purchase of goods, setting up their profile and delivering orders. About 150 thousand calls are processed per month, and about 40% of them are completely "closed" by Alena.



Why does a retailer need a chatbot?



First of all, the need for it determined the need to reduce the workload on staff. The "bandwidth" of the contact center is limited and you need a kind of cushion that will allow you to control its workload.



In addition, we strive to simplify the interaction of customers with the company in all situations related to the purchase and service - the availability of goods, the status of delivery, order or appeal, the rules of promotions and loyalty programs, the procedure for returning or repairing. Alena is already deciding these questions herself.



We are expanding the scenario base of service requests (credit, refund, exchange, store opening hours, etc.) and create new integrations that are useful in terms of customer experience. For example, we will soon launch direct communication with a specific store.



It goes beyond the classic chatbot, but is based on it. As for the services related to the assortment, we are building a recommendation system in the bot's scenarios, we will introduce the possibility of placing an order.



And, of course, a system for evaluating the work of the bot is developing. At the same time, we are primarily interested in how it interacts with various internal systems and services of the company.



Our idea of ​​the "ideal" chatbot



Usually, in such cases, they cite the example of a chatbot that works for Amazon, and they say that the ideal result would be the same bot, only with slightly less capabilities. This is a highly specialized assistant who can, in a minimum number of messages, give the client a recommendation in each situation on what he needs to do. Of course, never making mistakes.



It is interesting for us to work out not only the service functions of the bot, which will reduce the load on the contact center, but also to interest the client to continue communicating with the company, make purchases, and hook him with an interesting offer. This is one of the global goals of the company, for the achievement of which chatbots can work quite successfully.



A separate block is the functionality of the selection assistant. It relies on the capabilities of both the chatbot itself and the core of the system, which is designed to select a product according to specified characteristics. The script may look different. First, the client comes with a need for a device, voices its characteristics, the bot clarifies them with the user and offers several positions, from which the final choice is made.



There are other scenarios, with a slightly modified algorithm. For example, a customer might ask a question about a product that is currently out of stock. In this case, an alternative can be offered that is similar in characteristics.







What's inside the bot



The architecture of our bot is based on several platforms: a communication platform based on Edna, a dialogue automation system Just AI, an integration module that ensures the interaction of components, and blocks of our internal IT landscape: business services of a micro-service platform and NLP services that we develop independently ...



Vendor solutions, Edna and Just AI , are not used in their pure form, there are layers for each of these services. One, technical one, we developed ourselves, it serves for monitoring dialogs in real time, enriching them with information necessary for the bot (about the client, useful products, etc.).



The second is responsible for the operation of the bot in specialized scripting mode. For example, recommendation systems have a set of services that accepts an order from a bot, requests characteristics from databases, etc.



The Edna communication platform is responsible for the presence of the chatbot in different channels (website, mobile application, messengers). This is the agent handling customer communication.



After the client's request is received in the chat, an intermediate, Just AI-based integration platform is activated. It is supplemented by the logic that was developed by our forces. This is a set of microservices that analyze the request and determine which internal systems the bot needs to access (this can be CRM, various logistics systems, custom baskets, etc.), through which interface to do this.



On the basis of this understanding, the initial information received from the client is enriched for the bot. To put it simply, this module defines a set of scenarios that correspond to a client request and, based on this, a set of interfaces and systems with which the bot needs to interact. Then the bot is provided with a set of template responses for the client, which it uses in the further dialogue.



Scripts



A very important part of a chatbot is the scenarios according to which client calls are processed. They form several scenario groups based on common topics of addresses. There are only six of them, they are all related to the subject entity on which the client wants to receive information: orders, goods, loyalty program, stores and several types of service requests.



Each group has at least two scenarios for processing a client request. For example, the most numerous group is "Order". It includes such scenarios as "Order status", "Order change", "Reserve extension", "Checkout", "Cancellation". Of course, the existing set of scenarios is constantly being supplemented, new scenario groups appear as new processes are introduced in the company.



Initially, script groups were scripts at all, which gradually became more complicated and shared. For example, at the very beginning of our work, we developed three scenarios: "Order status", "Bonus rubles balance" and a general help scenario, which grouped answers to questions about using the application and the site.



New scenarios appear quite often. We see the volume of hits that do not "fall" into scripts or even script groups, and we try to minimize it. Today, a bot can meaningfully communicate with a client in 60% of cases. Our goal is to bring this figure to 80% by the end of the year.



In practice, it looks like this. At the initial request of the client, a scenario group is determined for further dialogue. Then the bot asks the client several questions, the answers to which he (the bot) knows for sure. In essence, the client is asked to choose one of the scenarios included in the group. If the scenario chosen by the client has already been developed, communication continues with the bot. If not, the request is forwarded to the call center operator.



How a bot helps you select products



Separately, it is worth noting a group of scenarios for the selection of goods - one of the most important and complex. While service scenarios improve the customer experience, simplify interactions and reduce the load on the contact center, then here we are dealing directly with conversion and, as a result, with sales.



The main difficulty is for the bot to “understand” the client. To realize this “understanding”, it is necessary to determine and classify the customer's intention by replica, to recognize the product category, product characteristics and required values.



At the same time, when communicating with the bot, customers use their usual vocabulary - terms that do not agree well with the reference, tabular data of product specifications. Accordingly, one of the additional tasks that we solve is the automatic extraction of key user terms and the "bunch" of these two dictionaries.



Another problem that arises during the selection is the construction of the optimal dialogue script. It can be solved in different ways and in different ways to approach the criterion of optimality itself. For example, proceed from minimizing the number of additional questions. However, in this case, some questions for the client may seem strange and unexpected.



So far, we have settled on the option of using the category characteristics importance list obtained by semi-supervised methods on the corpus of customer testimonials about products, which, of course, has other uses as well. In this approach, we can be sure that we clarified with the client all the details that are really important from the point of view of the subsequent operation of the product.



Forming the final list of suitable products is also not an easy task. To begin with, you need to build a final score for products, taking into account the likelihood that the extracted terms belong to the product and characteristics.



After that, clarify the list based on the availability of goods in the region and possible methods of receipt (delivery, self-pickup from different points) by calling the corresponding modules of the microservice platform. Additionally, as an optional step, you can refer to other ml-services to recommend accessories / consumables).



In fact, the final chatbot will never be ready. It can be improved endlessly. Having developed the next functionality, we immediately take on a new one, and this process will certainly continue constantly. This means that we will periodically talk about what we are doing.



For example, about the development and scaling of NLU modules (natural language understanding), NLG technologies (natural language generation), or personalizing the interaction of a bot with clients. Alena is a very versatile girl and constantly throws up interesting stories.



If you are interested in other details, then applications are accepted in the comments.



All Articles