Tema
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.
| Canale | La sessione è |
|---|---|
| Telegram, WhatsApp, Chat web | La conversazione con quell'utente |
| Il thread, riconosciuto dai riferimenti del messaggio | |
| Voce | La 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