2021 Call for Code Awards: Live from New York, with SNL’s Colin Jost! Learn more

Assemble a pizza-ordering chatbot dialog

Note: This code pattern uses the classic Watson Assistant experience. After October 8, 2021, all instances (except the standard plan) can switch between the classic and new Watson Assistant experiences by going to the upper-right corner of the Watson Assistant screen and clicking the Manage icon.

manage-icon

See the Watson Assistant page for more information on features and getting started.

Summary

If you’ve used Watson Assistant and needed to have the user input data, you’ve noticed that the process can be cumbersome. Each time you added a field required a node, and validating the required logic was done on another node. Error handling, adding help, optional fields, and other logic would require even more nodes. Just creating a user profile or data form resulted in a large graph and extensive application logic. With the new Watson Assistant Slots feature, you can reduce that down to a single node. This code pattern shows how to create an online pizza order for a chatbot using a single node for input. After implementing this code, you will have the knowledge to create your own Watson Assistant Slots. This code pattern now includes instructions on how to use the IBM Cloud Kubernetes Service, too!

Description

In this code pattern, we’ll create a simple chatbot with Node.js and Watson Assistant. There will be only a thin application layer, which provides the bare bones of a basic chatbot, with all the logic pushed into Watson Assistant via the new Watson Assistant Slots feature. The chatbot will take a pizza order, filling in slots for the various information required. A similar approach could be used for a user profile or other online form.

When you complete this code pattern, you will be able to:

  • Create a simple chatbot using Node.js and Watson Assistant
  • Use Watson Assistant Slots to fill out required data
  • Use slots handlers to handle conversation flow that does not fit into slots

The code pattern lets you also choose how to deploy the application, using Cloud Foundry on IBM Cloud, or the IBM Cloud Kubernetes Service. Watson Assistant is available on IBM Cloud and IBM Cloud Pak for Data.

Flow

flow

  1. User sends dialog to cloud-based Node.js application.
  2. Application interacts with Watson Assistant and uses slots.
  3. Replies from Watson Assistant are returned to user via application.

Instructions

Find the detailed steps for this pattern in the README. Those steps will show you how to:

  1. Clone the repo.
  2. Create IBM Cloud services.
  3. Get IBM Cloud credentials and add to the .env file.
  4. Configure Watson Assistant.
  5. Run the application.
Legend