Win $20,000. Help build the future of education. Answer the call. Learn more

Provide automated customer support for emails


This code pattern walks you through creating an automated and cognitive method of providing customer support. Using the telecommunications domain as an example, it steps you through various customer support scenarios such as enabling a service, disabling a service, changing a plan, and adding a family member to a plan.


Organizations receive communication daily from their customers through various channels like emails, phone calls, and job applications. For better customer support, it’s important to act on these communications quickly and accurately. However, manually handling the thousands of emails is time consuming and can be error prone. Building an automated, intelligent system to handle customer communication is needed, and this code pattern helps by creating a system that understands the intent and content of emails, determines if the email has all of the required information to process the request, and composes an email asking for missing information.

The code pattern uses natural language processing and understands the intents of the emails, auto-composes responses, and provides a dashboard with a high-level summary of intents and emails. While this code pattern uses a telecom domain, you can apply it to any domain. It uses Watson Knowledge Studio for custom domain natural language processing, Watson Natural Language Understanding to deploy a custom domain model and get entities from emails, Watson Natural Language Classifier to get the intent of an email, a CloudantNoSQL database to store emails and customer data, and Node-RED to integrate with emails.

After completing this pattern, you will know how to:

  • Build a custom model using Watson Knowledge Studio and deploy it on Watson Natural Language Understanding
  • Build a Node-RED flow that integrates an email server, Watson services, and a Cloudant database
  • Deploy the application, send sample customer emails, and see the emails being auto processed using a simple UI



  1. Deploy the custom model built for telecom use cases using Watson Knowledge Studio to Watson Natural Language Understanding.
  2. The Node-RED flow gets (polls) for customer emails and retrieves them.
  3. Customers are validated by matching the customer email ID and customer data available in the Cloudant database with customer records.
  4. Information (entities such as a name and phone number) in emails is identified using Watson Natural Language Understanding.
  5. Intents (or service request types) of an email are identified using Watson Natural Language Classifier.
  6. Email content, entities, and intents are saved in a Cloudant email database for each request.
  7. The customer support representative accesses a Node.js application deployed on IBM cloud.
  8. The application fetches emails, entities, and intents from a Cloudant email database.
  9. Responses to the email are auto-populated (auto-composed), and the customer support representative can just click the send button to send a response to the customer.


You can find detailed instructions in the README file. Those steps will explain how to:

  1. Clone the GitHub repo.
  2. Deploy the Watson Knowledge Studio model to Natural Language Understanding.
  3. Create IBM Cloudant databases.
  4. Create a Natural Language Classifier service instance.
  5. Set up and deploy the Node-RED flow.
  6. Set up the SendGrid service.
  7. Deploy the application and send emails.
  8. Run the application.