Publishing

Publishing is the process of deploying a skill either to a designated group of people that you choose, or to production that goes to the outside world to a channel such as Cortana. A botlet becomes a skill once it is published.

There are two publishing principles to consider when you are ready to publish a skill.

Developer Facing - Publishing to the Store

When you publish a skill to the Store, this is considered developer facing, and it enables reusing an asset as a subcomponent in a flow. Assets are merely botlets, services, entity types, and renderers.

User Facing - Publishing to a Channel

User facing means that users on a particular channel can talk to your skill and use its functionality. For example, if you publish a skill to Cortana, this means that Cortana users can interact with your skill.

Disclaimers

  • If a developer doesn’t have write permissions to publish a skill, they won’t be able to publish it to the outside world.
  • Published skills cannot be unpublished or deleted unless a request is made to the Workspace administrator. However, you can replace an updated version of a skill given it passes the required validation and certification requirements determined by the Cortana Skills team.

Contacting Support

If you encounter a technical issue and you require assistance, please send an e-mail message to:

kstore@microsoft.com

MSDN - Cortana Skills Forums

MSDN Forums

Stackoverflow - Cortana Skills Kit Questions

Stackoverflow - Cortana Skills Kit Questions

Supported Channels

The following is a list of supported channels for publishing.

Cortana

In Cortana, you can test out the skill for yourself. This is called Cortana Self. You can share the skill with your associates, but it is not exposed to the outside world. When you publish a Cortana skill to World, a request will be submitted to have it certified so that it can get deployed to the outside world.

For more details about the Cortana skills certification requirements and the Cortana publishing process, see:

Store - (Coming soon.)

Note: In the future, the above list will expand to other channels.

Deployment Options

Self

Deploying to Self occurs when the Cortana channel is added to a botlet or during the creation of Cortana skill in the Workspace. The purpose of the Self deployment is to make the skill only available to yourself so that you can test it out and observe its behavior.

Group

Publishing to Group occurs when you want to deploy a skill to a designated list of users that you want to try out your skill. No validation for correct MSAs is done in this deployment other than it just confirms the existence of e-mail addresses of the targeted group. Publishing a skill to a group creates a new botlet version.

Notes:

  • Making edits to a skill deployed to a group (i.e., adding new MSAs or removing existing ones) does not create a new version of the skill.
  • You can republish a skill to a group at any time. You just need to ensure that people are added to the group by adding a semicolon separated with MSA e-mail addresses.

World

Deploying to world is used for a world-wide release of your skill. This means that your skill is available to the Cortana channel only after it gets certified by the Cortana skills team.

For details and guidelines about the Cortana skills certification, see Cortana Skills Certification Requirements.

The Cortana certification process begins in the Workspace Control Panel where you must fill out a set of required fields located in the Overview, Discoverability, and Publishing menu tabs.

Once you submit a Cortana skill for certification, its code gets locked in placed. Locking a skill in place means that you can continue working on it. However, the new modifications made to it will not affect the copy of the skill that may have been previously approved for certification. To invoke the latest changes of your skill, you will need to re-submit your skill for the certification process in the Workspace.

For more information about the Cortana publishing process, see Publishing Cortana Skills.

Additional Information:

  • You can always withdrawal from the Cortana certification process as long as your skill has not been approved by the Cortana skills team. If the skill has been approved, you will need to unpublish it in order to remove it from the channel.
  • Republishing a skill to world will require a new certification. This means that you will need re-submit your skill via the Workspace in order for the Cortana Skills team to review it, and then recertify it.

Publishing to a Channel

The information that follows describes the three options for publishing a skill the Cortana channel.

Publish to Self

  1. In the Items Tree, select an organization that contains the botlet that you want to publish to a channel (i.e., Cortana).
  2. In the Control Panel, click the Publish menu tab.
alternate text
  1. Click the Publish to Channel drop-down arrow, select Cortana, and then click Choose channel.
