Lateral entry

Configurando un flusso conversazionale in Dialogflow ES, può esserci la necessità di richiedere all’utente, una serie di informazioni, le quali vengono recuperate attraverso delle entità obbligatorie estratte in intenti differenti, collegati da contesti.

Ad esempio, un ipotetico flusso di apertura di un ticket di supporto, potrebbe richiedere all’utente tre informazioni: una mail di contatto, l’oggetto della segnalazione e la descrizione dettagliata del problema. Ogni informazioni viene estratta tramite entità attraverso tre intenti consecutivi di un dialogo.

Una o più informazioni richieste all’interno di un flusso conversazionale però, potrebbero essere già note all’agente virtuale (perché richieste in precedenza o perché già presenti in qualche “parametro di sessione”). Per questo motivo tali informazioni non andrebbero richieste all’utente.

La funzionalità “lateral entry” permette di gestire tale casistica, accedendo direttamente ad un intento posto all’interno di un flusso, superando uno o più intenti posizionati prima di esso, poiché richiedono informazioni già note.

Ad esempio, nel flusso di apertura ticket descritto precedentemente, potrebbe essere già noto l’indirizzo mail. Sfruttando la funzionalità “lateral entry” è possibile entrare in tale flusso ma “ignorare” l’intento che richiede l’indirizzo mail e richiedere all’utente le informazioni successive.

Prima di configurare tale funzionalità è necessario che ogni intento del flusso possa essere innescato anche attraverso uno specifico “evento”, informazione che deve essere quindi configurata, con valori differenti, per tutti gli intenti che compongono il flusso. L’evento verrà utilizzato da Tellya per richiamare automaticamente gli intenti successivi nel caso il parametro richiesto sia già noto.

Per configurare una “lateral entry” è necessario utilizzare il campo “action” dell’intento, popolato utilizzando la seguente sintassi:

lateralEntry(nomeEvento=nomeParametro)

  • nomeEvento = nome dell’evento che permette di innescare l’intento successivo del flusso
  • nomeParametro = nome del parametro che verrà richiesto come obbligatorio nell’intento successivo 

È possibile configurare più di un parametro dopo l’uguale (“=”) separandoli con una la virgola (“,”).

Ogni volta che verrà innescato un intento con una “lateral entry” configurata al suo interno nel campo “action”, Tellya, prima di fornire la risposta definita per tale intento, verificherà se il parametro (nomeParametro) che il flusso si aspetta nell’intento successivo (e quindi richiesto attraverso la risposta dell’intento corrente) non sia già presente:

  • Se il parametro nomeParametro è già presente invocherà l’evento nomeEvento specificato nella “lateral entry”, non fornendo all’utente la risposta definita per l’intento corrente
  • Se il parametro nomeParametro non è presente non effettuerà alcuna invocazione e fornirà all’utente la risposta configurata nell’intento corrente

Per utilizzare al meglio una “lateral entry” si consiglia di considerare la possibilità di configurare i “default value” per i differenti parametri obbligatori, come messo a disposizione da Dialogflow ES.

In alternativa, è anche possibile configurare una seconda action da richiamare qualora questa della “later entry” non dovesse andare a buon fine, separata da un punto e virgola:

lateralEntry(nomeEvento=ParametroRaccolto);nomeAction

Dove, al posto di nomeAction, è necessario specificare il nome dell’action da richiamare.

È possibile configurare più lateralEntry separandole con il punto e virgola (“;”). Viene data priorità alla laterEntry che ha più parametri configurati e se nessuna lateralEntry configurata soddisfa la condizione viene eseguita l’action standard, se presente.

Related Articles