Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this document,

Table of Contents

Taxonomy Node

The Taxonomy node lets you use the taxonomy tree in Experience Manager with the flows in Experience Designer. There are three actions to choose from:

  • Get

  • Create

  • Upsert

Get action

Get action is used to retrieve Taxonomy data from the database. Taxonomy Node inputs leverage the mustache {{tag}} template language, which is applied to the node input either reference from msg.payload or msg

Taxonomy Id

The ID of the taxonomy tree should be given here. You can give an ID manually or can populate it dynamically populate the field using a mustache tag.

For example: {{msg.payload.voiceMenuId}}

Category Phrase

You can manually fill this field or make use of a mustache tag. The node searches the first-level categories in the taxonomy tree for a match. If found, it selects that taxonomy branch.

For example, if the Category Phrase is Poison, the category is saved in a voice session so when you search for treatment or symptoms, it remembers to search only the Poison branch. If nothing is found, it searches the rest of the taxonomy for a match.

Example Mustache Tag: {{msg.payload.request.intent.slots.category.value}}

Note: The category used in the mustache tag should be the same as the slot name used in the utterances in the topic intent.

For example, the auto-generated slot name for the taxonomy topics is First_Aid_Topics. The alternate slot name created to use within the intent is category, which is used in all the utterances. The same slot name (ie. category) is passed in the mustache tag in the Taxonomy node.

Session Management for Category - If a Category is found, the Taxonomy node stores the Category in the session and uses it in the next query if a category is not passed to it.

SubCategory Phrase

You can manually fill this field or make use of a mustache tag. The node Searches within the taxonomy branch mentioned in the “Category Phrase” field.

Example Mustache Tag: {{msg.payload.request.intent.slots.subCategory.value}}

Note: The subCategory used in the mustache tag should be the same as the slot name used in the utterances in the subtopic intent.

For example, the auto-generated slot name for this taxonomy subtopics is First_Aid_Subtopics. The alternate slot name created to use within the intent is subCategory, which is used in all the utterances. The same slot name (ie. subCategory) is passed in the mustache tag in the SubCategory Phrase field of the Taxonomy node.

WhatAskStart

The text provided in the “WhatAskStart” can be accessed with the properties “whatYouCanAskParentChild” and “whatYouCanAsk”.

The default value of the field is,

Code Block
for other article{{plural}} on {{Category}}, you can say <break time="400ms"/>

WhatAskLoop

This field is used for speech synthesis of the branch titles that are suggested in the “WhatAskStart” field.

The default value of the field is,

Code Block
<prosody volume="x-loud"> {{FirstMatchPhrase}} </prosody><break time="500ms"/>

Given below is the sample output payload, we used in Example flow 1:

WhatAskStart – For more info on {{Category}}, you can say

WhatAskLoop – <amazon:effect name="whispered"> {{FirstMatchPhrase}} </amazon:effect> <break time='1000ms'/>

In the output payload,

whatYouCanAskParentChild” – This property value contains the immediate subtopics under the branch queried for.

Code Block
Msg.payload.orbita.taxonomy.whatYouCanAsk

whatYouCanAsk” – This property value contains all the child topics under the topic queried for.

Code Block
Msg.payload.orbita.taxonomy.whatYouCanAskParentChild

Either of these parameters can be used in the say node as shown in the below screenshot to suggest the subtopics to the user.

Multi Category

This message will be sent to the output pin if multiple categories are found.

The default message is,

Code Block
There are {{length}}, main topics found, for <break time='300ms'/> {{Category}}, you can say <break time='500ms'/>

Multi Sub Category

This message will be sent to the output pin if multiple subcategories are found.

The default message is,

Code Block
There are {{length}}, sub topics found, for <break time='300ms'/> {{subCategory}}, you can say <break time='500ms'/>

Replace Words

A comma-delimited list of words to replace.

For example: "sympton:symptom,original:substitute"

Note: The language processors sometimes generate misspelled words, or words not in your context, such as byte versus bite, joking versus choking

Create Action

Using the Create action, you can create taxonomy categories or subcategories using the Taxonomy node.

  • Taxonomy. Select a Taxonomy Tree that you created in the Experience Manager.

  • Payload. JSON code of the categories or subcategories you want to create in the Taxonomy Tree.

Sample code:

Code Block
{
  "data" : {
              "allowJump" : true,
              "voice"     : {
                              "sayText"  : "",
                              "rePrompt" : ""
                            },

              "chat"      : {
                              "chatText" : "",
                              "rePrompt" : ""
                            },

              "screen"   : {
                             "shortTitle" : "",
                             "longTitle"  : "",
                             "body"       : "",
                             "smallImage" : "",
                             "largeImage" : ""
                           },

              "buttons"  : {
                             "type"    : "dropdown",
                             "name"    : "buttons",
                             "choices" : []
                           },

              "title"    : "foods",
              "SayText"  : "",
              "RePrompt" : "",
              "parentId" : 858870919717
            }
}