alternate text
  1. Click Publish to Self.
alternate text
  1. Click Upload a new skill image.
Note: For publishing to Self and to Group, it is not required that you upload an image for your skill. However, it is a requirement that you upload an image if you publish a skill to World.
  1. Enter a Skill Name and Invocation name.

Notes: The skill name is automatically generated during the creation of the botlet. You may modify the skill. An invocation name is the command to invoke your skill in Cortana. As an example, “Ask Cortana” is the invocation phrase.

alternate text

  1. (Optional) Click the drop-down arrow to add User data entity choices.

Notes: If you select any of the User data entity choices, they will automatically get carried over to the other publishing options Group and World. For more details about these entity choices and how they are called in the SCL code, refer to the prebuilt botlet get_personal_info.

alternate text
  1. Click Publish.

The result of the skill published to Self is shown in the image below.

alternate text

Publish to Group

When publishing a skill to Group, all the property fields that were entered in the publish to Self option are carried over to the publish to Group fields. This is also true if you decide to publish your skill to World. It is important to note that it is not a requirement that you must publish your skill to a group of designated users. It is completely your choice if you want to publish your skill directly to the World instead.

  1. In the Items Tree, select an organization that contains the botlet that you want to publish to Group.
  2. In the Control Panel, click the Publish menu tab.
  3. Click Publish to a Channel, and then click Publish to Group.
alternate text
  1. Click Upload a new skill image.

Note: It is optional to not include an image when publishing a skill to Group. However, it is a requirement that you upload an image if you publish a skill to World.

alternate text
  1. (Optional) You may modify the display text for the skill along with the invocation name.
alternate text
  1. Enter the MSA e-mail addresses, and then click Add.

Notes: Use semicolons to separate multiple MSA e-mail addresses (e.g., cortestdev@hotmail.com; cortestdev@gmail.com). To delete an MSA e-mail address, click the Delete.

alternate text
  1. (Optional) Click the drop-down arrow to add User data entity choices.
Note: If you selected some of the User data entity choices in the publish to Self option, they will get automatically get carried over to the publishing options Group and World. If you need to add more user data entity choices, click the drop-down list and select the ones you want to include in your skill. For more details about these entity choices and how they are called in the SCL code, refer to the prebuilt botlet get_personal_info.
  1. Click Publish latest changes.

The result of the skill published to Group is shown in the image below.

alternate text

Notes: The skill developer must manually e-mail the Group Access URL to the list of designated users with MSA accounts.

When an MSA user receives the Group Access URL from the developer, they have the option to Accept or Decline joining the skill test group. If the MSA user accepts joining the skill test group, they can test out the skill in Cortana. If they decline joining the test group, they will not be able to test the skill out in Cortana.

Publish to World

This section describes the remaining required fields that must be completed before your skill can be submitted to the Cortana team for review.

If you complete some of the required fields, but you need to stop what you are doing. Don’t worry about having to re-enter the fields all over again. Just click the Save and Close button located at the bottom of the Publish to World window. This feature enables you to preserve the fields that you’ve already populated. You can then go back and resume populating the rest of the required fields. For details on resuming your work, see: Resume Editing - Publish to World.

  1. In the Items Tree, select an organization that contains the botlet that you want to publish to World.
  2. In the Control Panel, click the Publish menu tab.
  3. Click Publish to World.
alternate text
  1. Click Upload a new skill image.
Note: An image is required for your skill to be published to World. If you do not include an image, then the Preview button will be inactive.
  1. (Optional) You may modify the display text for the skill along with the invocation name.
  2. Click Choose a category.
  3. Enter a Short Description and Long Description.
  4. Click to select Supported Platforms from the drop-down list.

Notes: If you do not include all the support platforms in this step, then you must enter a disclaimer as noted in step 16. If you include all the supported platforms in this step, then the disclaimer noted in step 16 is optional. You may also delete a supported platform by clicking Delete.

