Skip to content

Sessione ​

Perché serve ​

Un utente scrive «vorrei prenotare un ritiro». La piattaforma risponde chiedendo per quale materiale. Lui scrive «un divano».

Perché quel «un divano» significhi qualcosa, la piattaforma deve ricordare che la conversazione era su un ritiro. Se ogni messaggio arrivasse da solo, senza niente attorno, non ci sarebbe modo di rispondere a una frase di due parole — e ogni scambio dovrebbe ricominciare da capo, come i moduli da compilare che nessuno vuole compilare.

La Sessione è quel «attorno»: il raggruppamento delle interazioni di un utente, con tutto ciò che serve a far sì che il secondo messaggio sappia cosa diceva il primo.

Cosa raggruppa ​

Una sessione contiene la conversazione e il suo contesto:

Chi
Le informazioni dell'utente, quando il canale lo riconosce
Dove
L'organizzazione e il canale di provenienza
In che lingua
La lingua rilevata, che resta stabile per tutta la sessione
Di cosa si parla
Il soggetto logico, quando emerge
Cosa è stato detto
Lo storico completo, in ordine
Cosa è stato allegato
I file arrivati nel corso della conversazione
Cosa si sta raccogliendo
Lo stato delle raccolte di dati in corso

Ogni sessione appartiene a un'organizzazione e a un canale: due utenti che scrivono allo stesso bot hanno due sessioni, e lo stesso utente che scrive su due canali diversi ne ha due. Ogni mezzo conserva la propria conversazione, con il proprio contesto.

Dove comincia e dove finisce ​

Lo decide il canale, secondo cosa significa «conversazione» sul mezzo che governa.

CanaleLa sessione è
Telegram, WhatsApp, Chat webLa conversazione con quell'utente
MailIl thread, riconosciuto dai riferimenti del messaggio
VoceLa singola chiamata

La posta è il caso più interessante, perché lì una conversazione non è un oggetto che esiste: va ricostruita. La piattaforma la ricostruisce dagli stessi riferimenti che i client di posta usano per raggruppare un thread, così una risposta dentro il thread continua il discorso con tutto il contesto di prima.

Cosa la sessione ricorda, in pratica ​

La lingua si decide una volta ​

La lingua viene rilevata dai primi messaggi e poi riusata per tutta la conversazione. È una scelta deliberata: un «ok» o un «grazie» in mezzo a una conversazione italiana somigliano a molte lingue, e ricalcolare a ogni messaggio farebbe cambiare idioma alla risposta senza motivo. Chi vuole cambiare lingua comincia una conversazione nuova.

Sul canale Voce la lingua è un'impostazione del canale e vale per tutta la chiamata: chi chiama quel numero viene servito in quella lingua, senza incertezze.

Le raccolte in corso non ricominciano ​

Quando un intento ha bisogno di dati che l'utente non ha ancora dato — la data, l'indirizzo, il tipo di materiale — la raccolta non riparte da capo a ogni messaggio: la sessione tiene il conto di cosa è già stato raccolto e di cosa manca. Se l'utente si interrompe e torna dopo un'ora, la raccolta riprende da dove era.

Ogni raccolta ha uno stato:

in corsocompletataannullata

Una raccolta annullata conserva il motivo per cui è stata interrotta: la piattaforma sa a che punto l'utente ha rinunciato, ed è un'informazione che vale per chi disegna il servizio.

L'autenticazione vale per un po' ​

Il riconoscimento dell'utente non avviene a ogni messaggio: la sessione tiene l'esito dell'autenticazione e le Capability ricevute, e le riusa finché sono valide. Alla scadenza, la piattaforma torna a chiedere al sistema di autenticazione dell'organizzazione.

Leggere una sessione dalla dashboard ​

Ogni sessione è consultabile: chi era l'utente, da quale canale, in che lingua, e la sequenza completa di ciò che è stato detto. Per ogni messaggio in ingresso ci sono due testi: il messaggio grezzo arrivato dal canale, e la domanda che la piattaforma ne ha ricavato — ripulita da citazioni, firme e messaggi spezzati. È il modo più diretto per vedere cosa la piattaforma ha capito, e perché ha risposto così.

Cosa non è una sessione ​

  • Non è un'autorizzazione. Che una sessione esista non dice che l'utente sia riconosciuto: una sessione senza autenticazione appartiene a un Guest
  • Non è un contesto unico. Dentro una sessione possono succedersi più Context, uno per ogni soggetto logico che emerge
  • Non è un'identità. Lo stesso essere umano su due canali sono due sessioni: ogni mezzo conserva la propria conversazione

Documentazione Calybron