A powerful integrated chatbot solution for Adobe Experience Manager
In this article, you will learn about our chatbot management integration inside Adobe Experience Manager (AEM).
The article is specific to the integration into AEM, but the concepts are also applicable to other content management systems.
We will introduce the core principles of how an AI chatbot works, is maintained, and what advantages an integration into AEM has compared to direct usage of a framework. We will also discuss architecture for integration into enterprise environments.
Are you interested in integrating a robust chatbot solution in your current Adobe Experience Manager? You’ve come to the right place.
What is a chatbot?
A chatbot is a tool which automates conversations between website visitors and companies. It’s based on the two parts: “chat” and “bot”.
The “chat” is the user interface which enables a (natural) dialog between the customer and the company. Typically, these interfaces enable the communication between humans (human-human dialog, also known as live chat).
The “bot” describes the automatization by software. Instead of operators, a machine processes the requests.
This results in human-machine communication. With the combination of chat and bot, we have a tool that’s always available for customer communication, is scalable, and provides consistent responses to all users.
Natural Language Processing
In recent years, chatbots have gained momentum. The technical background of chatbots is Natural Language Processing (NLP). A research field which is decades old.
The Wikipedia article about NLP is a good entry point to get a first overview of the topic.
We introduce the most important terms here:
- Natural Language Understanding (NLU): NLU converts text (phrases) to a formal representation, which is processable by machines. It links natural language to semantics.
- Natural Language Generation (NLG): Is the process of converting information from machines into human readable text.
- Intent: An intent is the goal the user wants to reach with a given phrase. Multiple phrases can have the same user intention and therefore map to the same intent. Intents build the basis of semantics a chatbot can understand.
- Entities: Entities are “objects” within phrases. These can be physical objects, like e.g. house, but also descriptive things, e.g. a color.
Core principles of an AI chatbot
AI chatbots enable the user to ask questions in their own natural language. From these phrases, chatbots predict user intention.
To do so, they are trained with example phrases and the corresponding intention. The AI learns a model for this prediction. This enables the AI to understand user intention, even for unseen phrases.
Given the intention, an AI chatbot can process tasks, ask for further information, and provide a response to the user. The response can be text, image, link or whatever is suitable for the given case.
An AI chatbot does not generate any responses itself. It must be guided by a human which provides content that the AI chatbot uses as response.
To improve the system, it requires real world training data. This is why while in use, real phrases should be labelled (assigning the intention) and the system retrained to improve over time.
Various frameworks offer handling of contexts. For most frameworks this is done by assigning a context to the intent.
However, e.g. Rasa, an open source machine learning framework, does context handling by machine learning of given story flows.
Such differences need to be respected when using and linking to any chatbot framework.
Why combine conversational user interfaces and CMS?
Basically, all chatbot frameworks offer a user interface for managing the chatbot.
In past projects, such as this insurance bot, we realized that these interfaces do not provide the best solution for larger enterprise projects for the following reasons: the UI of chatbot frameworks mostly are not suitable for editors, integration into environments of large companies can be complex, and re-use of content is missing.
A tool for the marketing team
Chatbot projects are driven by the business, e.g. marketing teams.
Technical teams are responsible for implementation, however, they mostly lack knowledge about business details. Therefore, designing the use cases and maintaining a chatbot is not the responsibility of technical teams.
Most likely the team responsible for website content will maintain the chatbot. These teams are used to working with a CMS optimized for users without deep technical expertise. Most chatbot frameworks tend to be designed for technical experts.
Impact of enterprise environments
For larger enterprises the environment in which a chatbot must run can have great impact.
Often specific rules and standards must be fulfilled concerning security, load balancing, privacy and more. Plus, not every system is allowed to communicate with all other systems due to architectural constraints.
These requirements make it difficult and time consuming to roll out an AI chatbot within larger enterprises, especially if the system must be able to access business resources like a CRM. Additionally, topics like data sovereignty and privacy are crucial.
To stay flexible and independent in such complex environments it’s essential to use a decoupled architecture. This also prevents getting locked in by any third party framework.
Most AI chatbot frameworks offer webhooks on cloud platforms where logics for the AI chatbot can be embedded easily.
However, with the requirement of full control on all information it makes sense to build a central component that handles all logic.
It’s reasonable to place all logic in the CMS, because the chat itself is delivered by the website. Usually, all information which the chatbot uses and returns to the user is required in some place on the website too. The CMS therefore typically has access to all required systems.
CMS and websites
Website editing has been driven by CMS with strong WYSIWYG editors for decades.
This enables authors and decision makers to judge the resulting sites visually, fast and intuitively. It’s out of discussion that authors write plain text or source code to generate new content.
Chatbots are a substantial part of modern websites. The visitor does not differentiate between filling out a form or using a chatbot, both are delivered by the website and therefore perceived as part of it.
Because the user does not make any difference, it’s crucial that the chatbot is following corporate identity, integrated in the same processes, and fulfills quality standards of the website.
Long texts, picture sizes etc. can have negative impact when using a chatbot. These pitfalls can be prevented if a WYSIWYG editor is also available for the chatbot to align look and feel.
Besides the visual advantages, the usage of a CMS for the chatbot adds benefits like tracking, measuring journey performances etc. These are all typical features or add-ons of an enterprise CMS.
Chatbots are content
We are convinced that chatbots are strongly linked to content for the following reasons:
- Chatbots respond with content: the user receives an answer which is not logics or algorithms but manually maintained content.
- Chatbots need data (content) for learning: training data is strongly linked to the content of the website, as most user stories will be reflected/answered somewhere on the website.
- Authors will be responsible for maintaining any chatbots: authors – who are responsible for content – will also be responsible for chatbot management.
Benefits for AEM users
Thanks to a full AEM integration you will be able to develop and use AEM components as usual.
This enables you to share workload with website development teams and benefit from the expert knowledge available there.
Content management is critical. To ensure reduced maintenance, content reuse speeds up the go live and resolves the issue of content duplication.
Thanks to AEM Content Fragments and the usage of components for chatbot responses you can share content between your website and chatbot. Additionally, you can still build specific components for different channels (e.g. website, mobile and chatbot).
Personalization is key in modern information systems. Tailoring to specific audiences enables completely new experiences.
You can benefit from the full power of tailoring content for specific user groups with Adobe Marketing Cloud, because of the availability of experience fragments for chatbot responses.
In contrast to a rigid API of a framework, the integration into AEM enables full customization of all parts of your chatbot management and chat processes.
It allows you to keep the corporate identity, integrate additional processes, and it offers flexibility.
Multi Tenant Capability
The built-in blueprint feature can be used to build chatbots for website tenants (e.g. country sites) in several languages. A default set of chatbot data can be created, re-used and customized by the tenants.
The fine granular permission model allows building different teams which are responsible for sub topics. The powerful workflow engine can be used to implement approval steps and more.
Insights into our chatbot module within AEM
We implemented the full control of a Dialogflow chatbot via AEM. To simplify usage, we followed the AEM concepts. We manage all chatbot data structured in pages.
The main elements to manage are intents and entities. We integrated the management of real world data collected from chatbot usage as well. This enables fast and easy maintenance of the chatbot after go live.
The following figure illustrates the page structure visible in AEM:
We follow the AEM concepts for the page structure which enables us to manage multiple chatbot projects and in multiple languages.
Intent and entity pages can also be grouped into directories to simplify the logical organization by humans. Intent pages can build a tree structure which depicts happy paths typically designed in conceptions.
The creation and editing of intents and entities is based on ordinary AEM features, like page and component creation. To structure the entire workflows of authors we use page templates to guide them.
To simplify maintenance we put common tasks into focus. Configuration and initial setup of intents and entities is shifted to the background. It’s only visible (rendered) where an informative character is given.
The intent page provides customization of the example phrases for the NLU but also of responses.
Configuration of (required) parameters, including prompts, takes place here. Additionally, all NLU specific intent configurations are done via component settings.
The linking of implemented business logics to the intent is feasible as well.
Because the same components are used for chat configuration and usage, the authors get the look and feel of dialog/responses right away.
On the entity page the author edits entities and synonyms. All NLU framework specific configuration is hidden and available via component configuration.
Synchronization (AEM as master) to Dialogflow is done by a simple click, as for intent pages too.
Training data page
The training data page displays all data processed by the NLU framework.
Authors can add new phrases to intents and improve the system or just delete unrequired phrases.
To simplify workflows, filtering of the intent (e.g. unmatched phrases which triggered the fallback) or of the confidence of the prediction (star rating) is possible.
This enables authors to process real world phrases fast and structured. The implementation as AEM component allows to customize the process even for specific requirements.
We suggest an architecture to decouple all different systems and to enable full control over all processes and data centrally.
This puts the concept of a central business facade into focus. The use of AEM as a central business facade component is indicated because the content of the chatbot is managed by AEM.
A high-level view on the used architecture is shown below. To enable flexibility, the central component defines APIs to attach the real implementations of the different modules, e.g. a search engine module.
To put a focus on privacy and data governity, we differentiate between the end user, internal environment, and third parties.
With the central AEM component we have full control and can send as much information as required, but as little information as possible, to other modules (including third parties, e.g. external services like Google Dialogflow).
For instance, we can keep responses internal without sharing them with a NLU service.
Because AEM is used as a central component, other services used by the website can be integrated into the chatbot easily.
As all processes are fully integrated into AEM, it simplifies following the full journey of website users and provides better services for them.
Thanks to our experience and the available modules, a basic setup and implementation of our solution is feasible within a few sprints. This allows us to realize first experiences with limited effort and in reasonable time.
- Chatbots are content: a chatbot is only as good as its content. Content is key – not only for training but also for responses.
- Content management systems fit chatbots: AEM can play a central role in the management and operation of chatbots. The combination of AI from chatbot frameworks with the powerful AEM features outperforms standalone chatbots.
- Go beyond the PoC: to provide best customer experiences, it’s crucial to build a specific and unique chatbot. Put your corporate identity in place to have a recognizable product. Benefit from the customization possibilities when implementing your chatbot with AEM.
- Keep your system up to date: start with a small chatbot (MVP) to build a solid foundation. After go live, retrain it constantly and expand it iteratively with new use cases and features. As a bonus, you will get valuable insights about your customers.
Senior Software Architect