intentGroup!
The intentGroup! trigger tag declares nested intents by which the dialog can enter a state.
The parent intent, specified after the tag, does not activate the state.
If you want the dialog to enter a state by the parent intent, use a separate intent! tag for it:
state:
intentGroup!: /Example
intent!: /Example
tip
intentGroup! is a global tag: transitions by this tag can be made from anywhere in the script.Value
A path to the intent is specified after the tag.
Within the path, / is a separator between nesting levels:
/hi— the path consists of the/character and the intent name./hi/politely— a nested intent. There is no upper limit to the nesting depth.
How to use
Connecting the bot knowledge base to the script:
state: KnowledgeBase
intentGroup!: /KnowledgeBase
script: $faq.pushReplies();
caution
By default, the state activated by the intent with the highest weight is triggered.
But if you use
intentGroup or intentGroup! together with intent or intent!,
the state triggering priority can change.Let’s look at the script example below, assuming the /KnowledgeBase/FAQ.Courses/Price intent is recognized:
- The
PriceIntstate will be activated because it has theintent!tag. It will have the highest priority. - The priority of the
FAQ.Coursesstate will be lower because it can only be activated by theintentGroup!tag. - The
AllFaqsstate will have the lowest priority because it is activated by the most general group. - The
Pricestate will not activated at all:KnowledgeBase/FAQ.Courses/Priceis the parent intent.
state: AllFaqs
intentGroup!: /KnowledgeBase
a: I found the answer in my knowledge base.
script: $faq.pushReplies();
state: FAQ.Courses
intentGroup!: /KnowledgeBase/FAQ.Courses
a: Are you interested in our courses? I found the answer for you.
script: $faq.pushReplies();
state: Price
intentGroup!: /KnowledgeBase/FAQ.Courses/Price
script: $faq.pushReplies();
state: PriceInt
intent!: /KnowledgeBase/FAQ.Courses/Price
script: $faq.pushReplies();