Tema
Intent e Sub Intent
Cos'è un intent
Un utente scrive «devo far ritirare un divano». Un altro scrive «quando aprite l'isola ecologica?». Sono due frasi in italiano corrente, e la piattaforma deve fare due cose diverse: per la prima avviare una prenotazione, per la seconda rispondere con un orario.
Un intent è la rappresentazione di una di quelle intenzioni: dice alla piattaforma cosa significa una certa richiesta e cosa fare quando la riconosce. È il concetto su cui si regge tutto il resto — i canali portano dentro le frasi, i processi eseguono, ma è l'intent a decidere quale delle due cose sta succedendo.
Ogni intent appartiene a uno scope, e ha un identificativo — lo intentSlug — che è il nome con cui la piattaforma lo chiama. È unico dentro lo scope, non su tutta la piattaforma: due organizzazioni possono avere un intento con lo stesso nome senza che si tocchino.
Le tre forme che può avere
Catalogo
Sa qualcosa. Non esegue: è conoscenza che la piattaforma può usare per rispondere.
Dinamico
Fa qualcosa. Raccoglie i dati che servono e avvia il processo.
Sub intent
Chiede qualcosa. Raccoglie un dato mancante, su richiesta di chi sta eseguendo.
Intent Catalogo — quello che la piattaforma sa
Un intent Catalogo è conoscenza disponibile: gli orari, le condizioni, cosa è ammesso e cosa no, il registro con cui si parla a quel pubblico. Non viene «attivato» e non avvia niente: è materiale che la piattaforma ha davanti quando formula una risposta in quello scope.
Ci si mettono le cose che non cambiano ogni settimana:
- cosa l'organizzazione offre, e a quali condizioni
- le risposte alle domande che arrivano sempre
- le regole di comportamento — cosa si può dire, cosa va rimandato a una persona
- i riferimenti fissi: sedi, orari, contatti
Se la conoscenza sta su dei documenti
Un catalogo di prodotti, un regolamento di quaranta pagine, un listino che cambia ogni mese vanno in una Knowledge Base, dove si aggiornano caricando un file. L'intent Catalogo è per ciò che si scrive una volta e resta.
Intent Dinamico — quello che esegue
Un intent Dinamico è il punto in cui una conversazione diventa un fatto: una prenotazione registrata, una pratica aperta, una riga scritta in un gestionale. Viene riconosciuto da quello che l'utente ha scritto, raccoglie i dati necessari, e avvia il Flow associato.
Ha due campi che fanno lavori diversi, ed è questa separazione a rendere il riconoscimento preciso:
| Campo | A cosa serve |
|---|---|
| Descrizione | È il testo su cui l'intent viene scelto fra tutti quelli dello scope. Dice quando servo |
| Contesto | È ciò che la piattaforma sa su quell'argomento. Dice cosa so |
La dashboard mostra per ogni intent il peso nel prompt e la qualità della configurazione dello scope: si vede subito quanto spazio occupa ciascun intent e dove conviene intervenire.
Le entità: i dati che servono prima di agire
Non si può prenotare un ritiro senza sapere cosa, dove e quando. Le entità sono quell'elenco: i dati che l'intent deve avere prima di avviare il processo, dichiarati con uno schema — tipo, obbligatorietà, e come chiederli se mancano.
La piattaforma li raccoglie conversando, e chiede solo quelli che mancano: un utente che ha già detto tutto nella prima frase non si sente interrogato.
Sub Intent — quello che chiede il dato che manca
Un sub intent è una raccolta guidata, avviata da chi sta eseguendo e non dall'utente. Un modulo che sta lavorando si accorge che gli serve un'informazione in più — il codice fiscale, la data preferita, un numero d'ordine — e invece di rispondere con una domanda scritta a mano dichiara un sub intent: la raccolta la conduce la piattaforma.
Si dichiara come gli altri intent, ma non viene mai proposto fra le scelte: esiste in uno spazio separato, e si attiva solo quando qualcuno lo chiama.
Mentre è attivo ha la precedenza sugli altri intent — se sto chiedendo una data, la risposta dell'utente è una data e non l'inizio di una richiesta nuova — e il suo stato vive nella Sessione: cosa è già stato raccolto, e se la raccolta è in corso, completata o annullata.
Perché conviene un sub intent invece di gestirlo nel modulo
Perché lo stato lo tiene la piattaforma. Se l'utente si interrompe e torna dopo un'ora, la raccolta riprende da dove era — e se rinuncia, resta scritto a che punto ha rinunciato.
Chi può usare un intent
Un intent può richiedere una o più Capability: in quel caso è disponibile solo alle sessioni che le possiedono tutte. Un intent che non ne richiede nessuna è pubblico.
Il filtro è prudente per costruzione: una sessione senza capability vede soltanto gli intent pubblici, e il contesto di un intent riservato non entra nemmeno fra le informazioni disponibili a chi non ha i diritti.
Da dove arrivano gli intent
| Provenienza | Come |
|---|---|
| Un modulo di intent | Li dichiara collegandosi alla piattaforma — vedi Estendere Calybron |
| La dashboard | Si scrivono e si modificano da lì, per gli intent che non hanno bisogno di codice |
In entrambi i casi il risultato è lo stesso: un intent nello scope, con la sua descrizione, il suo contesto e le sue entità.