Digital transformation and marketing chatbots
Digital transformation is becoming mandatory for businesses. 2020 has taught us how important it is to have a strong online presence. Having a strong online presence comes with its challenges. One of those challenges is customer engagement. There are many good ways to engage with your online visitors, and chatbots are among them. In this blog, I will describe a system design for multichannel chatbots for more advanced use cases.
There are two types of chatbots in use. The first one is rule-based chatbots, the one with fixed conversation flow, where the bot is not responsive to the conversation outside of its scope.
Implementation of rule-based chatbots is relatively simple, and you can do it without any coding. There are many platforms for designing and deploying such bots. Most of these platforms have the same features, and their distinguishing factor would be their price, dashboard types, and integration. In my opinion, rule-based bots are the best choice for simple use cases. The second type is the AI chatbots. These chatbots use Natural Language Processing (NLP) to understand the context and the intent of the user and respond accordingly. Let us talk about AI chatbots in more detail.
If you want to engage with your customers using an AI chatbot, you would need to implement three components: a frontend (website or social media), a backend (the server that handles actions for user requests), and an NLP engine (to understand your customers' messages)
It seems simple enough, isn't it?
If you want to build your NLP engine, I will strongly suggest against it; first, it would cost a lot. Second, there are many third-party solutions for natural language understanding (Google's Dialogflow, Amazon's Alexa, Naver's Clova, RASA open source). These engines are very powerful and are among the best in the world. Let us assume you found out that one of them is perfect for your use case, and you want your chatbot to be empowered by it. Also, you want the same chatbot to be available on multiple channels such as your website, your Facebook, and your Kakao business accounts.
Moreover, you want your bot to handle user requests by accessing data from the database or other internal and external sources. I will describe the high-level architecture of such system. Before we dive in, it is important to mention that there is no single way for your design choice and technology stack selection. Here is the visual of the components of the multichannel bot system.
The Users can access your bot from any channel, such as your Facebook page, webpage chat widget, or Kakao Business Channel. The channel will send the message to your Backend Service for that channel. It is recommended to ensure Authentication from each channel and for all users. After authentication, your backend service can send the user message to the NLP engine for interpretation and access External APIs if the instructions are clear or access the database if needed. The External APIs can be your CRM or any other services that are incorporated with your business. You can use the database to save and retrieve necessary data for the users.
When you send a text to NLP Engine, you will get a response that includes Intents, Contexts, and Entities. Based on those responses, you might perform some action. For example, if the user is asking for some instructions about your product, you might want to send him the product manual for reference. In any case, the response format from NLP Engine is fixed, and it should be converted to the format readable by your channel (Facebook and Kakao have different JSON format for text, images, and other responses). It would help if you handled the conversion in your backend service.
The idea behind microservice architecture is to separate services so that they could scale up and down independently, and downtime of one does not affect the other outside of the scope of their connections. It is recommended to separate Services for each channel, although they can use the same External APIs and database. If you host your services in the cloud, choose a solution to handle resource allocation for you. That way, you will not worry about the number of users accessing each channel simultaneously. Also, the internal services might need to communicate with each other, and it is essential to ensure fast communication options for them. For example, I use Google Cloud App Engine for hosting most of the apps, and so far, it has been a perfect choice.
At PERFORMARS, we build our chatbot marekting solutions and help our clients with their digital transformation. We are always happy to help our clients to solve their digital business issues.