Note: If a valid parentId is not given then, by default, it updates the Root node.

Upsert Action

Using Upsert action, you can update any existing taxonomy categories or subcategories. If no entries are found, the system will insert the queried values into the database.

  • Taxonomy. Select a taxonomy tree that you created in the Experience Manager.

  • Payload. JSON code of the categories or subcategories you want to create or upsert in the taxonomy tree.

Note: Upsert action searches the records and if nothing is found, it creates a new one.

Sample Payload format:

Code Block
{
  "data" : {
             "allowJump" : true,
             "voice"     : {
                             "sayText"  : "Taxonomy level one",
                             "rePrompt" : "Taxonomy level one"
                           },

             "chat"      : {
                             "chatText" : "Taxonomy level one",
                             "rePrompt" : "Taxonomy level one"
                           },

             "screen"    : {
                             "shortTitle" : "",
                             "longTitle"  : "",
                             "body"       : "",
                             "smallImage" : "",
                             "largeImage" : ""
                           },

             "buttons"   : {
                             "type"    : "dropdown",
                             "name"    : "buttons",
                             "choices" : []
                           },

             "title"     : "Taxonomy level one",
             "SayText"   : "",
             "RePrompt"  : "",
             "parentId"  : 349932564080
           }
}

Note: If a valid parentId is not given then, by default, it updates the Root node.

Output Payload

SayText

Code Block
msg.payload.orbita.taxonomy.SayText

Reprompt

Code Block
msg.payload.orbita.taxonomy.RePrompt
  • If there is more than one result, the following payload contains the concatenated result.

    Code Block
    msg.payload.orbita.taxonomy.concatenateResults 
  • Ideally, there is only one array of results. If more than one document had the same weighted results then there will be multiple arrays of results.

    Code Block
    msg.payload.orbita.taxonomy.maxArrayResults
  • The value of this payload will be true if the category was found.

    Code Block
    msg.payload.orbita.taxonomy.foundBranch
  • The weight of the match; if 0, no match found.

    Code Block
    msg.payload.orbita.taxonomy.maxValue
  • If true, a category was used to narrow the search.

    Code Block
    msg.payload.orbita.taxonomy.foundBranch
  • The following payload returns the current taxonomy Id, such as 591f5792e2386b8516977df1.

    Code Block
    msg.payload.orbita.taxonomy.TaxonomyId
  • The following payload returns the words used to search Subcategory.

    Code Block
    msg.payload.orbita.taxonomy.SubCategoryList
  • The following payload returns the words used to search Category.

    Code Block
    msg.payload.orbita.taxonomy.category
  • The following payload returns a list of all the titles under the selected branch.

    Code Block
    msg.payload.orbita.taxonomy.Taxonomy.BranchTitles 
  • The maxArrayResults will display an array of results found. Ideally, the .length property of this array should be 1.

    Code Block
    msg.payload.orbita.taxonomy.maxArrayResults
  • All the information about this node, which branch it belongs to, what are the child branches, how many child branches it has are displayed in the following payload.

    Code Block
    msg.payload.orbita.taxonomy.nodeInformation
  • The following payload contains the information of the parent node without the children.

    Code Block
    msg.payload.orbita.taxonomy.nodeInformation.parentData
  • The following payload contains the information of the parent node including the children.

    Code Block
     msg.payload.orbita.taxonomy.nodeInformation.nodeData
  • The following payload returns the node’s category.

    Code Block
    msg.payload.orbita.taxonomy.nodeInformation.nodeCategory
  • The titles of the parent node and children nodes related to the node that is found, but not sub-children.

    Code Block
    msg.payload.orbita.taxonomy.nodeInformation.ParentChildTitles
  • The following payload contains all the subcategory phrases in the Taxonomy. You should copy this to the "developer.amazon" custom slot SubCategoryList.

    Code Block
    msg.payload.orbita.taxonomy.SubCategoryList
  • The following payload returns all the titles in the first level of the taxonomy.

    Code Block
    msg.payload.orbita.taxonomy.rootTitles
  • The following payload returns all the categories in the taxonomy. You should copy this to the category slot.

    Code Block
    msg.payload.orbita.taxonomy.CategoryList
  • This is formatted content such as for other articles on hypothermia. You can say treatment, symptoms, or more information.

    Code Block
    msg.payload.orbita.taxonomy.whatYouCanAsk
  • This is formatted content; a limited list of navigation items to just the child nodes, (but not sub-child nodes) and parent (if it is not home). Example: for other articles on hypothermia, you can say treatment, symptoms, or more information.

    Code Block
    msg.payload.orbita.taxonomy.whatYouCanAskParentChild

Related Articles

Filter by label (Content by label)
showLabelsfalse
max5
sorttitle
showSpacefalse
cqllabel = "experience-designer"