Creating your First Skill

For this first skill we will focus on having Luma answer a user's question with a test response. This skill is extremely useful to use for common FAQ questions such as communicating Support office hours, holiday schedules, key business phone numbers or email addresses and so on.  For this example we walk through the full process to create a Skill that communicates the guest WiFi network information to self-service users.

Navigate to Skills

To navigate to Skills, do the following: 

  1. Login to Skills Builder.
  2. Click on the existing Bot.
  3. The Skills list page opens for that Bot. Here you can view all existing Skills for this bot. Click Add Skill.

    The New Skill page opens. It consists of Details, Fulfillment and Post Fulfillment tabs.
     

Search Skill

To search an existing skill, enter the Name, Initial Status or Post Status in the search box and press Enter. The skills matching the search criteria appear. Note that Luma supports partial keywords in the search and displays those results as well.

You can select the number of items to be viewed per page, for example, 10. Click the arrows to navigate to the next and previous pages.

Filter Selection

You can also filter the skills list by using the filter  icon to view and edit the required skills. The skills list can be filtered by Type (Custom, ITSM, System), Fulfillment Type (Web Service and Email) Status (Active, Inactive), user Permission (Administrator, Developer, Analyst, Self-Service User and Guest) and Welcome Skill. To edit an existing skill, click the skill and make the required changes. Click Save to save the edits.

Skill Details Tab

The details tab is where you define how the user triggers the skill as well as the conversation itself. This tab displays a list of sections that you need to configure:

  • Skill Name: Specify the name for your skill name in this field. Keep this name customer friendly as it may be shown in the Welcome Skill or in the validation message to a user when chatting with Luma. In this example, let us name it "What is the guest WiFi network password".

  • Description: Specify the description of this skill. Use user-friendly terminology, as it will be shown if this skill is part of the Welcome Skill. Note that Luma supports a maximum of 1000 characters only.
  • Validation Message: If the user enters a phrase to trigger this Skill but it doesn't meet the Natural Language Processing (NLP) engines matching threshold, this message will be shown to the user along with a Yes/No prompt to ensure that this is the skill they want. Keep the message in the user's terminology, for example "Are you looking for information on the guest network?"

  • No Data Response: If your skill triggers a web service call during fulfillment that retrieves data from another system, this is the message the user will receive if no data is returned from that call. In this example, we are returning text to the user and not performing a web service call, therefore this field can be left blank. If you were calling a web service that returns data, you should provide a detailed message to the user about what occurred.

  • Permission: From the Permission drop-down list, you define what type of Service Management user can access this skill - Administrator, Developer, Analyst, Self-Service User or Guest. In Intelligent Service Management, an analyst is any user with a Concurrent or Named license which includes Managers and Administrators and a Self-Service user is an employee or customer that is not part of the support team. Using Guest permission, admin can create the skills particularly accessible to the anonymous users. 
    Since this example Skill is aimed at helping employees find information, let us select Self-Service User here.

    Note

    Analyst users can trigger both Analyst and Self-Service User skills. But, Self-Service User can only view trigger Self-Service skills.

  • Display in Welcome Skill: Select this check box if you want this Skill to be shown to users when they enter "hello" or "what can you do". The Welcome Skill is based on the user's role, so a Self-Service user will see a different Welcome skill than Analyst users.
  • Image URL: As an Administrator you can add an image to each skill you want to show in the welcome skill to provide a nice welcome experience to the user. Type the image URL. Ensure the Display in Welcome Skill check box is selected. All the image types are supported. For example, Jpeg, Png, Gif, Pdf, and more.

Phrases

Phrases are a set of phrases used to train the bot’s Natural Language Processing engine. Phrases help the bot link the skill to the different ways a user asks for that skill. It is important to create phrases for how technical and non-technical users will ask for a skill. For example, a user may say "guest network password" or "visitor wifi access". Each of these is different and valid ways to trigger the same skill. It is recommended that you talk to different users and ask them how they would ask for a skill so that you can build better phrases and make your bot more effective.

To add phrases to your skill start typing in the Enter text here text box in the Phrases section. To add your phrase to the Skill click the Add  icon. Enter all the different ways you think users will ask for this Skill.

Example:

For "What is the guest WiFi network password" Skill, fill the Phrases field with every expression a user in your organization would say when asking for guidance. Let us specify the following Phrases:

  • guest network password
  • guest wifi network name
  • visitor wifi access
  • Guest WiFi Password
  • Guest Network Password
  • password for guests
  • Password for WiFi
  • WiFi Password

