Challenges Of Chatbot Development

So, You Think You Want A Chatbot?

Chatbot development is no easy process, so what questions should you ask yourself before you start?

Coreon is a part of CEFAT4Cities Action, a project co-financed by the Connecting Europe Facility of the European Union that targets the interaction of EU residents and businesses with smart city services. One of its outcomes is an open multilingual linked data repository and a pilot chatbot project for the Vienna Business Agency, which leverages the created resource.

In a small series of blog posts, we will share our experiences building a multilingual chatbot. We will demonstrate how to overcome the language gap of local public services on a European scale, thus reducing red tape for citizens and businesses. In this opening article we steer clear of concrete frameworks and instead focus on the challenges of chatbot development.

Before You Summon The Engineers…

Dialogue is a natural way for humans to interact — we express ideas and share information, convey mood and engage in debates via conversational exchange. 

Chatbots, also known as ‘conversational agents’ or ‘conversational assistants’, are designed to mimic this behavior, letting us interact with digital services as if they were a real person. With the latest tech advances, we regularly come across conversational agents — booking tickets, ordering food, obtaining directions, managing bank accounts, receiving assistance from Siri and Alexa — the list goes on!

Challenges Of Chatbot Development

Here are some key (although they may appear trivial at first) questions you should ask your project manager before starting out on the development of a new chatbot:

  • What do you want to achieve with the bot? What are the limits of its capabilities? What tasks is it supposed to be tackling? Will it be of a transactional nature or should it rather provide advice, assist with search and the retrieval of information, or combine all of these capabilities in one?
  • What audience is this bot targeting? Are you interested in deploying it internally for a limited audience, or will it be used broadly, e.g., as part of customer care? Which languages does the audience speak, or which are they comfortable working with?
  • How do you capture and maintain the knowledge the bot is supposed to provide to the user?
  • What features does your Minimum Viable Product incorporate, regardless of the framework? Is the bot’s appearance important? Do you need it to have a specific personality, or would you rather keep it neutral?

You get the idea. Once the conceptual foundation is there, it’s time to dive deeper into the sea of frameworks and features.

What Are Chatbots Made Of?

As humans, we barely consciously pay attention to or think too much about sub-processes firing in our brain when engaging in a conversation.

Depending on the technology used, chatbots can vary from simple interactive FAQ-like programs to vastly adaptive, sophisticated digital assistants that can handle complex scenarios and offer a high degree of personalization due to their ability to learn and evolve.

There are a few key concepts that engineers rely on when they develop a chatbot. As humans, we barely consciously pay attention to or think too much about sub-processes firing in our brain when engaging in a conversation. As NLP engineers of a solution that aims to imitate human behavior, however, we should have a clear division of these sub-processes. A chatbot should not only be able to ‘digest’ text or voice input from a user, but also find a way to ‘understand’ it by inferring the semantics of the user’s intent and generating an appropriate answer.

To recognise the needs and goals of the user, modern chatbot frameworks rely on Natural Language Processing (NLP), Natural Language Understanding (NLU) and Natural Language Generation (NLG).

NLP is responsible for parsing user’s input, or utterances; NLU identifies and extracts its intents (goals) and entities (specific concepts like locations, product names, companies, — anything really), while an NLG component generates relevant responses to the user.

So You Think You Want A Chatbot

When it comes to bot development activities, there is a variety of closed- and open-source tools and frameworks to choose from. This choice is already a challenge of its own.

Before settling for a specific solution that can accomplish your primary goal, it’s helpful to analyze both the short- and long-term project objectives:

  • Have you chosen your features wisely? Are the essential ones mature enough for the project?
  • Are there framework-bound scalability limitations in case of project growth?
  • Can you easily integrate additional building blocks offered by third-party providers?
  • Does the framework satisfy your deployment and security requirements? Are they compliant with your client’s demands? Have these demands been clearly defined (e.g. on-premise vs. cloud-based solution, specific feature requirements, containerization)?
  • What kind of staff and how much of their capacity is needed to deploy and maintain the deployed solution?

Another chunk of pre-implementation work is associated with domain knowledge — proprietary domain experts and NLP engineers are rarely the same people, so coming up with a process that ensures a smooth cooperation in knowledge transfer can save a lot of time and hustle. It is also a good chance to clarify conversational limitations of the future chatbot: does it need to cover chit-chat or support human handover, make API calls and pull up information on request? Does it need to be context-aware, or is it enough to support one conversational turn? You don’t want to fully draft your bot’s behavior but rather establish its foundation and mark the boundaries.

Once these questions are clarified, you can roll up your sleeves and start coding. The process tends to be highly iterative — despite all the buzz around AI, you need conversational data from real users from the early stages onwards if you want to design a human-like conversation flow and build a robust virtual assistant.

The rule of thumb is to share your prototype with test users early and continuously collect data from test users so you can adapt the bot’s logic, annotate utterances, and retrain NLU models with the updated real data. And once your assistant is mature enough, you are ready to deploy! 🚀

Stay tuned for implementation details on the multilingual abilities of SmartBot, our chatbot for the Vienna Business Agency, as well as some nifty tricks to ensure consistence in a bot’s language abilities, no matter your language of choice.

*Feature Image: Robot Hand Photo created by –

Alena Vasilevich
Alena Vasilevich

Alena Vasilevich is an NLP engineer at Coreon. She focuses on hands-on NLP and pragmatic data engineering, and drives scientific publications. Having dived into trees and graphs, she concentrates on leveraging structured data in typical NLP scenarios.
Alena's interests revolve around multilingual NLP, conversational AI, knowledge graphs, and all things Python.