Behind Salesforce task-oriented dialogues system Converse
According to Insider Intelligence, consumer retail spending through chatbots is projected to reach USD 142 billion by 2024. Chatbots and voice assistants have become a regular fixture of modern life. Salesforce provides customer relationship management software and applications focused on sales, customer service, marketing automation, analytics, and application development. The company has developed Converse, a flexible and modular task-oriented dialogue system to create smart bots to help users complete tasks. You can design tasks in Converse using Salesforce’s interactive configuration tool with minimum code.
All about Converse
The converse completes the task in three steps. First, it figures out the task customer needs help with. In the second step, it gets the information from the customer and processes it. Finally, it furnishes the needed information to the customer. For instance, let’s say you want a haircut. You can just input ‘I want a haircut’ in the chatbot, and the system will ask for further information, such as the appointment date and your budget. The chatbot can conduct actions like booking a salon appointment based on your response.
Converse can easily create bots– with little to no coding– that can handle complex tasks by eliminating the unnecessary back and forths. It allows bot builders to repurpose sub-tasks to reduce the number of configurations. Converse uses an and-or tree structure (Task Tree) to represent and track the tasks to deal with branching conversations. The Task Tree can translate every task into a combination of and/or relations.
The architecture
Converse’s architecture mirrors typical modern task-oriented dialogue systems.
- The Orchestrator module liaises with other modules and handles communications between the user and the system.
- The Dialogue Management (DM) module is at the heart of Converse and is linked to a unique component- the Dialogue Tree Manager.
- The DTM manages The Task Tree and tree-related processes.
The main system components are:
1. Natural Language Understanding (NLU):
In Converse, NLU comprises two deep learning models (the intent detection and named-entity recognition models), a rule-based model (the negation detection model), and a rule-based intent resolution logic.
The intent detection model allows Converse to understand the user’s task. The named-entity recognition model gets relevant information from the user’s response to complete the task. Finally, the negation detection model determines if negation words exist and then finds the corresponding negation scopes.
2. Dialogue Management (DM)
Dialogue Management brings Converse’s memory up to speed based on the latest input from the user and decides how to respond. Dialogue Management records the conversation context as the dialogue state, runs external function calls to the knowledge base or backend based on the dialogue state and updates it.
3. Dialogue Tree Manager and the Task Tree
The Dialogue Tree Manager takes the new information from the Dialogue State Manager and traverses the Task Tree to check if the new information matches the current entity. The process is akin to checking off an item on your to-do list and checking what task to do next.
The and-or tree is used to represent tasks in a task-oriented dialogue system. The structure represents a problem as a combination of several subproblems, making it easier to unpack a complex problem into easier subproblems and maintain the original problem’s search space in a tree structure. The Task Tree represents a logical expression that evaluates as true if the task is completed successfully and false otherwise.
4. Natural Language Generation (NLG)
NLG is a simple template-based module that fills in simple templates with information from the Dialogue Policy to generate responses.
“For example, “What is your <Info>?” is a template for asking the user for information. NLG replaces <Info> with the current entity provided by the Dialogue Policy, such as “What is your name?”.
Example of a task tree and Converse’s internal workings for the query of making a health appointment
In common chatbot frameworks, configuring a new chatbot requires bot builders to create the response templates for each task. Converse has two responses: general responses for all tasks and task-specific responses. The templates can be changed in configuration files without rewriting code.




