Add Search To Your Chatbot Using IBM Watson Assistant & Watson Discovery

When Predefined Dialog Responses Do Not Suffice

Cobus Greyling
8 min readJul 12, 2020



Firstly…typically, chatbots are constituted by four pillars.

These pillars are:

  • Intents
  • Entities
  • State Machine (aka Dialog Tree/Flow)
  • Script / Dialog / User Messages

The dialog is fairly rigid and predetermined based on the where the conversation state is. There are environments which allow you multiple dialogs / messages per state.

IBM Watson Assistant Has The Option for a Dialog Skill or Search Skill

In some instances a specific conversation state can have multiple messages which can be displayed sequential or random. This lends the illusion of liveness to the conversation.

Secondly, chatbots are narrow domain. Only addressing a specific topic, set of services, or products. The moment the user veers off the defined path, then a fallback prompt needs to be invoked.

This informs the user that they have reach the fringe of the conversational agent’s ability and need to head inland.

Would it not be convenient to add a search element to your chatbot. When intents are not explicitly catered for, a search can be conducted on a corpus of data and at least something relevant is returned to the user.

Many solutions have this functionality available, yet it is not widely implements.

Search Skills in Watson Assistant with Discovery

Watson Discovery

Here is a step-by-step implementation of a search skill and adding it to an assistant. Using search functionality within the IBM Cloud offering. In this example we are going to make use of IBM Watson Assistant. This in essence will constitute our chatbot.

Added to this we will also make use of IBM Watson Discovery.



Cobus Greyling

I explore and write about all things at the intersection of AI and language; NLP/NLU/LLM, Chat/Voicebots, CCAI.