Developer

IBM Control Desk using IBM Watson

In this article I’m presenting a Proof Of Concept (POC) to use IBM Watson as support to IBM Control Desk. My idea is to use IBM Watson to find relevant results quickly from large numbers of documents to address the Service Request.

My solution is able to leverage the power of IBM Bluemix during the IBM Control Desk service request handling. Bluemix is an open-standard, cloud platform for building, running, and managing applications, moreover Bluemix exposes powerful set of IBM and third-party APIs and services. You can simply create a service based on Watson APIs. My POC uses the Watson Retrieve and Rank service :

IBM Bluemix dashboard
IBM Bluemix dashboard

The Retrieve and Rank service fits with customer-facing professionals needs, such as support staff, contact center agents, field technicians, and other professionals. In IBM Control Desk service request scenario the Customer support finds quick answers for customers from your growing set of answer documents asking to Watson.

To use the Retrieve and Rank service can improve information retrieval as compared to standard operator experience or knowledge base. The ranker models take advantage of rich data in your documents to provide more relevant answers to queries. You benefit from new features developed both by the open source community and from advanced information retrieval techniques that are built by the Watson algorithm teams.

Here a tutorial guide you through how to create and train the IBM Watson Retrieve and Rank service with sample data. To complete this tutorial you need a Bluemix account, you can get 30-day trial for free here.

How IBM Watson Retrieve and Rank works ?

How IBM Watson Retrieve and Rank works
How IBM Watson Retrieve and Rank works ?

First you must create a Solr cluster By REST APIs , a Solr cluster manages your search collections. Second you must create a Solr collection, it is a logical index of the data in your documents.

My POC’s goal is to address the service requests regarding e-mail client configuration problem. Yes I have really some Client where Customer support has the 30% of service request regarding email problems.

So I created a custom collection on how to troubleshoot e-mail configuration problems. This is a portion of my Solr collection:

 "add" : {
    "doc" : {
      "id" : 20002,
      "author" : "Microsoft support",
      "bibliography" : "tech note MS2",
      "title": "create and configure an email profile in Outlook",
      "body" : "create and configure an email profile in Outlook: Step 1: Open the Mail Setup dialog box   Click Start, click Run, type Control in the Open box, and then click OK.     Depending on the version of Windows running on your computer, do one of the following:         Windows XP:         If you are in the Category View, click User Accounts, and then click Mail.         If you are not in the Category View, double-click Mail.        Windows Vista:        Click User accounts, and then click Mail.    The Mail Setup dialog box opens. Step 2: Start the New Profile wizard     Click Show Profiles.   Click Add to start the New Profile wizard. Step 3: Create a profile    In the Profile Name box, type Test, and then click OK to name the new e-mail profile.    Follow the steps appropriate for your version of Outlook:        Microsoft Office Outlook 2010            Click to select the Manually configure server settings check box.             Click Next.             On the Choose Service page, click Internet E-mail.            Click Next.            Fill in the boxes in the Internet E-mail Settings dialog box. Make sure that the Account Type setting is set to POP3.             Note Enter the information from your ISP or from your e-mail administrator in the Incoming mail server box and in the Outgoing mail server (SMTP) box.             Click Next, follow the prompts to finish setting up your account, and then click Finish.            Your new profile is created. Go to step 4.        Microsoft Office Outlook 2007            Click to select the Manually configure server settings check box.            Click Next.             On the Choose E-mail service page, click Internet E-mail.             Click Next.            Fill in the boxes in the Internet E-mail Settings dialog box. Make sure that the Account Type setting is set to POP3.            Note Enter the information from your ISP or from your e-mail administrator in the Incoming mail server box and in the Outgoing mail server (SMTP) box.            Click Next, follow the prompts to finish setting up your account, and then click Finish.             Your new profile is created. Go to step 4.        Microsoft Office Outlook 2003 and earlier versions of Outlook            Click Add a new e-mail account.             Click Next.             Click POP3.             Click Next.             Fill in the boxes in the Internet E-mail Settings dialog box. Make sure that the Account Type setting is set to POP3.             Note Enter the information from your ISP or from your e-mail administrator in the Incoming mail server and Outgoing mail server (SMTP) boxes.             Click Next.             Click Finish.             Your new profile is created. Go to step 4.  Step 4: Set the default profile    On the Mail dialog box, under the When Starting Microsoft Outlook, use this profile box, click to select the new profile that you created in step 3.     Click OK.     Use Outlook to send yourself an e-mail.     If you successfully receive the e-mail, you have completed troubleshooting the problem.    If you do not receive the e-mail, creating a new profile did not resolve your problem. Try method 2.     Note If you use Dial-Up Networking to connect to the Internet, unfortunately, this article will not be able to help you further. Refer to the Next steps section for additional options."    
}
  },