Duplicate Phrases

Using unique phrases improves the NLP matching for your skills. You can verify if the phrase you added exactly matches the phrases used in another skill. To do so, add the list of possible phrases for the skill and click Validate as shown below.

If there are any duplicate phrases, then the duplicates appear in the Duplicate Phrases pop-up window as shown below. Click  to navigate to the respective skill in a new tab and view details of the skill where the phrase is used. If there are no duplicate phrases, then no records are shown in the Duplicate Phrases pop-up window.

Consider removing the phrases that are used in other skills, else, incorrect skills may be triggered by the bot. If the same phrase is used in more than one skill, then there may be a conflict and NLP may trigger a different skill than intended. However, Luma does not restrict you from creating a new skill although any duplicate phrases. There may be a good reason to have the same phrase on multiple skills.

Parameters
This is the section of the Skill that defines the conversation with the user and also allows setting any values that you want in the Action or fulfillment of the Skill.

From the Select Attribute drop-down list, choose the required attribute and click on Associate Attribute to display it in Parameters section. You can also enter the first character of the attribute name to scroll down the list to that letter. All the new Attributes must be defined in Attributes menu item. For further details please refer to Attributes section.  

The grid within the Parameters section includes the following columns: 

  • Name: Selected attribute name. This is defined when the Attribute is built outside of the skill.  
  • Identifier: This option is used internally to identify the saved attributes. 
  • Data Type: User receives a prompt message in Luma depending on the Data Type selected here. They can be Composite, Date_Time, Email, List, Number, Time and Text.
  • Value: Specify a parameter value. This will be the default value for that parameter if there is no value provided by the end user.
  • Mandatory: Select this checkbox, if the value is required for this parameter.
  • Prompts: If required, you can specify the Prompts for the required attribute. Click on ADD Prompt and specify the Prompts and No Data Prompts and then click Done.
  • No Data Prompt: This field is to let the user know when there is no response received from the underlying fulfillment being called.

Text Responses

This field provides a text response to the user once the Skill completes. In the "What is the guest WiFi network password" example you can provide the answer to the user's question. 

You can define multiple responses and Luma will choose a response at random. This provides for a more natural response to users when they don't always see the exact same response. Ensure that each response provides the answer to the user's question.

Click Save to reflect the changes in Luma bot or click Cancel.

Fulfilment

To retrieve data from external system, use Select Web Service. Skill names can be used as context variables in skill fulfilment as listed below.

KeyValue
Skill Name@context.SkillName

Select Web Service from the drop-down list. For further details refer to Web Services section.

Outbound Mapping

Request payload which needs to be passed to complete the request.

Form Data is the default encoding a web form uses to transfer data. This simulates filling a form on a website and submitting it by populating the key-value pair information.

Key is always the attribute name for the request and the Value is the information which we need to pass the payload to complete the request.

Key
Value
Description

 @context.Description

DescriptionLong @context.Details
Severity@context.Severity
Priority @context.Priority
Urgency

 @context.Urgency

Categorization@context.Categorization
KeyValue
Skill Name@context.SkillName

Example: To Create a ticket in ISM, we need to pass Description, Summary, Categorization, Priority information in the payload and the values for these parameters can be from the prompts and values provided in slots.

Key attributes are the attributes need to be passed to the payload to create the ticket, the values are the information which is captured in the Luma attributes from the slot population and will be passed to the request.

  • Advanced: Select this check box if you want to pass all the information you put in the text area gets sent with the request, this is mainly used in case if the attribute value cannot be populated directly and the value is again another JSON (Nested JSON). As shown below in the eg. if we need to populate multiple custom attributes in a ticket using the payload then the Advanced section will look as below. 

    {  
       "Impact":"@context.Impact",
       "Description":"@context.Description",
       "CustomAttributes":{  
          "Business_Criticality":"@context.Business_Criticality",
          "Active_Directory_Account_Data":"@context.Active_Directory_Account_Data"
       },
       "Priority":"@context.Priority",
       "DescriptionLong":"@context.Details",
       "Severity":"@context.Severity",
       "Urgency":"@context.Urgency",
       "Categorization":"@context.Categorization"
    }

  • As shown in the above example, for Custom Attributes Key, the values we are passing are for both Business_Criticality and Active_Directory_Account_Data and the remaining attribute has direct values associated.

  • Click Update to save your modified outbound data.


Inbound Mapping

Context attributes set in the Inbound Mapping webservice in an action will be available during skill fulfilment. For example, @context.created_id Key can be used during the skill fulfilment.