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.
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.
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.
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.