Skills

Health Bot enables you to extend your bot using Bot Framework Skills.

A skill is a bot that can perform a set of tasks for another bot. A skill consumer is a bot that can call one or more skills. In this way you can create a single user-facing bot and extend it with one or more skills. The user interacts directly with the skill consumer, and the skill consumer delegates some of its conversational logic to the skill.

Expose Health Bot as a Skill

The Health Bot allows you to develop your bot and then expose it to be consumed by various other skill consumers. When your Health Bot is used as a skill all the back-and-forth messages between a user and the consumer bot are routed to the skill, such that the messages are accounted to the skill’s usage and billing. For this reason only users with Admin access right can expose the Health Bot as a skill or modify configurations that affect the allowed consumers bots.

When Health Bot is triggered as a skill it receives the user's utterance, and using the Language Model concept triggers the relevant scenario logic in response. Upon the conversation completing or conversation timeout, the skill sends an endOfConversation activity, so that the skill consumer knows when to stop forwarding activities to the skill.

  1. Open the Health Bot Management portal, login to your account as an administrator and navigate to Integration >> Skills. Here you should turn on the Expose as a Skill switch. Screen shot of the On\Off switch
  2. You will be prompted for the details of your skill, that will be added to the skill manifest.
  • Name: Add a name for your skill.
  • Description: Add a description for your skill (optional).
  • Publisher Name: Add the name of the skill publisher. Screen shot of the skill properties

Provide the values and press 'Save'. You can modify these values also later from the Skill Properties section.

Skill Manifest

A skill manifest is a JSON file that describes the actions a skill can perform, its input and output parameters, and the skill's endpoints. The manifest contains the information a developer needs to access the skill from another bot. For more details see Bot Framework's documentation on How to write a v2.1 skill manifest.

When you expose the Health Bot as a skill, a manifest is created describing your skill. Health Bot skill support message actions, that contains the user's utterance, hence the skill manifest contains one message activity:

    {
    "$schema": "https://schemas.botframework.com/schemas/skills/v2.1/skill-manifest.json",
    "$id": <SKILL_NAME>,
    "name": <SKILL_NAME>,
    "version": "1.0",
    "description": <SKILL_DESCRIPTION>,
    "publisherName": <PUBLISHER_NAME>,
    "tags": [],
    "endpoints": [
        {
            "name": "default",
            "protocol": "BotFrameworkV3",
            "description": "Production endpoint for Health Bot Skill " + <SKILL_NAME>,
            "endpointUrl": "https://bot-api-us.healthbot.microsoft.com/bot/dynabot/" + <BOT_ID> + "/skill/consume",
            "msAppId": <BOT_MS_APP_ID>
        }
        ],
    "activities":
        {
            "message":
            {
                "type":"message",
                "description":"Receives the user's' utterance and attempts to resolve it using the skill's LU models"
            }
        }
    }

You can either download the manifest as a json file, or access it from a provided end point: Skill manifest

Skill Consumers

Health Bot skill implements access restrictions, such that you can restrict access to the skill to specific skill consumers. Upon exposing your Health Bot as a skill the restrict option is enabled by default, such that request from any skill consumer will be rejected. Restrict all skill consumers

To allow request from skill consumer you can choose one of the two options:

  1. Allow access to selected skill consumer, by enabling the restrict switch and adding the skills consumer's MS-App IDs to the allowed consumers list: Allow selected skill consumers

  2. Allow access to any skill consumer, by disabling the restrict switch. Allow all skill consumers

Consume Skills - Coming Soon...

The Health Bot enables you to extend your bot using other skills - either Bot Framework skills or Health Bot skills. You can trigger a skill from within Health Bot Scenario Editor using the Invoke Skill scenario element.

Learn about invoking skills