We use cookies
We use cookies and similar technologies to improve your experience, analyse traffic, and personalise content. You can accept all cookies or reject non-essential ones.
10 Sep 2026
Circa un cliente su otto compila il tuo sondaggio. I tuoi report si basano su quelle risposte. Gli altri sette non ti dicono niente — ma i loro dati li hai già: che cosa hanno comprato, quando si sono collegati l’ultima volta, quante volte hanno contattato il supporto, su che cosa hanno cliccato. Sai che cosa hanno fatto. Non sai come si sono sentiti.
Questo articolo mostra come colmare quel divario dentro SurveyAnalytica, schermata per schermata: unire i dati, costruire le feature, addestrare il modello usando le risposte al sondaggio come etichette e assegnare un punteggio ai clienti che non hanno mai risposto.
Circa un cliente su otto compila il tuo sondaggio. I tuoi report si basano su quelle risposte.
Gli altri sette non ti dicono niente. Ma i loro dati li hai già: che cosa hanno comprato, quando si sono collegati l’ultima volta, quante volte hanno contattato il supporto, su che cosa hanno cliccato. Sai che cosa hanno fatto. Non sai come si sono sentiti.
È questo il divario da colmare.
Li hai per tutti, sempre. Mostrano che cosa hanno fatto le persone, non come si sono sentite.
Risponde solo una piccola parte. Ma sono gli unici che ti hanno detto com’è andata davvero.
Quindi, invece di rincorrere un tasso di risposta più alto, usa le risposte che hai già per insegnare a un modello che cosa significa quel comportamento. Poi applicalo a tutti.
Il sondaggio smette di essere il report. Diventa la griglia di correzione.
Sette passi. Ogni schermata qui sotto è reale, con i pulsanti chiamati come li troverai nel prodotto.
Passo 01
Workspace ▸ Data ▸ Create Data Hub · Contact Lists ▸ Import Contacts
Ti servono due cose. Un dataset contiene gli eventi: ordini, sessioni, ticket, clickstream. Una contact list contiene le persone a cui quegli eventi appartengono. Scegli From a flow se i dati continuano ad arrivare, oppure Upload a file per un caricamento una tantum.
Il Clickstream ha una porta tutta sua: Connectors Marketplace ▸ Clickstream Publisher ▸ Create Clickstream workflow, poi installa l’SDK — Vanilla JS, Next.js, React, React Native, Flutter o iOS.
I contatti arrivano negli stessi due modi: Upload CSV, oppure un flow che li aggiunge man mano che compaiono nei tuoi sistemi. Poi imposta i campi — è qui che più avanti verrà scritta la risposta del modello.
| Field ID | Display Label | Type |
|---|---|---|
| plan | Plan | Dropdown |
| tenure_months | Tenure (months) | Number |
| experience_flag | Experience | Dropdown |
Aggiungi experience_flag adesso e lascialo vuoto. Il passo 07 ci scriverà dentro la previsione. Su questa stessa schermata, più avanti, lo userai come filtro per costruire un segmento.
Passo 02
Workspace ▸ Analytics model ▸ Data & Relationships
Trascina le tue sorgenti sul canvas e collegale. La contact list è la spina dorsale: tutto si unisce a lei, perché è l’unica tabella che sa davvero chi è il cliente.
Se hai distribuito il sondaggio a una contact list, non devi riconciliare niente. Ogni invito porta con sé un session id generato con l’ID del contatto, la lista, l’email e il nome, quindi la risposta torna già marcata con chi l’ha data.
E di solito un sondaggio si manda a proposito di qualcosa: un ordine appena spedito, un ticket appena chiuso, una consegna appena arrivata. Passa quel riferimento come custom variable — ID ordine, numero del ticket, ID transazione — e finisce anche lui sulla risposta. Lo stesso vale per i sondaggi inviati dal tuo ESP o da un link sul tuo sito.
Così la risposta non torna sospesa a livello di cliente. Torna agganciata esattamente alla cosa di cui parlava.
Le opzioni di corrispondenza qui sotto servono quindi per i sistemi che non controlli: il database degli ordini, l’export dell’helpdesk, il foglio di calcolo che arriva dall’amministrazione. I dati di feedback arrivano già puliti.
Per quelli, How to match e Normalize keys risolvono le discrepanze senza aprire un progetto di pulizia dati.
customers · contactId · email · plan · tenure_months · experience_flag
csat_responses · contactId · orderId · sid
orders_2026 · orderId · customer_email
Guarda la forma: il comportamento è compilato per tutti, le risposte al sondaggio solo per alcuni. È proprio quel vuoto il punto. Le righe con risposta addestrano il modello. Quelle senza sono le righe da prevedere.
Vale la pena fermarsi qui, perché è la parte che quasi nessuno strumento di sondaggi sa fare. Una valutazione che arriva con un ID ordine attaccato ti dice quale ordine l’ha prodotta. Non stai tirando a indovinare quale delle quaranta transazioni di un cliente ha causato la recensione da due stelle: lo sai tu, e lo sa anche il modello.
Questo ti dà due modi per costruire il training set, e scegli in base alla domanda che stai facendo:
Servono entrambi e rispondono a domande diverse. Il primo intercetta un’esperienza negativa finché si può ancora rimediare. Il secondo ti dice chi chiamare questo mese. Puoi costruirli tutti e due dalla stessa vista unita; l’aggregazione avviene nel passo successivo.
Passo 03
Analytics ▸ Predictions ▸ Feature Engineering ▸ Open Studio
Scegli una trasformazione dall’elenco, oppure scrivi tu l’espressione. Lo stesso vale per l’etichetta: un punteggio grezzo 0–10 è difficile da prevedere, ma raggruppato in promotore, passivo e detrattore diventa semplice.
Contano anche i commenti scritti. Word Count e TF-IDF trasformano il campo di testo libero che nessuno ha mai avuto il tempo di leggere in qualcosa che il modello può usare.
Passo 04
Analytics ▸ Predictions ▸ Model Selection → Data Preparation → Training
Il catalogo copre Classification, Regression, Forecasting, Clustering, Image e Text. Se preferisci non scegliere, AI Recommend propone un modello e un target in base alle tue colonne.
Passo 05
Analytics ▸ Predictions ▸ Results & Comparison ▸ Versions
Guarda precision e recall invece dell’accuratezza. Addestra un secondo modello, confronta i due e premi Mark as Live su quello di cui ti fidi.
| Version | Primary metric | Trained | |
|---|---|---|---|
| v3 · Boosted Tree | 0.91 ROC AUC | today | LIVE |
| v2 · Logistic Reg. | 0.84 ROC AUC | 2 days ago | Mark as Live |
Feature Importance e Confusion Matrix stanno sotto Detailed Metrics.
Passo 06
Predictions ▸ Deploy as Agent, then Agents ▸ open the agent ▸ Deploy
Il deploy ti dà un servizio che sa quali input gli servono e che cosa restituisce. Il codice generato è tuo e modificabile, quindi puoi aggiungere qualsiasi output serva davvero al tuo team.
Dichiara experience_flag nella scheda Output Schema così compare nel flow designer.
Fai la conversione qui, una volta sola. Se invece infili la soglia 0,7 dentro nove automazioni diverse, il riaddestramento del modello le rende sbagliate tutte e nove, senza dire niente.
Passo 07
Flows ▸ Design ▸ Trigger, then Add Component
Quindi fai partire il flow quando la cosa succede. Clickstream per quello che le persone fanno sul tuo sito o nella tua app. Webhook per il sistema degli ordini o per l’helpdesk. Survey Response quando arriva un feedback. Contact List quando cambia un profilo.
Il nodo AI Agent chiama il tuo modello. Condition poi manda clienti diversi su percorsi diversi.
Trascina un nodo da Add Component, rilascialo sul canvas, collegalo. Una Condition divide il percorso; tutto quello che sta sotto un ramo viene eseguito solo per i record che l’hanno soddisfatta.
Gli stessi tre pezzi gestiscono anche l’inbound. Quando un cliente ti scrive su WhatsApp, via email o da un form sul sito, un trigger Message Channel avvia il flow. Il modello legge il suo messaggio insieme a tutto quello che già sai di lui, e il ramo decide se serve una persona o se si può rispondere subito.
Stesso trigger, stesso modello, stessa condizione, puntati su un segnale diverso. Un cliente a rischio che scrive arriva a una persona. Tutti gli altri ricevono una risposta immediata.
Prima scrivi il campo nella lista da Manage Fields ▸ Add Custom Field, poi filtraci sopra in Advanced Filters e premi Create Dynamic List: il segmento viene rivalutato a ogni invio.
Tieni un trigger Schedule per le cose che sono davvero lente: rinnovi di contratto, anzianità, una passata mensile su chiunque il flusso di eventi non abbia mai toccato. Segnali veloci sull’evento, segnali lenti a orario. Quello che devi evitare è un segnale urgente parcheggiato in un job notturno.
Una previsione è un’ipotesi, non una citazione. Il modello pensa che questo cliente sia insoddisfatto. Il cliente non l’ha mai detto. Tieni separate le due cose nei report, e non dire mai a qualcuno che sai come si sente.
È anche per questo che continui a chiedere. Le nuove risposte sono il modo per verificare che il modello sia ancora nel giusto. E quando un modello sbaglia, sbaglia in silenzio: i punteggi continuano ad arrivare, tutti continuano a fidarsene, e arrivano sempre meno risposte vere a smascherarlo.
No comments yet. Be the first to comment!