Sondaggi CSAT
Misura la soddisfazione dei clienti al termine di ogni conversazione WhatsApp o email — scala 1-5 / 1-10, sì/no o testo libero, con aggregati per versione.
Sondaggi CSAT
CSAT (Customer Satisfaction) è il sondaggio breve che l'agente invia automaticamente quando una conversazione termina. Una a tre domande rapide — "Quanto sei soddisfatto?", "Abbiamo risolto il problema?" — consolidate in aggregati per agente e canale, così il supervisore vede tendenze reali invece di impressioni.
Riepilogo esecutivo
Il cambio di passo: misurare la soddisfazione dove accade la conversazione — non in un modulo separato che nessuno apre.
| Prima | Con CSAT |
|---|---|
| Il supervisore indovina se il servizio va bene | Tasso di risposta + punteggio medio per agente |
| Sondaggio email separato → 2% risponde | Domanda nella stessa chat → 30-40% risponde |
| Nessuna tracciabilità per conversazione | Ogni risposta collegata al suo conversation_id |
A cosa serve
- Individuare cali di qualità di un agente specifico (un cambio di prompt che ha peggiorato l'esperienza).
- Confrontare canali: WhatsApp vs email nella stessa organizzazione.
- Giustificare miglioramenti: "il punteggio è passato da 3.8 a 4.4 dopo il nuovo prompt".
- Ottenere NPS operativo senza strumenti aggiuntivi.
Come funziona
sequenceDiagram
autonumber
participant U as Utente
participant A as Agente WhatsApp/Email
participant T as Conversation timeout service
participant C as CSAT service
U->>A: ultimo messaggio della conversazione
Note over A,T: 30 min di inattività (timeout configurabile)
T->>C: c'è un question set attivo per questo agente+canale?
C-->>T: sì, versione 3, 2 domande
T->>A: inviare intro_message
A->>U: "Ci aiuti con un breve sondaggio?"
U->>A: risposta 1
A->>C: parse → CSATAnswer
A->>U: domanda 2
U->>A: risposta 2
A->>C: completare CSATResponseItem
A->>U: thank_you_messageDettagli chiave:
- Trigger: quando scade il
session_timeout_minutesdell'agente (default 30 min), secsat_enabled=trueed esiste un question set attivo, il sondaggio parte. - Versionamento: modificare le domande crea una nuova versione; la precedente viene archiviata. Le risposte esistenti mantengono il riferimento alla loro versione — gli aggregati non mescolano mai versioni diverse.
- Parser multilingua: il parser accetta "1/5", "⭐⭐⭐⭐⭐", "cinque", "5 stelle" per
scale_1_5; "sì", "yes", "certo", "no", "nope" peryes_no; testo libero peropen_text. - Snapshot: ogni
CSATResponseItempersiste ilquestion_set_version. Se modifichi il set più tardi, le risposte precedenti rimangono intatte.
Tipi di domanda
| Tipo | Uso tipico | Risposta normalizzata |
|---|---|---|
scale_1_5 | Soddisfazione generale (5 stelle) | int 1-5 |
scale_1_10 | Net Promoter Score | int 0-10 |
yes_no | "Abbiamo risolto il problema?" | bool |
open_text | Feedback qualitativo | str (max 500) |
Configurazione
Abilitare CSAT in un agente
Dalla dashboard:
- Agenti IA → WhatsApp (o Email) → selezionare l'agente.
- Nella scheda Impostazioni, attivare l'interruttore Abilita CSAT.
- Salvare.
Con questo, l'agente viene collegato al question set attivo per canale + agente. Se non esiste un question set, l'interruttore non fa nulla.
Creare un question set
Dall'editor CSAT dell'agente (Impostazioni → CSAT):
- Introduzione (opzionale): breve messaggio prima della prima domanda. Es: "Ci aiuti con 2 domande?".
- Domanda 1 — tipo:
scale_1_5,scale_1_10,yes_no,open_text. - Testo della domanda: il prompt che guida l'IA. Es:
"Chiedi se era soddisfatto del servizio". Il sistema lo parafrasa nella lingua dell'utente in runtime. - Ripetere per 2-10 domande.
- Chiusura (opzionale): messaggio finale. Es: "Grazie! Il tuo feedback ci aiuta a migliorare."
- Salvare → la versione 1 viene creata. Ogni modifica successiva incrementa la versione.
Campi per domanda
| Campo | Descrizione |
|---|---|
key | Identificatore stabile (max 50 caratteri). Usato negli aggregati — rinominare la domanda NON rompe la serie storica se mantieni la key. |
prompt_to_ai | Testo che guida Gemini nel formulare la domanda nella lingua dell'utente. |
interpretation_hint | Suggerimento opzionale per parsare le risposte, es: "accetta 1-5, uno-cinque, ⭐⭐⭐, 1/5". |
type | scale_1_5 / scale_1_10 / yes_no / open_text. |
required | Se true, l'agente riformula quando l'utente salta. Default true. |
Consultare aggregati
La dashboard dedicata si trova in Soddisfazione (/satisfaction), con vista per agente e canale:
- Tasso di risposta:
total_completed / total_started * 100. - Punteggio medio per domanda numerica.
- Distribuzione per valore (istogramma per scale, proporzione sì/no).
- Testo libero: elenco paginato di risposte.
Gli aggregati vengono calcolati on-the-fly in MongoDB sulla collezione _csat_responses filtrata per question_set_id + version. Nessun job batch — i numeri della dashboard sono in tempo reale.
Casi d'uso
1 · Supervisore WhatsApp individua agente in calo. L'agente "supporto-nord" aveva punteggio medio 4.6 su scale_1_5 per 3 mesi. Dopo un cambio di prompt è sceso a 3.9 in una settimana. Il supervisore vede il calo sul grafico, annulla il prompt, il punteggio torna a 4.5 in due giorni.
2 · NPS operativo senza strumento esterno.
Azienda B2B con agenti email usa scale_1_10 nella domanda unica "Quanto è probabile che ci raccomandi?". Calcola NPS = %promotori (9-10) − %detrattori (0-6) direttamente dall'aggregato. 200 risposte/mese con tasso di risposta del 35%.
3 · Feedback qualitativo triage-abile.
Agente con 2 domande: scale_1_5 + open_text. Le risposte con punteggio ≤2 vengono riviste manualmente. L'agente IA classifica gli open_text per tema (problema tecnico, lamentela di tempo, feedback positivo). Flusso di miglioramento continuo senza sforzo umano massivo.
Limiti e assunzioni
- Il sondaggio parte al timeout di inattività, non quando l'utente dice "grazie, ciao". Se la conversazione rimane aperta 30 minuti senza chiusura esplicita, parte comunque.
- Massimo 10 domande per set. Oltre, il tasso di risposta crolla drasticamente.
- Il parser di risposte è tollerante ma non infallibile. Risposte molto ambigue vengono salvate come testo grezzo in
CSATAnswer.textconvalue = null. - Gli aggregati NON mescolano versioni. Per vedere l'evoluzione storica dopo un cambio di domande, confronta le versioni nella dashboard — il sistema non le combina.
- CSAT gira solo per canale: non esiste sondaggio cross-channel (email + WhatsApp in un unico set).
Vantaggi chiave
- Soddisfazione misurata dove accade la conversazione → tasso di risposta 10-20× superiore a un sondaggio email separato.
- Versionamento automatico: ogni cambio di domande viene archiviato, gli aggregati rimangono comparabili per versione.
- Nessun servizio esterno: non si paga SurveyMonkey o Typeform. Tutto vive nella piattaforma.
- Parser tollerante a stili naturali dell'utente (emoji, numeri, parole).
- Tracciabilità per conversazione: ogni risposta punta al suo
conversation_idper audit.
Benefici chiave
- 4 tipi di domanda coprono la maggioranza dei casi.
- Invio automatico dopo chiusura conversazione.
- Dashboard di trend per agente e reparto.
- Export CSV per analisi esterna.
- Opzionale per conversazione — non invadente.
Dashboard Operativa
KPI aggregati in tempo reale: allarmi per gravità, attività per stato, tendenze, anomalie, SLA, e mappe di calore. Visione completa della salute operativa di tutta la flotta.
Autenticazione delle conversazioni
Verifica l'identità dell'utente prima di concedere l'accesso a dati sensibili tramite lo strumento di autenticazione dell'agente.