Best practices for skill design

Use these best practices when designing your skills:

  • API Fulfillment:

    Before you build a skill, determine if you require additional information to fulfill the request. For example, to access information for an employee, you may require the employee GUID for API execution after you specify the employee name. This requires an internal step to access the GUID. You can add that fulfillment requirement in the flow to match an employee name to a GUID.

    Review any available API documentation.

  • Utterances:
    • Only use as many utterances as required to ensure that utterance conflicts do not occur.
    • Do not include the word Coleman unnecessarily to invoke a skill, for example, Coleman, check my PTO.
    • Do not include these reserve words in your list of utterances:
      • Help
      • Cancel
      • Stop

      These are keywords that can be invoked at any time during a conversation and can lead to intent conflicts.

    • Consider unexpected ways a user might ask for this skill. Consider industry lingo that may apply.
    • Consider regional dialects. For example, depending on where your user is located, paid time off may be referred to as PTO, Vacation, Holiday, or Leave.
  • Confirmation Prompt:

    Does this skill require confirmation from the user before it runs? Consider an accidental input that may negatively affect the environment.

  • Requirements:

    Try to limit the skill to 3 requirements. Additional requirements increase execution time and cost. The more requirements you have for the skill, the less the skill feels like a quick conversation and more like a lengthy interrogation. Responding to three questions in a row is not a problem, five questions feel tedious, and ten can be too lengthy.

  • Response:
    • Ensure your response contains enough information to be useful.
    • Consider the audience for the skill. Is the user in an office, warehouse, or in transit?
    • Consider the most useful response. Should you navigate to a page with the answer or provide a message response.