Skip to main content
Questa guida è pubblica: la legge chiunque, e cancellare dopo non basta. Niente nomi di persone o di aziende clienti, niente compensi o tariffe, niente indirizzi interni o chiavi. Prima di scriverci dentro: cosa ci va e cosa non ci va mai.
Un ticket — aperto dallo studente dalla chat con l’assistente, o aperto da chi nel team lo ha visto da un’altra parte (vedi Da dove nasce un ticket) — si gestisce da un solo posto: la sua pagina in piattaforma. Rispondere o chiudere da lì non è solo “più comodo”: è l’unico modo perché lo studente, il canale del team e il task collegato restino allineati fra loro.

Dove si va

Team → Ticket, poi si apre il ticket specifico: l’indirizzo è /team/ticket/<id>. Da lì, in fondo, c’è il campo per scrivere e i due pulsanti: rispondere e risolvere.

Cosa succede scrivendo una risposta

Si scrive il messaggio e si invia. In automatico, nello stesso momento:
  • il messaggio si salva nella cronologia del ticket, così chiunque lo apra dopo vede tutto lo scambio;
  • il messaggio compare dentro la stessa conversazione che lo studente ha nella bolla del supporto (e su Supporto), con l’etichetta «Team Mattone», e la conversazione passa allo stato «Risposta del team» con un pallino finché lo studente non la apre;
  • allo studente arriva una notifica in piattaforma e una mail breve, «Hai una risposta dal team Mattone», con il link alla conversazione (a meno che non abbia disattivato le notifiche via mail). Il testo della risposta non è nella mail: si legge in piattaforma, dove resta la conversazione;
  • nel canale Slack del team parte una riga nel thread di quel ticket, con chi ha risposto e cosa ha scritto.
Questo vale allo stesso modo per ogni ticket, sia che lo abbia aperto lo studente dalla chat, sia che lo abbia aperto qualcuno del team a mano. Non c’è una via “abbreviata” per i ticket aperti dal team: passano dalla stessa pagina, con lo stesso comportamento. Anche la risposta mandata e chiusa dall’assistente del team (la funzione «manda e chiudi» del suo token) avvisa lo studente allo stesso modo, dal 09/10/2026. Se lo studente risponde, il suo messaggio arriva come riga nel thread del ticket. Se scrive in una conversazione già risolta, la conversazione si riapre e torna al team: il ticket rientra fra quelli aperti e i tempi di risposta ripartono da capo.

Cosa succede premendo “risolvi”

Oltre a tutto quello che fa una risposta (se c’era un messaggio da mandare insieme alla chiusura), premere “risolvi”:
  • segna il ticket come risolto, con la data e con chi lo ha chiuso — due informazioni che prima di questa pagina non venivano mai scritte da nessuna parte, quindi su tutti i ticket chiusi in passato restano vuote;
  • posta la riga di chiusura nel thread Slack del ticket;
  • chiude anche il task collegato, se quel ticket ne aveva generato uno nella coda del team (Team → Task) perché era rimasto troppo a lungo senza risposta;
  • notifica lo studente e gli manda una mail, con il link alla conversazione.

Quando non sai rispondere: l’assistente

Sulla pagina del ticket c’è un box “Chiedi all’assistente”: si scrive la domanda (parte già precompilato con l’ultimo messaggio dello studente) e si preme “Chiedi”.
  • Se la risposta è coperta dalla knowledge base, arriva con le fonti citate e un bottone “Usa nella bozza” che la incolla nel campo risposta — resta comunque da rileggere e mandare, non parte da sola.
  • Se non è coperta, l’assistente non inventa: propone la domanda da girare e un bottone che manda un messaggio diretto su Slack alla persona giusta del team, con il link al ticket. La risposta arriva lì e per ora va incollata a mano nella bozza — non torna ancora da sola nel ticket.
Vale la stessa regola di sempre: rispondere nel canale Slack del ticket non fa nulla sul ticket stesso — è solo una notifica. L’unica azione che conta è quella fatta dalla pagina del ticket, con i due pulsanti descritti sopra.

La regola: mai toccare support_tickets a mano

Non si segna mai un ticket come risolto scrivendo direttamente sul database (Supabase o console), nemmeno per “sistemare in fretta” un caso urgente. Solo da questa pagina. Il motivo è concreto, non teorico: il 17/09/2026 un ticket è stato segnato risolto con una scrittura diretta sul database invece che da qui. Il risultato: il ticket sembrava chiuso guardando il database, ma
  • lo studente non ne ha saputo niente — nessuna notifica, nessuna mail;
  • il team su Slack non ha visto nessuna riga di chiusura nel thread — per chi guarda solo Slack, quel ticket è ancora aperto;
  • il task collegato nella coda del team è rimasto aperto per sempre, perché nessuna delle scritture che lo chiudono è mai partita.
Una correzione a mano può sistemare i campi che si vedono nel database (data e autore della chiusura), ma non può far ripartire retroattivamente una notifica, una mail o una riga Slack: quella parte resta un buco che deve chiudere una persona rispondendo per davvero, dalla pagina del ticket.
Fonti: src/app/api/admin/support/[ticketId]/route.ts (risposta e chiusura), src/lib/support/avviso-risposta-team-server.ts (l’avviso allo studente), src/lib/support/messaggio-studente-server.ts (risposta dello studente e riapertura), src/lib/support/ticket-coda-server.ts (chiudiVoceDelTicket, la chiusura del task collegato) e src/lib/support/slack.ts (i testi delle righe nel thread), repo mattone-platform. Il commento nel codice su resolved_at/resolved_by conferma che erano NULL su tutti i ticket storici prima che questa route li valorizzasse.