Create, Configure, and Version Skills
Use the Skill Catalog, which you access by clicking Development > Skills in the side menu, to manage the life cycle of your skills. You can access most of the management tasks from a skill’s Options menu.
When the Show Only Latest switch is turned on in the Skill Catalog, only the most recently updated version of each skill appears. Because the version values are free form, the page uses the date last updated to determine which is the latest version.
Create from Scratch
You can create a skill by cloning a version of another skill or by importing one, or you can build one from scratch, as described here.
-
Click to open the side menu, select Development > Skills, and click New Skill.
-
In the Create Skill dialog, fill in the required fields.
- In the Platform Version field, optionally select a different platform version.
This setting affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents. By default, this is set to the most recent platform version.
If you specifically need the clone to behave like skills based on a different platform version, select the platform version used by those skills.
See Platform Version.
-
If you have selected platform version 20.12 or higher, from the Primary Language field, select the default language for your skill.
If you plan to design the skill for multiple languages, consider your choice very carefully. In particular, if you want to support any languages other than the natively-supported languages, you need to scroll down to the Translation Service section of the dropdown and select English from there.
See Languages and Skills for detailed information on designing your skills for your desired target languages.
Note
On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected for the skill when you set it up with a translation service. -
Click Create.
After you create the skill, it appears in the Skill Catalog in draft mode.
Clone
If you want to create a skill that is similar to an existing skill, or if you want to reuse the artifacts of an existing skill, you can create the skill by cloning.
To clone a version of a skill:
-
From the Skill Catalog, locate the version to clone from.
-
Click the Options icon, and select Clone.
- Complete the dialog, paying particular attention to these fields:
- Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.
If you specifically need the clone to behave just like the base skill, select the platform version used by the base skill.
See Platform Version.
- Primary Language: (Appears only if the selected platform version is 20.12 or higher.) This determines both the default language for the skill and whether the skill will use native support for that language or rely on a translation service.
If you plan to design the skill for multiple languages, consider your choice here very carefully. In particular, if you want to support any languages other than the natively-supported languages, you should scroll down to the Translation Service section of the dropdown and select English from there.
See Languages and Skills for detailed information on designing your skills for your desired target languages.
Note
On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected if you have set up the skill with a translation service.
- Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.
If the skill uses embedded component services, then the clone's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (
embedded-custom-component-service-count
), then Digital Assistant won't create the clone. If you need to raise the limit, you can request an increase.
For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component
services in skills that are downloaded from the Skill Store are not counted.
Create by Import
You can create a skill by importing a version of a skill that was exported from another instance. The imported skill will be in draft mode, even if it was published in the source instance.
To import a version of a skill:
-
From the Skill Catalog, click Import Skill.
-
Upload the ZIP file that contains the exported skill.
- By default, Insights is disabled for imported skills. To activate the Insights reporting for the imported skill, first click , then choose Enable Insights.
Tip:
If you want to export a version, make changes in the exported files, and then import it into the same instance, don’t forget to change the version. Otherwise, Digital Assistant won’t let you import it.If the skill uses embedded component services, then the imported skill's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (
embedded-custom-component-service-count
), then Digital Assistant won't import the skill. If you need to raise the limit, you can request an increase.
For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component
services in skills that are downloaded from the Skill Store are not counted.
Create New Version
At some point, you might want to create another version of a skill, such as to add new features.
To create another version:
-
From the Skill Catalog, locate the version from which to create another version.
-
Click the Options icon, and select New Version.
- Complete the dialog, paying particular attention to these fields:
- Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.
If you specifically need this version of the skill to behave just like the previous version, select the platform version used by the base skill.
See Platform Version.
- Primary Language: (Appears only if the selected platform version is 20.12 or higher.) This determines both the default language for the skill and whether the skill will use native support for that language or rely on a translation service.
If you plan to design the skill for multiple languages, consider your choice here very carefully. In particular, if you want to support any languages other than the natively-supported languages, you should scroll down to the Translation Service section of the dropdown and select English from there.
See Languages and Skills for detailed information on designing your skills for your desired target languages.
Note
On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected if you have set up the skill with a translation service.
- Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.
If the skill uses embedded component services, then the version's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (
embedded-custom-component-service-count
), then Digital Assistant won't create the version. If you need to raise the limit, you can request an
increase. For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component
services in skills that are downloaded from the Skill Store are not counted.
Dialog Mode
When you create a skill, you have two options for how to design the dialog flow:
- Visual. You use the Visual Flow Designer to design dialog flows on a canvas with tiles for each state and with the connections between states also represented visually. Variables, parameters, and component properties are defined in specialized editors and dialogs. In addition, the visual editor enables you to create modular flows. This is the default mode for new skills.
- YAML. You define the framework of the user-skill exchange in a simple markup language that lets you describe a dialog both in terms of what your skill says and what it does. The whole dialog flow definition is defined in a single file.
Configure for Use In a Digital Assistant
To prepare a version of a skill to be used in a digital assistant, configure the following settings:
-
Invocation Name: This is the name with which the user can explicitly invoke the skill in the digital assistant.
-
Example Utterances: These help the Intent Engine identify when the user wants to invoke that skill. In the example utterances, it is best to also include the invocation name to improve matching user utterances with the skill.
The first few utterances also appear on the card for the skill that the digital assistant supplies by default for the welcome and help states.
For skills developed in YAML mode, you can optionally specify the Start State, Welcome State, and Help State settings. See Start, Welcome, and Help States. (For skills developed in Visual mode these settings are not available. Instead, you specify these states using events. See Built-In Events for the Main Flow.)
In addition, you can use the Group field to group the skill with other related skills. This can improve routing behavior in your digital assistant. The skill group assignment can be changed at the digital assistant level. See Skill Groups.
To access these settings:
-
Click to open the side menu, select Development > Skills, and open your skill.
-
In the left navigation for the skill, click and select the Digital Assistant tab.
Publish
When you’ve completed building a version, you can lock it down by publishing it. The only modification that you can make for a published skill is to change custom parameter values on the Configuration tab. If you want to make further modifications, you must create another version and work on that one.
To publish a version:
- If the skill has intents or Q&A, make sure it has been trained. You must train it before you can publish it.
-
From the Skill Catalog, locate the version that you want to publish.
-
Click the Options icon, and select Publish.
The skill version in the Skill Catalog now has a lock icon to show that it’s published.
Export a Skill to Another Instance
If you have multiple Digital Assistant instances and you want to copy a skill from one instance to another, you use the Export and Import commands:
-
Log in to the instance that you want to export the skill from.
-
Click to open the side menu and select Development > Skills.
-
In the tile for the skill that you want to export, click and select Export.
A zip file with the skill will be downloaded to your system.
-
Log in to the instance that you want to export the skill to.
-
Click to open the side menu and select Development > Skills.
-
Click Import Skill.
-
Upload the ZIP file that contains the exported skill.
- By default, Insights is disabled for imported skills. To activate the Insights reporting for the imported skill, first click , then choose Enable Insights.
The imported skill will be in draft mode, even if it was published in the source instance.
The Skill Development Process
-
Create Intents—Start off by creating intents. Intents illustrate your use case by describing the various actions that your skill helps its users complete. If your skill enables users to perform various banking transactions, for example, then you could create intents like CheckBalance or TransferMoney. Intents not only describe what your skill can do, they are also the key to your skill’s intelligence: they enable it to recognize user input because each intent has a set of typical user statements known as utterances associated with it. While these phrases share the same meaning, they make your skill resilient because they’re also varied (for example, What’s my savings account balance? and How much is in my checking account?). See Intents.
-
Train the Skill—To enable your skill to reference intents when it parses the user input, you need to train it. Specifically, you need to train it with the intents and their utterances (collectively, the training data), so that it can resolve the user input to one of the intents. By training your skill, you leverage the language intelligence framework. Its algorithms enable your skill to not only recognize the sample phrases that belong to each intent, but similar phrases as well. See Intent Training and Testing.
-
Create Entities— In some cases, you may need to provide some context to enable your skill to complete a user request. While some user requests might resolve to the same intent (What’s my savings account balance? and How much is in my checking account? would both resolve to the CheckBalance intent, for example), they are nonetheless asking for different things. To clarify the request, you would add an entity. Using the banking skill example, an entity called AccountType, which defines values called checking and saving would enable the skill to parse the user request and respond appropriately. See Entities.
-
Create the Dialog Flow— Next, you need to give the skill the wherewithal to express its intelligence to its users by creating the dialog flow. The dialog flow describes how you skill reacts as different intents are resolved. It defines what your skill says to its users, how it prompts them for input, and how it returns data. See Visual Flow Designer.
-
Integrate Custom Components—At this point, your skill can recognize input, but it can’t respond to it. To put your skill’s intelligence to work, you need to add components. Components enable your skill to do its job. There are two types of components: the ones we provide that perform functions ranging from holding the intent that’s resolved from the user’s message to outputting text, and the ones that you create to perform tasks specific to a particular skill like checking an account balance. See Add Component Package to a Skill.
-
Test the Skill—Once you’ve started your dialog flow, you can chat with your skill to test it out.
-
(Optionally) Route to Channels for User Messaging and Other Capabilities—If your skill will not be added to a digital assistant, you'll need to add it to one or more channels. Users chat with your skill through various messaging platforms, proprietary messaging apps, and web pages. You can route one or more of these user messaging channels to your skill. It runs equally well on any of them, whether they’re text-only or support scrolling cards, UI elements, and images. In addition to these user-facing channels, there are other channels: one that links your skill to a customer-support system and another that routes notifications from an external application that prompts the skill to initiate a conversation.
- Review Insights Reports—After you've published your skill, you can review the Insights reports to find out if its customers are using it as intended. From high-level usage metrics and conversation trends to individual views of intents, their execution paths, and conversation transcripts, these reports give you different perspectives on how well your skill supports its customers, and where it prevents them from completing a task. These reports not only let you spot problem areas quickly, but they also suggest user input that can improve your skill's intent resolution. See Insights.
Validate Your Work
As you iterate through your dialog flow definitions, intents, entities, and digital
assistants, you can check your work and apply best practices by clicking
Validate in the banner.
For skills, the resulting Validation Results dialog lists critical errors that you must fix, warnings and tips that point out where you may need to make improvements.
Skill confidence threshold is set to 0.4. We recommend to set the threshold to at least 0.7 to improve accuracy of intent matching.
For example:
The utterance 'Cancel my order' is used in 2 intents: wineSkill, pizzaSkill. Duplicate utterances may cause ambiguity in the model.
You can filter these messages by warnings or tips. You can hide or reopen the Validation Results dialog by clicking Findings.