"add" : {
    "doc" : {
      "id" : 20003,
      "author" : "TechRepublic",
      "title": "tips for Outlook mai",
      "bibliography" : "tips for Outlook mail",
      "body" : "Outlook is currently the de facto standard email/calendaring client in the business world. Generally speaking, it works like a champ. But there are times when Outlook goes down in a ball of flames. When that happens, if you don't have a bevy of tricks to pull out of your pocket, you might find yourself in a world of pain. But troubleshooting Outlook doesn't have to be a nightmare. In fact, you can almost script out the troubleshooting process with these 10 handy tips. 1: Scan PST Those PST files will inevitably develop errors. When they do, they can prevent Outlook from working properly. When Outlook is starting to fuss, one of the first things I do is run scanpst.exe against each PST file used within Outlook. But be warned: Scan PST can take some time to run. It has to back up your data file, scan for errors, and repair any errors found. If the data file is large, this process can take quite some time. To run Scan PST, you'll need to locate the scanpst.exe executable. (Its location will depend upon the version of Windows being used.
}
  },

  "commit" : { }
}


I trained the Watson’s ranker by REST APIs, the ranker learns from examples before it can re-rank results from queries that it hasn’t seen before.

Next I upload my data collection by another REST API invoked by curl

curl -X POST -H "Content-Type: application/json" -u "c0076286-3009-40c2-886f-bf6dXXXXX":"UM9NZ7vnfYYYY" "https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sce5325126_b64b_4141_af68_31af26cf7683/solr/example-collection/update" --data-binary @/home/noioso/Downloads/cranfield_dataMail.json

After configured the Retrieve and Rank service on Bluemix platform I customized IBM Control Desk.

I extend the TICKET object with three attributes (using database configuration) :

  • WATSONR1 (CLOB)  to store the first Watson ‘s document retrieved.
  • WATSONR2 (CLOB) to store the second Watson’s document retrieved.
  • WATSONR3 (CLOB) to store the third Watson’s document retrieved.

I modified the Service Request application with the following items (using application designer) :

  • three text field associated with three new attributes created on TICKET object.
  • a button, that is your IBM Watson button. By this button Control Desk calls the REST API to retrieve document based on Service Request description.
  • a signature to manage the button-pressed event action, see IBM Maximo application developer guide for details.

You can use your IBM Watson button preferred image in maximo\applications\maximo\maximouiweb\webmodule\webclient\skins\tivoliXY\images ,  remember to rebuild & redeploy the Maximo ear in your Application Server before to use the new SR application.

At the end the Service Request application looks like this one:

IBM Maximo Service Request application custom for IBM Watson
IBM Control Desk Service Request application custom for IBM Watson

I created a Java custom action to handle the buttonpressed event. The class implements the psdi.common.action.ActionCustomClass interface and the applyCustomAction method:

public class IBMWatsonAction implements ActionCustomClass {


