Think 2021: New tools have the developer ecosystem and IBM building together Learn more

Build a chatbot using the Watson Assistant search skill

This code pattern is part of the Watson Discovery learning path.

Level Topic Type
100 Introduction to Watson Discovery Article
101 Create a cognitive news search app Code pattern
201 Create an app to perform intelligent searches on data Code pattern
301 Get customer sentiment insights from product reviews Code pattern
401a Enhance customer helpdesks with Smart Document Understanding using webhooks in Watson Assistant Code pattern
401b Enhance customer helpdesks with Smart Document Understanding using the Watson Assistant search skill Code pattern


In this developer code pattern, we use the typical customer care chatbot experience, but instead of relying on predefined responses the dialog provides a hook that can call out to other IBM® Watson™ services for additional sources of information. In this case, it’s an owners manual that has been uploaded to Watson Discovery.

NOTE: This code pattern includes instructions for accessing Watson services running on both IBM Cloud and on IBM Cloud Pak for Data.


The typical customer care chatbot can answer simple questions, such as store locations, hours, and directions, and maybe even make appointments. When a question falls outside of the scope of the pre-determined question set, the option is typically to tell the customer that the question isn’t valid or offer to speak to a real person.

In this code pattern, we provide another option. If the customer question is about the operation of a device, we use the search skill feature of Watson Assistant to pass the question on to the Watson Discovery service, which has been pre-loaded with the device’s owners manual. So now, instead of “Would you like to speak to a customer representative?,” we can return relevant sections of the owners manual to help solve the customers’ problems.

To take it a step further, we use the Smart Document Understanding feature of Watson Discovery to train it on what text in the owners manual is important and what is not. This improves the answers returned from the queries.

In summary, this code pattern will:

  • Create a customer care dialog skill in Watson Assistant
  • Use Smart Document Understanding to build an enhanced Watson Discovery collection
  • Create a Watson Assistant search skill that allows the Assistant dialog to post queries to Watson Discovery


SDU with Search Skill flow

  1. The document is annotated by using Watson Discovery SDU.
  2. The user interacts with the back-end server through the app UI. The front-end app UI is a chatbot that engages the user in a conversation.
  3. Dialog between the user and back-end server is coordinated using a Watson Assistant dialog skill.
  4. If the user asks a product operation question, a search query is issued to the Watson Discovery service through a Watson Assistant search skill.


Find the detailed instructions in the Readme file. These steps will explain how to:

  1. Clone the repository.
  2. Create Watson services.
  3. Configure Watson Discovery.
  4. Configure the Watson Assistant service.
  5. Add Watson service credentials to the environment file.
  6. Run the application.


The code pattern is the final part of the Learning Path: Getting started with Watson Discovery series. Congratulations! You should now have a fundamental understanding of Watson Discovery and some of its advanced features. But, if you want to learn more, take a look at the Watson Discovery features page.