One group of virtual assistants includes so-called chatbots, which collect, deliver, or even evaluate information for the user upon request. With the help of chatbot builder tools, such as SDKs or ready-made bot templates, companies can quickly build their own bot with their desired functionalities.
Although chatbots now offer many functions and can provide real added value to companies, they also have their limitations. Not every problem can or should be solved with the help of chatbots. To assess when it makes sense to solve a problem using a chatbot, it is necessary to examine the development process more closely.
Types of Chatbots
Chatbots are divided into two main categories. These include rule-based chatbots on the one hand, and intelligent chatbots on the other. Rule-based chatbots always follow the same pattern. The user is guided through a conversation or process with the help of pre-programmed dialogues and has little room to take other paths in the conversation, as the bot usually only has an answer ready for the topics programmed into it. Additionally, rule-based chatbots are distinguished between proactive & reactive chatbots. Proactive chatbots do not wait for user input but send independent information at regular intervals, for example, the WhatsApp bot from Urlaubspiraten or newsletters from some companies. Reactive chatbots, on the other hand, first wait for user input and, depending on the input, start a specific dialogue or process that they carry out with continuous interaction with the user.
The intelligent chatbot, on the other hand, becomes increasingly smarter with the help of machine learning and tries to react to answers as humanly as possible. This has the advantage that the user does not have to be guided step-by-step. It usually requires no training period, as the bot tries to achieve the same result with similar input and thus provide the appropriate answer for the user. Of course, depending on the data source, it is not as effective at the beginning and requires a large amount of data that it can draw upon to correctly interpret as many sentences and contexts as possible. For this reason, rule-based chatbots are usually chosen for simple and precise tasks, as they can be implemented more quickly and cost-effectively. Intelligent chatbots, for example, are more often used for customer support, as no two customers describe their problem in exactly the same way, but the solution approaches are still very similar. Different users with different problems would overwhelm rule-based chatbots or reduce customer satisfaction, as they are less flexible.
Motivation and Topic Selection
The topic of virtual assistants, especially chatbots, had interested me for a long time, and I always wanted to create my own chatbot. Therefore, I decided to develop a chatbot for the collaboration software Microsoft Teams, which was introduced shortly before the start of my bachelor’s thesis. After much consideration, my colleagues and I developed a practical use case that would support us as software developers in our daily work and become the topic of my bachelor’s thesis.
To properly coordinate our projects and keep track of progress, we use the task management software Teamwork Projects. Teamwork offers various functions and overviews to represent different development methodologies, such as Scrum or Kanban. Each team member has the option to create and group new tasks.
To achieve the highest possible transparency, every client also has access to the projects created for them and can thus retrieve progress and associated efforts at any time. Additionally, the recorded times are stored in our self-developed time management tool. Based on this data, the HR (=Human Resources) department can create invoices and has a better overview for resource planning. Booking project times therefore becomes a somewhat more complex process and costs the developer valuable time that is then missing from the actual project.
In my bachelor’s thesis, a chatbot is to be developed with the help of the so-called Microsoft Bot Framework, which, with as little user input as possible, creates and saves the desired times in Teamwork, as well as in the in-house time management tool. Additionally, during the development process, the possibilities and limitations of chatbots are to be identified, in order to recognize further opportunities for process optimization based on the resulting experiences.
The Microsoft Bot Framework
The Microsoft Bot Framework SDK offers tools and functions for developing custom chatbot services that react to specific activities in one or more chats. Using so-called Bot Adapters, various bot services can be integrated into different collaboration software.
Source: https://azure.microsoft.com/de-de/services/bot-service/
Each Bot Adapter communicates with at least one bot by forwarding every activity, such as a message or the addition of a user in a channel, as an event to the bot. The developer can intercept these events in the service and dictate how the bot should react to specific events.
Result of My Work
For my bot, I chose a rule-based reactive chatbot because the user must first select for which system they want to create a time entry and in the subsequent process must make various, precisely defined inputs. Therefore, it is necessary to guide the user step-by-step through the dialogue and specifically ask for the information the bot needs to create the entries.
The finished chatbot is now able to authenticate the user in both systems and then ask in which system they want to book time. In the case of a ticket system like Teamwork, the user is presented with a selection of tickets assigned to them. For each ticket, it can now be specified in a single overview during which period work was done and what was completed during that time. Afterward, the data is automatically booked to the selected tickets in Teamwork and summarized in the Digatus time management tool. Thus, the user can book their times directly in the Teams chat without opening the browser.
The bot and its service are hosted in Azure. This has the advantage that configuration and deployment processes are significantly faster and simpler than usual due to the deep integration of the development environment and services. In addition to registration in Microsoft Teams, the bot can also be registered for other platforms such as Slack, to offer users greater flexibility in tool selection. Another important point is access to our Active Directory to quickly and easily authenticate the user based on their login data before the actual time booking process begins. Finally, various telemetry data regarding errors, performance, and user-friendliness of the app are collected and evaluated with the help of Azure Application Insights. This allows errors to be detected more quickly or performance to be optimized.
Conclusion
The hype around chatbots has been ongoing for about 5 years now, and although in some areas the reality has set in, and it’s clear that chatbots don’t always have a meaningful purpose, they are still successfully used in various sectors – whether in customer support or in home automation with Alexa & Google Home. Especially Facebook and WhatsApp are increasingly relying on virtual assistants, including in the field of education. With the help of WhatsApp Education Bots, people in countries with very poor network coverage can learn daily and expand their educational level. However, chatbots still have a lot to learn in the field of artificial intelligence, and their current capabilities are still considered rather sobering. The idea of conducting a natural conversation between human and machine still seems a long way off.
The successful integration of my chatbot now saves my colleagues and me a few minutes of valuable working time daily and has been very well received by colleagues. Personally, at the end of my bachelor’s thesis, I not only gained extensive experience in Azure and the Microsoft Bot Framework but also learned a great deal about the different types of chatbots and their applications. Additionally, I acquired new knowledge in the ASP.NET web framework, as well as the C# programming language.