    public void applyCustomAction(MboRemote mbo, Object[] params) throws MXException, RemoteException {
    
        String SRdesc = mbo.getString("DESCRIPTION");
                
        callRESTAPIRetrieveAndRank(SRdesc);
        
    }

I have also used a private method to invoke the follow REST API to retrieve document based on service request description:

https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sce5325126_b64b_4141_af68_31af26cf7683/solr/example-collection/select?q=Outlook%20performs%20slowly%20when%20you%20open%20email%20messages&wt=json&fl=id,body

by a simple REST client using Apache HttpClient :

public void callRESTAPIRetrieveAndRank(String SRdesc) throws ClientProtocolException, IOException {

        . . .
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("https://c0076286-3009-40c2-886f-bf6d8338ZZYYY:[email protected]/retrieve-and-rank/api/v1/solr_clusters/sce5325126_b64b_4141_af68_31af26cf7683/solr/example-collection/select?q=mail&wt=json&fl=id,body");
        post.setHeader("Accept", "application/json");
        post.setHeader("Content-type", "application/json");
        StringEntity input = new StringEntity(""); 
        post.setEntity(input);
 
        HttpResponse response = client.execute(post);
        System.out.println("REST API invoked");
 
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        String line = "";
 
        while ((line = rd.readLine()) != null) {
           System.out.println(line);
 
        // Maximo custom code here
        }
        . . .
}

So my Proof Of Concept use IBM Watson as support to IBM Control Desk to manage for example the service request SR2015-12:

“Outlook performs slowly when you open email messages”

the button-pressed event action calls the IBM Watson to find relevant results quickly from large numbers of documents to address the Service Request.

These are the results:

But there are times when Outlook goes down in a ball of flames. When that happens, if you don't have a bevy of tricks to pull out of your pocket, you might find yourself in a world of pain. But troubleshooting Outlook doesn't have to be a nightmare. In fact, you can almost script out the troubleshooting process with these 10 handy tips. 1: Scan PST Those PST files will inevitably develop errors. When they do, they can prevent Outlook from working properly. When Outlook is starting to fuss, one of the first things I do is run scanpst.exe against each PST file used within Outlook. But be warned: Scan PST can take some time to run. It has to back up your data file, scan for errors, and repair any errors found. If the data file is large, this process can take quite some time. To run Scan PST, you'll need to locate the scanpst.exe executable. (Its location will depend upon the version of Windows being used.)

If Outlook is connecting to either an Exchange server or IMAP account, this process is just a matter of deleting the profile and re-adding it. To do this, open the Control Panel, go to Mail | Profiles, and delete the profile.

Are you looking for free e-mail but don't know where to start? Do you use Gmail but want to use it more effectively? Do you want to organize your emails better? Spending too much time on your email? Then this guide is for you! This is the complete illustrated guide to setting and using Gmail

From application point of view the service request fields are populated with the solution documents retrieved from Watson:

IBM Maximo Ask question to Watson about this Service Request

That’s all !

I think with the cognitive approach and tools it is possible to have a real understanding of the client needs and the quality of service desk management can improve dramatically.

Your comments and suggestions are welcome !

 

Related Articles

16 Comments

  1. Hi Mario,

    If possible , Could you please also share your solr config file ?
    Did you create custom ranker based on email subject ?

  2. Hi, I can share only a subset of collection:

    {
    “add” : {
    “doc” : {
    “id” : 10002,
    “author” : “Microsoft support”,
    “bibliography” : “tech note MS2”,
    “title”: “create and configure an email profile in Outlook”,
    “body” : “create and configure an email profile in Outlook: Step 1: Open the Mail Setup dialog box Click Start, click Run, type Control in the Open box, and then click OK. Depending on the version of Windows running on your computer, do one of the following: Windows XP: If you are in the Category View, click User Accounts, and then click Mail. If you are not in the Category View, double-click Mail. Windows Vista: Click User accounts, and then click Mail. The Mail Setup dialog box opens. Step 2: Start the New Profile wizard Click Show Profiles. Click Add to start the New Profile wizard. Step 3: Create a profile In the Profile Name box, type Test, and then click OK to name the new e-mail profile. Follow the steps appropriate for your version of Outlook: Microsoft Office Outlook 2010 ”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10003,
    “author” : “TechRepublic”,
    “bibliography” : “tips for Outlook mail”,
    “title”: “email problem with Outlook”,
    “body” : “Scan PST Those PST files will inevitably develop errors. When they do, they can prevent Outlook from working properly. When Outlook is starting to fuss, one of the first things I do is run scanpst.exe against each PST file used within Outlook. But be warned: Scan PST can take some time to run. It has to back up your data file, scan for errors, and repair any errors found. If the data file is large, this process can take quite some time. To run Scan PST, you’ll need to locate the scanpst.exe executable. (Its location will depend upon the version of Windows being used.)”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10004,
    “author” : “Support Goole”,
    “bibliography” : “tips for mail configuration”,
    “title”: “My messages skip the inbox”,
    “body” : “If your incoming messages are skipping your Inbox, the cause is a misconfigured filter, or a setting on your Forwarding and POP/IMAP tab.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10005,
    “author” : “Support Goole”,
    “bibliography” : “tips for mail configuration”,
    “title”: “empty inbox”,
    “body” : “To resolve this issue, please make sure you haven’t created any filters with the actions Skip the Inbox (Archive it) or Delete it that would affect the messages in question. If you have many filters or have complicated filters in place, you may need to edit the Skip the Inbox (Archive it) or Delete it action to guarantee that they are not at fault.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10006,
    “author” : “Support Goole”,
    “bibliography” : “tips for mail configuration”,
    “title”: “pop configuration problem”,
    “body” : “f you’re using a POP client to access Gmail, please ensure that you have not selected archive Gmail’s copy or delete Gmail’s copy in step 2 of your POP download options.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10007,
    “author” : “Cisco Support Troubleshooting TechNotes”,
    “bibliography” : “troubleshooting email connectivity “,
    “title”: “Using Telnet to test email (SMTP)”,
    “body” : “If you are troubleshooting email connectivity and email reciept issues, it may be necessary to test basic SMTP communication for the problem that you are experiencing. For example, if you have problems sending email messages over SMTP to your ESA, you can test the SMTP connectivity by using Telnet on your local client or desktop, and connect to port 25 on your ESA. By default, SMTP listens on port 25.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10008,
    “author” : “Apple Mac TechNotes”,
    “bibliography” : “troubleshooting email “,
    “title”: “If you can’t send or receive email on your Mac”,
    “body” : “If your Mac is connected to the Internet, but Mail no longer sends or receives email messages, the issue could be with the provider of your email service. Or you could have missing or outdated settings in the Accounts section of Mail preferences (Mail > Preferences).If Mail refers to a problem with the mail server or network Mail might say that it’s unable to connect because of a problem with the mail server or network. For example, the message might refer to a connection that timed out, or too many simultaneous connections.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10009,
    “author” : “Apple Mac TechNotes”,
    “bibliography” : “troubleshooting email “,
    “title”: “If email doesn’t arrive as soon as you expect”,
    “body” : “Incoming or outgoing email might take longer to arrive than you expect, or it might arrive on one device before arriving on another device.Email delivery is scheduled by your email provider, and delivery time could also be affected by your Internet provider. If you often experience significant email delays, contact your email provider or Internet provider. If the delays occur only when communicating with a particular person, that person may need to contact their email provider or Internet provider.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10010,
    “author” : “Apple Mac TechNotes”,
    “bibliography” : “troubleshooting email “,
    “title”: “If you still can’t send or receive email”,
    “body” : “Make sure that you installed the latest Mac software updates, especially if the issue occured immediately after installing a previous update. In OS X El Capitan, you might see a status icon and brief error message in the upper-right corner of the Mail window, beneath the Search field. The message might say “Network Offline” or “Login Failed,” for example. Click the message to see more details about the issue. Check your connection in Mail Connection Doctor. It might be able to tell you more about the issue.”
    }
    },

    “commit” : { }
    }

  3. Hello Mario,

    Great innovation. Thanks for this example. Is it possible for you to share your sorl configuration files, collection data and the ground truth?

  4. Hi, I used :

    “add” : {
    “doc” : {
    “id” : 10007,
    “author” : “Cisco Support Troubleshooting TechNotes”,
    “bibliography” : “troubleshooting email connectivity “,
    “title”: “Using Telnet to test email (SMTP)”,
    “body” : “If you are troubleshooting email connectivity and email reciept issues, it may be necessary to test basic SMTP communication for the problem that you are experiencing. For example, if you have problems sending email messages over SMTP to your ESA, you can test the SMTP connectivity by using Telnet on your local client or desktop, and connect to port 25 on your ESA. By default, SMTP listens on port 25.”
    }
    },

    “add” : {
    “doc” : {
    “id” : 10008,
    “author” : “Apple Mac TechNotes”,
    “bibliography” : “troubleshooting email “,
    “title”: “If you can’t send or receive email on your Mac”,
    “body” : “If your Mac is connected to the Internet, but Mail no longer sends or receives email messages, the issue could be with the provider of your email service. Or you could have missing or outdated settings in the Accounts section of Mail preferences (Mail > Preferences).If Mail refers to a problem with the mail server or network Mail might say that it’s unable to connect because of a problem with the mail server or network. For example, the message might refer to a connection that timed out, or too many simultaneous connections.”
    }
    },
    ……………….

  5. Hi ,
    Could you please help me what value we need to put in bibiliography field in Json file ?

  6. I do like the manner in which you have framed this particular problem plus it really does provide me a lot of fodder for thought. Nevertheless, from what precisely I have experienced, I only trust when the actual feedback pack on that people stay on point and don’t start upon a tirade involving some other news of the day. All the same, thank you for this superb piece and although I can not really concur with this in totality, I regard the point of view.

  7. I’ve worked since 3 years on Maximo, good ideas ! thanks for sharing

  8. Can you give me details by mail ? this integration it’s very interesting

Back to top button