An "Intent" is intention behind a message received by the system, whoever the sender is and whatever the format of the message is.
When a message is received, FRAPPs try match the message with a particular intent using established rules or using Natural Language Processing models.
In order for a purposeful conversation to be held, each Intent is subject to a four-stage process: Matching; Validation; Resolution; Prediction; Error.
To allow processing in this way, the developer must implement the Intent class's corresponding closures: onMatching(); onValidation(); on Resolution(); and onPrediction(); and onError(). The FrontM platform executes them as follows:
When a new message arrives:
- The Intent Matching process determines the Intent. This is done via scripts written by the developer in the onMatching() closure, the Natural Language Processing (NLP) engine and, if needed, any ML models that are available;
- The Intent Validation process determines whether the App is in the correct conversation State (i.e. whether the conditions in the state object are correct, with particular properties having particular values) in order for there to be a resolution. This process step is optional;
- If validation is successful, the FrontM platform will execute the Intent Resolution process. This is asynchronous by nature (i.e. it may have to make external calls via, say, an API);
- The Intent Prediction process will predict the user's next Intent. The FrontM platform calculates the probability of each Intent in the App being the user's next choice. The most likely will then be presented to the user as (a) Smart Suggestion(s). This process will execute even if the Intent Validation process fails.
If an error state is set during the Intent Execution Flow, the Intent Error Handling Process is triggered.