An Intent is what the Human is asking the system to do. For example: “Show me the menu.”
In nativeMsg application, there are a set of predefined intents that can be used as starting intent (nm:start), intent to show the menu (nm::menu), and intent to get the help information (nm:help).
In conversations with Bot, humans can break out, cancel, or start the current conversation over at any time. There are special intents that reflect this kind of situation: nm:breakOut, nm:cancel and nm:startOver. Usually these intents are used internally by dialog actions, which allow us to mark logical start and endpoints of the dialog inside the conversation and control its execution.
To do not extract intents from some text samples they can be listed as expressions for nm:text intent.
Intents recognition can be controlled by using contexts. Context is specified by context property of interaction and context value is automatically assigned to nm:context attribute when the interaction is started. Because nm:context is an attribute it can be manually set or reset at any time by using updateAttribute action. Training expressions can use excludeContext property to indicate that they must not be taken into account when intent recognition will be done within a specified context.
nm:text attribute can be used to access the text of the current inbound message. If the current inbound message does not have the text or its text is empty then nm:text is set to null.
nm:payload attribute can be used to access the payload of the current inbound message. If the current inbound message does not have the payload or its payload is empty then nm:payload is set to null. The payload can be set for postback buttons and quick replies to provide information for further processing of human actions.
For more information about managing intents, see Managing intents.