alternate text
  1. Click Yes if this Cortana skill collects personal information or click No if the skill does not collect personal information.
alternate text

Note: By clicking Yes proceed to step 10 if you want to add or remove any of the User Data entities. If you click No, then proceed to step 11 for adding a canvas to your skill.
  1. (Optional) You may add more User Data entities, or you may delete User Data entities. In the text field Additional User Data, specify any additional personal and identifying information the skill collects, stores, or uses to complete the skill experience.
For more details about these entity choices and how they are called in the SCL code, refer to the prebuilt botlet get_personal_info.
  1. Select a Canvas Screenshot, and then click Choose file.
alternate text

Notes: To select a canvas for a mobile device, click the Mobile, and then click Choose file. Select the image to upload and click Done. Repeat the same steps to select a canvas for a Desktop computer.
  1. For the Developer account type, click Developer or click Company, and then complete all the required fields.
Note: Select Developer if the skill is being represented by a developer. Select Company if the skill is being represented by a company.
  1. For Support Contact Information, enter an E-mail address and a URL to your website.
  2. (Optional) Enter Publisher Information.
Note: Enter a name, e-mail address and phone number if the publisher information is different than the developer account information.
  1. Enter URLs to your Privacy Policy and to your Terms of Use.
  2. Enter a Disclaimer.
  3. Enter Debug instructions.
  4. Click Preview.

The image below displays the status of the skill.

alternate text
  1. Click Submit for review.

Note: When a skill is submitted for review, you will not be able to edit its properties or delete it.

Additional Information

A review status message will display in the Publish to World panel indicating that your skill is being reviewed by the Cortana team. It is in this location that you need to verify if your skill has been accepted or rejected. If a skill has been rejected, details about the reasons why it has been rejected will be provided.

If you encounter a technical issue and you require assistance, please send an e-mail message to: kstore@microsoft.com

If you need more information about the skills certification requirements, see: Cortana Skills Certification Requirements. To read or post Cortana skills kit questions, visit Stackoverflow - Cortana Skills Kit Questions.

Withdrawing a Skill Submission

A skill that is submitted for the certification review may be withdrawn by the developer before it has been accepted by the Cortana Certification team. This means that the review process will be cancelled, yet the properties entered in Publish to World will still be saved. You can go back and make changes to your skill’s publishing properties and then resubmit it back for review and certification.

To withdraw a skill submission:

  1. Select your botlet in the Items Tree and click the Publish menu tab.
  2. Click the panel Publish to Word, and then click Withdraw your submission.
alternate text
  1. Click Withdraw to ensure that you want to withdraw the skill submission.

Editing Field Properties

The steps below describe how to edit field properties of skill. If your skill has been submitted for review, the edit feature is disabled. In order to edit a skill’s properties, you must first withdraw your skill submission.

  1. Select your botlet in the Items Tree and click the Publish menu tab.
  2. Select Publish to Self or Publish to Group, and then click Edit.
alternate text
  1. Modify the field properties, and then click Publish (i.e., Publish to Self) or Publish latest changes (i.e., Publish to Group).

Resume Editing - Publish to World

Since there are several required fields in the Publish to World window that must be completed before a skill can be submitted for review to the Cortana team, by clicking Save and Close in the Publish to World window will preserve the fields that you’ve already populated.

Click Resume editing to finish completing the rest of the required fields. This will enable you to pick up where you left off so that you can resume the process of submitting your skill for review.

alternate text

Deleting a Skill

The steps below describe how to delete a skill. If your skill has been submitted for review, the delete feature will be disabled. In order to delete a skill, you must first withdraw your skill submission.

Caution: Deleting a skill completely removes all instances of it from Publish to Self, Publish to Group, and Publish to World.

  1. Select your botlet in the Items Tree and click the Publish menu tab.
  2. Click Delete.
alternate text
  1. Click Delete to ensure that you want to delete the skill from the channel.