IBM / smart-email-support

Smart Email Support for Telecom Organisations - Provide automated customer support for emails
https://developer.ibm.com/patterns/email-support-automation-for-telco/
Apache License 2.0
21 stars 13 forks source link
artificial-intelligence cloudant natural-language-processing natural-language-understanding node-red nodejs sendgrid telecom watson-knowledge-studio

Smart Email Support for Telecom Organisations - Provide automated customer support for emails

Providing customer support in a timely manner is very important to enhance customer experience. Organisations receive communication, from their customers, through various channels like emails, phone calls, applications etc. Organisations need to understand the intent and content of each of the communication and ask customers for any additional information required to fulfil their requests. Manually processing each email request requires a lot of time to go through the emails, understand them and respond to them in a quick and appropriate manner. Additionally, manual processing is error prone. Delay in acting on customer requests could affect customer satisfaction levels. This code pattern addresses these issues. It will demonstrates Watson’s ability to automate email responses that are related to business processes. Customers will benefit from more timely responses and clear instructions for what information is needed in order to fulfill their requests.

In this code pattern we take use cases of a telecom domain customer support who need to action upon email requests they receive from customer. We will consider request scenarios for enabling a service, disabling a service, changing plan and Adding family member to plan.

As a customer support, one should

This code pattern provides an automatic and cognitive way of achieving the above requirements. It uses natural language processing of emails, understanding intents of emails, auto composing responses and providing a dashboard with high level summary of intents and emails. While the use case demonstrated here is for a telecom domain, it can be applied to any domain. It integrates with database, which acts as a CRM, to pull customer information to validate emails and requests. It uses Watson Knowledge Studio for custom domain natural language processing, Watson Natural Language Understanding(NLU) to deploy custom domain model and get entities from emails, Watson Natural Language Classifier(NLC) to get intent of email, IBM Cloudant database to store emails and customer data, Node-RED to integrate with emails, Watson services and IBM Cloudant database, Node runtime for user interface application.

After completing this pattern, you will learn how to:

Watch the Overview Video

Flow

Architecture

  1. Deploy custom model, built for telecom use cases using Watson Knowledge Studio, to Watson Natural Language Understanding.
  2. Node-RED flow gets (polls) for customer emails and retrieves them.
  3. Customers are validated by matching customer email id and customer data available in Cloudant database for customer records.
  4. Information (entities like name, phone number) in emails are identified using Watson NLU.
  5. Intent (or service request type) of email is identified using Watson NLC.
  6. Email content, entities, intent are saved in Cloudant email database for each request.
  7. Customer support user accesses nodejs application deployed on IBM cloud.
  8. Application fetches emails, entities and intents from Cloudant email database.
  9. Responses to email are auto populated (auto composed) and customer support user can just click the send button to send response to customer.

Included components

Featured technologies

Prerequisites

Create all the resources in the same region, organisation and space so that there will be no issues in accessing the services. Whenever you login to IBM Cloud from command prompt, ensure that you log into the right region, organisation and space by running the command ibmcloud target.

Steps

Follow these steps to setup and run this code pattern. The steps are described in detail below.

  1. Clone git repo
  2. Deploy WKS model to NLU
  3. Create IBM Cloudant databases
  4. Create NLC Service Instance
  5. Setup and deploy Node-RED flow
  6. Setup SendGrid service
  7. Deploy application and send emails
  8. Run the application

1. Clone git repo

2. Deploy WKS model to NLU

2.1 Create NLU service

NLUCreate

2.2 Create WKS service instance and build model

NLUCreate

TrainAndEvaluate1

train-processing

wkssnapshot

3. Create Cloudant databases

4. Create NLC Service Instance

NLCCreate

5. Setup and deploy Node-RED flow

5.1 Create Node-RED service

NodeRedCreate

5.2 Deploy Node-RED flow

6. Setup SendGrid service

Sendgrid service is used to send emails from our application to customers.

7. Deploy application and send emails

8. Run the application

AppHomePage

EmailsLink

ListOfEmails

EmailDetails

Here you can see what all entities were identified and what all entities are missing

Editing auto composed email is not provided in this code pattern while the user can use this code pattern to implement this feature

SendEmail

That concludes the flow of the application.

Summary

We saw that emails sent by customers are categorised into different intents. Emails are parsed to identify information available in emails. Missing information, if any, is identified. Email responses are auto composed and customer support representative can just click a button to send the auto composed email. We used WKS to build a custom model and deployed it on NLU to extract entities from emails. We used NLC to get intents of emails, sendgrid to send email and Note-RED flow for process orchestration. We used a Node application to show the working of this use case.

Troubleshooting

See Debugging.md

License

This code pattern is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.

Apache Software License (ASL) FAQ