Skip to main content

Skill Definition

Overview

Each Skill has a skill-definition.json which defines its particular settings. This page describes all supported properties for a Skill Definition.

Skills can be managed from the Manage Skills section in DDNA Studio.

Properties

name (required)

string

The name of the Skill as shown in DDNA Studio.

summary (required)

string

A short one-sentence summary of the Skill.

description

string

A detailed multi-line description of the Skill.

category

string [ 'Featured' | 'ExternalPlatform' | null ]

Determines which visual category the Skill will be in when displayed in DDNA Studio. Only applies to Skills with config.skillType: 'BASE_CORPUS'.

status

string [ 'ACTIVE' | 'DEPRECATED' | 'DELETED' ]

Determines availability of a skill.

  • ACTIVE: Skill can be added to projects
  • DEPRECATED: Skill cannot be added to projects, but can continue to be used if already configured
  • DELETED: Skill cannot be added to projects, and projects using a deleted skill will encounter errors. Important: Consequently, skills should only be deleted where they have a Usage Count of 0.

endpointInitialize

string

URL of an endpoint. Called once when project is deployed.

endpointSession

string

URL of an endpoint. Called once at the start of every each user session.

endpointExecute (required)

string

URL of an endpoint. Main endpoint, called for each conversation turn for SKILL_API service providers. Websocket endpoint for SKILL_ASYNC_API services providers.

endpointEndProject

string

URL of an endpoint. Called after a project is deleted. Used to clean up any project-related data.

serviceProvider (required)

string ['WATSON', 'DIALOGFLOW','DIALOGFLOWCX', 'SKILL_API', 'SKILL_ASYNC_API', 'LUIS']

Used to indicate what platform the Skill has been built on.

config.skillType

string ['DEFAULT' | 'BASE_CORPUS' | 'PRE_PROCESS' | 'POST_PROCESS' | 'PRE_POST_PROCESS']

Type of Skill.

  • DEFAULT: This skill is meant to operate alongside other skills
  • BASE_CORPUS: This skill acts as a base conversation and can be used standalone or with other skills
  • PRE_PROCESS: This skill will pre-process user inputs before to any other skill
  • POST_PROCESS: This skill will post-process skill responses before they are spoken
  • PRE_POST_PROCESS: This skill combines the effects of PRE_PROCESS and POST_PROCESS skills
  • INTENT_MATCHER: This skill is used for intent matching to determine routing to other skills (not supported yet)

config.matchType

string ['INTENT' | 'CUSTOM' | 'FALLBACK']

Indicates when user input will be routed to the skill

  • INTENT: Match against one of the intents specified in the intents field
  • CUSTOM: Match against a phrase specified in the launchPhrases field
  • FALLBACK: Match against a fallback response from another preceding skill

config

SkillConfig object

A set of configuration settings which determine how your Skill can be used by a DDNA Studio project, and what project-specific config data should be captured for use by the Skill at runtime.

config.configMeta

array of MetaField

A list of metafields to configure a particular instance of a skill.

Configurations gathered here will be merged with privateConfig and passed to the skill.

Configurations with the same name will overwrite the privateConfig with the same name property, see Config Overwrite.

{
"label": "My Text",
"name": "my_text",
"type": "TEXT",
"placeholder": "",
"defaultValue": "default text",
"required": false,
"validationWarning": "Can only contain letters",
"validationRegex": "^[a-zA-Z]+$",
"toolTipText": "**Supports Markdown** - Basic text _styling_ and [links](http://google.com)"
}

config.privateConfig

array of NameValuePair objects

Private configuration supplied here will be passed to skills (e.g. API keys, API endpoints).

The value property supports any valid JSON type (string, number, array, object etc.).

Private configurations with the same name will be overwritten by configurations in configMeta with the same name property, see Config Overwrite.

{
"name": "my_private_string",
"value": "string"
}

config overwrite

When the Skill is registered, privateConfig and configMeta will be merged and in order to resolve conflicting name properties between them, configMeta will take precedence over privateConfig.

  configMeta: {
"name": "my_string",
"label": "My String",
"type": "TEXT"
},
privateConfig: {
"name": "my_string",
"value": "string"
}

config.privacyAndTerms

array of PrivacyAndTerms

A collection of links relevant to your Skill that should be displayed alongside the Skill description on the Skill Detail page in DDNA Studio. You may use these to display links to privacy policies and terms and conditions for your Skill and any third-party services used by the Skill.

These can be a collection of links relevant to your Skill that should be displayed alongside the Skill description on the Skill Detail page in DDNA Studio.

  • PrivacyAndTerms: A privacy policy or a terms of use would be associated with a organization. Each organization can have one to many links.
{
"links": [
{
"name": "My Privacy Policy",
"value": "https://www.my-organization.com/privacy-policy/"
},
{
"name": "My Terms and Conditions",
"value": "https://www.my-organization.com/terms/"
}
],
"organization": "My Organization"
}