Support Bot for Online Retailing using Natural Language Processing


Minimization of telephone waiting times as well as relief of support employees


Implementation of an intelligent chat bot within support


Python, Keras, Docker



Most of the work of a support employee is complaint management. What if we could relieve them of this burden and give them more time to focus on specific requests while offering the end user shorter waiting times? This was the wish of one of our customers. He wanted a new system that could handle more requests per minute with the same number of employees, and thus achieve greater efficiency for each employee.


The client operates an online mail order business and employs approx. 2,000 people, of whom 450 work in support.

For reasons of clarity, we use “client” when we talk about the retailer and “customer” when we talk about the end customers of the mail order company.


First, the current situation was assessed. There are several ways to reach the retailer. The traditional mail, which comes from mostly older customers; The telephone line, which is mainly used by women; The contact form on the website, as well as a support chat, which is also accessible via the website.

The complaints received by mail are essentially outside the scope of our project, so they are not part of the consideration.

Much more interesting is the telephone support hotline. Our joint analysis found the greatest potential for improvement here. There are too many customers who encounter too few employees. One option would be to refer the less frustrated callers to another channel. Waiting times of over 30 minutes are not uncommon during peak periods. Many of the customers who jumped off the page use the contact form to leave angry complaint e-mails. Unfortunately customers can be calmed over these contact possibilities only with difficulty or not at all. In this case there is another difficulty: The mixture of complaints and “normal” support requests.

The additional live chat implemented on the website gives the client the opportunity to significantly reduce the time until the first reaction, but the number of clerks remains the same.

Our idea to reduce the number of requests to each individual employee was to create a chatbot that would first filter requests before passing them to a human supporter. In this way, the supporter already knows what the problem is and can react much faster, which in turn reduces the time spent per customer and maximizes the output of a single employee. Ideally, many questions can already be answered without the need for a support representative to take action.

We created a chat bot that filters requests in general topics and in a second step in subcategories (e.g. “Order→Status”). We made sure that no buttons were allowed to be used for answering, as the client was worried that many customers would find this behaviour deterrent and would use the contact form. Thus, special importance was attached to the individual text input by the customer.

Therefore, a chatbot using Natural Language Processing (NLP) was the closest approach. This kind of bot behaves like a real person and filters information out of whole sentences (e.g. “I want to be informed about the status of my order”). This technique uses recurrent neural networks to identify the intention in a sentence and then processes it into the required results. To retrieve missing information, such as entering an order ID, predefined questions are stored and sent to the customer.

In this development step, the bot received a message from the customer, added some information, such as the category this request falls into, requested missing information and then forwarded it to a human supporter. This allows the human supporter to read all the necessary information faster instead of asking the customer himself. This saves a lot of time on both sides.

But why stop here?

We already have a bot that can understand and identify the customer’s problem. An automatic search for FAQ entries should be rather easy to realize. It turned out that customers are very happy to receive links to FAQ articles via chat. The FAQ advances by several places in the most visited page statistics. So far it was quite cumbersome to search within the FAQ for exact problems. With the Chat Bot, which automatically interprets the request and searches the FAQ for similar tags, it suddenly becomes very easy. In addition, we went one step further by formulating the article as an answer for the customer. This means that the chat bot searches for the topic in the FAQ and after it has found a suitable hit, this answer is reworked according to the question and presented to the customer directly in the chat. For example, if there is an article in the FAQ that says: “Purchased items can only be returned within two weeks (14 days) to get a refund” and the user asks: “Can I still send it back? Assuming the order ID has already been entered, the answer might look like this: “Yes, you can return the item to receive a refund. However, this must be done by Thursday at the latest”. The customer receives a concise answer without having to search through long FAQ articles. In addition, the bot can automatically process standardized answers, such as an order status request or shipping data.

If the given answer is not correct or helpful enough or if there are signs of a disgruntlement, the customer has the possibility to chat with a real person at any time.

We developed a chat bot that handles many customer requests without ever having to contact a support representative. However, as this is a very unsupervised method, there must be logs. Fortunately, the client already has a well-developed ticket system that it uses for all support requests. MAI was created as a new user within this system and connected to it. This ensures that subsequent quality controls and system improvements can be carried out.


We have significantly reduced the number of tickets and thus the workload of the client. Our client now manages to receive many more requests with the same number of employees, which reduces the average waiting time at the hotline to 2 minutes. The total number of contact form requests decreased by 60% and the requests telling our client that the waiting time on the phone was too long have largely disappeared. The customers who were asked immediately after the chat how satisfied they were with their request handling rated our bot with 4.3/5 stars. The most common complaint was that the response phrases were not always perfectly worded. In order to fix this small flaw we are still working on the system.