Conversational logics

The logics that enable the construction of complex and structured conversational flows are:

1. Contextual Awareness

Conversational context management, that is, the ability to calibrate the agent’s response based on the history and context of the conversation itself, is enabled by some important features:

  1. Multi-level conversational memory: data acquired during the conversation can be assigned a different scope -a different permanence in memory-. This makes it possible to differentiate between contextual information (e.g., a given user choice within a set of proposed choices) and more or less permanent information (e.g., biographical data);
  2. Differentiation of response based on the navigation url: in addition to an internal contextuality of the conversation, it is also important to take care of the external contextuality: the Heres webchat always has data available on the page where the interaction takes place, based on which the assistant’s response can be differentiated.

2. Slotfilling and user input validation

The acquisition, validation and processing of user-acquired data is one of the main features of the Heres product. There are three such features:

  1. slotfilling story: specific conversational paths for capturing and validating each data type (e.g., dates, documents, addresses, times), with handling of erroneous entries and format conversions;
  2. selection facilitation widget: graphical selectors designed for agile selection of various data types (e.g., “calendar” widget).

3. Website interaction and browsing automation

Heres’ conversational agents are designed to interact with the site in which they are housed in a complementary-function perspective. These features are:

  1. Events: the chatbot can send events (via a function call) to the site hosting the chat. Depending on the data passed in an event, the site will trigger certain agreed behaviors (e.g., push on a given destination page url, highlight a field, open a pop-up);
  2. Push Navigation: the chatbot can guide the user’s navigation through the site, triggering the landing on the most appropriate page url based on the expressed need;
  3. Trigger and SendMessages: through the trigger functionality and the SendMessages API it is possible to trigger specific actions of the bot (messages or conversational paths) or the widget (automatic chat opening, engage message) depending on the browsing url or any other custom criteria.

4. Sensitive words detection

With the Stopword feature, it is possible to perform a check on user-submitted input before it is even processed by the NLU engine. This allows total control over the handling of words that are particularly sensitive for a given context.

5. Input pre-processing

Before being passed to the NLU engine, all inputs are pre-processed. The pre-processing stage allows to:

  1. eliminate insignificant or contour expressions to reduce background noise as much as possible and allow the NLU engine to analyze only the meaningful part of a string;
  2. correct frequent typos or spelling errors.

6. Smart fallbacks

Intelligent management of misunderstandings is just as important as optimal management of User Stories. Functional tools for achieving this goal are:

  1. Custom No Intent: when the NLU engine returns as output a non-understanding (no match) or an understanding with an insufficient confidence score (match below threshold), it is possible to extract certain keywords from the user input. These words are grouped into clusters, called no intent, for each of which specific handling can be set. This handling can be triggered if one or more words from the cluster are present in the user’s query, which is not understood by the NLU engine;
  2. Conversation states: a status is always associated with an ongoing conversation. This can be:
    1. Green: the last interaction was an NLU match or a wizard-like interaction (guided conversational tree navigation);
    2. Yellow: the last interaction was an NLU no match, which did not follow other NLU no matches;
    3. Red: the last interaction was an NLU no match, which followed other previous NLU no matches. You can follow the status update in real-time from the Live Chat section of the chatbot console and receive notifications for each no-match event;
  3. No match threshold: it is possible to set a threshold on no matches that triggers a particular response/action (e.g., opening a ticket, requesting human escalation).

7. Dynamic syntactic and lexical alternation

A certain degree of syntactic-lexical variation in typically recurring responses (e.g., greetings, thanks) is essential to convey that degree of unpredictability typical of human conversation. With the use of Spyntax, we can achieve this goal by introducing some degree of variability into chatbot responses.