Analisi
Nulla conta finché qualcuno non lo approva.
Con le approvazioni attive, una risposta inviata attende una decisione di approvazione o rifiuto, con un commento facoltativo, prima di contare come completata. Potete indicare un elenco di approvatori per singolo questionario; se non lo fate, può decidere qualsiasi persona con diritti di modifica nell’organizzazione. Chi ha deciso e il momento in cui ha deciso sono registrati dal database a partire dalla sessione autenticata, non forniti dal browser: è questa la differenza fra una pista di controllo e una semplice affermazione.
Le approvazioni sono a passaggio singolo soltanto. Una decisione per risposta, senza catene, senza deleghe, senza sostituzioni per assenza, senza escalation e senza solleciti automatici. Se il vostro processo richiede una catena a tre fasi, è meglio saperlo da questa pagina che alla terza settimana di implementazione.
Come si muove davvero lo stato
Una risposta arriva in stato di attesa. È un invio completo — tutte le risposte, tutti i caricamenti, tutte le firme conservati come lo sarebbero comunque — ma contrassegnato come non ancora deciso. Un approvatore lo apre e lo approva o lo respinge, in entrambi i casi con un commento facoltativo. La macchina a stati è tutta qui, e la brevità è voluta: non esiste un «restituito per modifiche» né un ciclo di rinvio che riapra il record a chi ha risposto. Una risposta respinta resta al suo posto e resta leggibile all’interno dell’organizzazione.
La decisione non altera i dati. La vista dei risultati continua a contare quella risposta nei grafici per domanda. L’approvazione è una decisione registrata a fronte di un invio, non un filtro che lo nasconde.
Che cosa viene scritto, e chi lo scrive
Per ogni decisione vengono conservate quattro cose. Due di esse sono il motivo per cui questa funzionalità esiste.
Decisione
Approvata o respinta. Una volta presa la decisione non esiste un terzo stato.
Chi ha deciso
Ricavata dalla sessione autenticata dal database, non da un campo inviato dal browser.
Marca temporale
Scritta lato server nel momento in cui la decisione arriva, non letta dall’orologio di chi rivede.
Commento
Facoltativo sia in approvazione sia in rifiuto, conservato con la decisione e visibile solo all’interno dell’organizzazione.
Moltissimi strumenti vi dicono chi ha approvato qualcosa. La domanda da porre a un fornitore è da dove viene quel nome. Se è il client a inviare l’identità dell’approvatore insieme alla decisione, chiunque sia in grado di chiamare l’endpoint può scrivere qualsiasi nome e qualsiasi orario nel registro di controllo.
Qui l’identità e la marca temporale sono ricavate dalla sessione autenticata dal database stesso. Un browser non può proporle, quindi non può sbagliarle. È lo stesso impianto del resto della piattaforma: row-level security ovunque, isolamento fra organizzazioni determinato lato server e regole come la data di chiusura e il tetto massimo di risposte applicate da trigger di database e non dall’interfaccia.
Chi risponde non vede mai la decisione
Lo stato di approvazione è invisibile alla persona che ha compilato il modulo. Invia, riceve la schermata di ringraziamento, e lì finisce. Nessun tracciatore di stato, nessuna email automatica che le comunichi il rifiuto.
È una scelta, non una dimenticanza. Un rifiuto è di norma procedurale — documentazione sbagliata, richiesta fuori dai criteri, doppione — e uno spoglio «respinto» automatico è un pessimo modo per dirlo a un cittadino. Le amministrazioni hanno già procedure per comunicare le decisioni, con le formule, la via di ricorso e il numero di protocollo che le accompagnano. Una coda interna di approvazione non deve diventare in sordina una lettera di diniego priva di forma.
Dove si colloca negli enti locali
La forma ricorrente è un modulo che non è davvero un questionario: un piccolo bando di contributi, la richiesta di prenotazione di un campo, la comunicazione di variazione, la modifica di una licenza. Arriva qualcosa, un funzionario la esamina, e o passa o non passa. Quella singola decisione è l’intero processo, ed è il caso per cui le approvazioni sono state costruite. Altro sull’adattamento al settore nella pagina dedicata agli enti locali.
Due cose si abbinano bene. Il caricamento di file, perché questi moduli portano documentazione — un preventivo, una fattura, una fotografia — custodita in un bucket privato e leggibile soltanto dall’organizzazione tramite URL firmati di breve durata. E le firme elettroniche, che conservano il segno, il metodo, il testo esatto dell’accordo e un hash SHA-256 di quel testo, così modificarne in seguito le parole cambia l’hash. Una decisione registrata sopra una dichiarazione con hash vi dà un riscontro di chi ha accettato che cosa e di chi lo ha approvato. Si tratta di firme elettroniche semplici, non qualificate, quindi se costituiscano prova sufficiente per un determinato procedimento è una questione che spetta a chi quel procedimento lo governa.
Che cosa le approvazioni non fanno
Quattro cose restano fuori dal limite del passaggio singolo, e vale la pena nominarle.
- Nessuna catena. Non potete instradare una risposta a un responsabile di gruppo e poi all’ufficio finanziario. Una sola decisione la chiude.
- Nessuna delega né sostituzione per assenza. Un approvatore non può passare la propria coda a un collega mentre è via.
- Nessuna escalation e nessun sollecito. Nulla richiama un approvatore dopo tre giorni. Una risposta in attesa attende.
- Nessun instradamento condizionale. Quali domande vede chi risponde può dipendere dalle risposte precedenti grazie alla logica condizionale; chi ne rivede il risultato no.
La ragione è la superficie esposta. Catene, deleghe, sostituzioni ed escalation si portano dietro scadenze, stati di assenza, regole di riassegnazione e un motore di notifiche, e ognuno di questi è un posto in cui una decisione può perdersi. Un solo revisore, con approva, respingi e un commento, copre il caso ricorrente e si spiega in una frase. Se vi serve una catena vera, usate un sistema di gestione dei casi per il processo e questo per la raccolta, oppure raccontateci com’è fatta la vostra catena.
Portare la decisione negli altri vostri sistemi
Il momento conta. Un webhook parte
quando la risposta arriva — firmato con HMAC-SHA256 in un’intestazione
X-NumoForms-Signature, usando un segreto per singolo webhook
— cioè prima che qualcuno abbia esaminato alcunché. Un sistema che riceve
quel payload sta ricevendo una domanda, non una domanda approvata, e come
tale dovrebbe trattarla. Le notifiche via email si comportano allo stesso
modo. Nessuna delle due porta con sé la decisione, e nemmeno
l’esportazione CSV, che ha una colonna
per domanda e nessuna colonna per l’approvazione. La decisione risiede
nella vista dei risultati, quindi oggi arriva a un altro sistema
attraverso la persona che l’ha presa.
Le domande che ci vengono poste sulle approvazioni
Che cos’è un passaggio di approvazione su una risposta?
Un passaggio di approvazione tiene una risposta inviata in stato di attesa finché qualcuno non la approva o la respinge, con un commento facoltativo. Fino a quel momento non conta come completata. La decisione, chi l’ha presa e la marca temporale sono scritte dal database a partire dalla sessione autenticata, non fornite dal client.
Chi può approvare una risposta?
Potete indicare un elenco nominativo di approvatori per singolo questionario. Se non lo fate, può decidere qualsiasi persona con diritti di modifica nell’organizzazione. Non esiste un tipo di postazione riservato agli approvatori: gli approvatori sono persone che hanno già accesso allo spazio di lavoro.
Chi ha risposto viene a sapere che la sua risposta è stata respinta?
No. Lo stato di approvazione non viene mai mostrato a chi risponde, che al momento dell’invio vede la consueta schermata di ringraziamento. Un rifiuto è una decisione interna sul record, non un giudizio recapitato alla persona: siete voi a contattarla, nel modo più adatto al caso.
Sono supportate catene di approvazione a più passaggi?
No. Le approvazioni sono a passaggio singolo soltanto: una sola decisione di approvazione o rifiuto per ogni risposta. Non esistono fasi in sequenza, firme parallele, deleghe, escalation o solleciti automatici. Un processo che richiede una catena a tre fasi oggi non è servito da questa funzionalità.
Che cosa succede se l’unico approvatore è in ferie?
Non succede nulla in automatico: non esistono deleghe né sostituzioni per assenza. Indicate più di un approvatore sul questionario, oppure lasciate vuoto l’elenco degli approvatori in modo che possa decidere qualsiasi persona con diritti di modifica nell’organizzazione.
Mettete una decisione dietro il modulo.
Attivate le approvazioni e ogni risposta inviata attende una sola approvazione o un rifiuto, con un commento facoltativo, prima di contare come completata. Chi decide e la marca temporale sono scritti dal database a partire dalla sessione autenticata, quindi il registro non è qualcosa fornito dal browser.
- Approvazione a passaggio singolo: approva o respingi, con un commento
- Approvatori indicati per questionario, oppure qualsiasi editor dell’organizzazione
- Chi risponde non vede mai la decisione