Modello di app per richieste di approvvigionamento: approvazioni e ordini d'acquisto
Usa questo modello per progettare approvazioni, controlli di budget, ordini di acquisto e comunicazioni con i fornitori con ruoli e stati chiari.

Cosa deve risolvere un'app interna per le richieste di approvvigionamento
Le conversazioni email e i fogli di calcolo falliscono in modi prevedibili. Le richieste si perdono. I file si moltiplicano in versioni come "final_v7". Le approvazioni avvengono in chat laterali senza traccia. Quando qualcuno chiede: "Possiamo comprare questo?" la risposta dipende da chi è online e da quale foglio si fida.
Un'app per le richieste dovrebbe rendere lo stato ovvio in qualsiasi momento. Dovresti poter aprire una richiesta e vedere subito chi l'ha inviata, cosa vuole acquistare, il costo previsto e cosa succede dopo. Serve anche una cronologia pulita: chi ha approvato o rifiutato, quando e cosa è cambiato dopo.
Al minimo, ogni richiesta dovrebbe rispondere a queste domande senza scavare:
- Chi è il proprietario del passo successivo?
- Cosa è in sospeso (approvazione, controllo budget, preventivo fornitore, creazione PO)?
- Cosa è stato approvato (importo, fornitore, ambito) e è cambiato?
- Quando serve e perché?
- Qual è la traccia di controllo così finance si può fidare?
Il perimetro è dove molti team sovradisegnano. Decidi presto se copri solo dalla richiesta all'ordine d'acquisto, o anche i passaggi successivi come la riconciliazione fatture e la ricezione merce. Richiesta → PO è solitamente il primo traguardo migliore: impone approvazioni pulite e controlli di budget, ma mantiene il progetto contenuto.
Mantieni la prima versione semplice. Parti con un solo team, un solo percorso di approvazione e una chiara definizione di “fatto”. Per esempio, le richieste IT sotto 1.000€ potrebbero richiedere solo l'approvazione del manager, mentre acquisti più grandi vengono indirizzati a finance.
Se vuoi costruirlo rapidamente senza programmare, AppMaster è un'opzione pratica. Puoi modellare i dati delle richieste, impostare step di approvazione e generare un'app web e mobile pronta per la produzione dallo stesso modello.
Utenti, ruoli e regole di accesso
Un'app di richieste vive o muore con i permessi. Se la persona sbagliata può cambiare una richiesta dopo l'approvazione, o i team non vedono ciò che serve, il processo diventa lento e rischioso.
Inizia nominando ruoli chiari. I titoli variano, ma la maggior parte delle app ha responsabilità stabili: richiedenti (creano richieste e rispondono a domande), manager (confermano bisogno e tempistica), procurement (validano fornitori e creano PO), finance (conferma budget e policy) e uno o più approvatori (autorità di firma). Alcuni workflow includono anche un contatto fornitore con accesso limitato per informazioni esterne condivise.
Poi definisci cosa può fare ogni ruolo in ogni fase. Una regola evita molte dispute: una volta inviata la richiesta, il richiedente può solo modificare chiarimenti (note, allegati, dettagli di consegna). Prezzo, fornitore, quantità, valuta e centro di costo vanno trattati come campi bloccati che richiedono una modifica formale e ri-approvazione.
Le regole di visibilità devono essere altrettanto chiare. I richiedenti dovrebbero vedere le proprie richieste e lo stato. I manager dovrebbero vedere le richieste dei loro diretti. Procurement e finance di solito hanno bisogno di visibilità cross-dipartimentale. I contatti fornitore non devono mai vedere note interne, dati di budget o informazioni su altri fornitori.
La delega è importante perché le approvazioni non possono fermarsi quando qualcuno è assente. Supporta la delega pianificata (vacanze) e backup d'emergenza (malattia). La delega dovrebbe trasferire i diritti di approvazione, ma non la capacità di riscrivere la richiesta.
Le richieste cross-dipartimento sono comuni (per esempio, IT che compra software per Marketing). Separa il “team richiedente” dal “titolare del centro di costo”. Inoltra le approvazioni al titolare del centro di costo e mostra entrambi nel record così è ovvio chi ha richiesto e chi paga.
In AppMaster puoi modellare ruoli, proprietà dei record e azioni basate sullo stato nel data model e nei processi aziendali, così le stesse regole valgono su web e mobile.
Modello dati: entità e campi core
Una buona app parte da un modello dati pulito. Se le tabelle sono ben definite, approvazioni, controlli di budget e ordini d'acquisto diventano più facili da automatizzare e da riportare.
Entità principali da includere
La maggior parte dei team copre la maggior parte dei casi con un piccolo set di entità:
- Requests: un record per richiesta di approvvigionamento (header).
- RequestItems: righe, quantità e costo unitario stimato.
- Vendors: anagrafica fornitori riutilizzata in richieste e PO.
- Budgets: disponibilità per centro di costo, progetto, dipartimento o periodo.
- PurchaseOrders: l'ordine formale creato da una richiesta approvata.
- Approvals: ogni step di approvazione, decisione e commento.
Campi che ripagano dopo
Per Requests, includi campi che aiutano il routing e riducono i rimbalzi: richiedente, dipartimento, centro di costo, data necessaria, giustificazione aziendale e allegati (preventivi, specifiche, screenshot). Un riferimento a un fornitore preferito aiuta, anche se la scelta finale viene decisa dopo.
Gli stati funzionano meglio se sono espliciti e supportati da timestamp. Mantieni un campo stato su Requests (Draft, Submitted, Approved, Rejected, Ordered, Closed) e conserva date chiave come submitted_at, approved_at, rejected_at, ordered_at e closed_at. Questo rende il reporting (tempo ciclico, aging, colli di bottiglia) semplice senza dover indovinare dai log.
Per PurchaseOrders, separa l'header PO (numero, fornitore, ship-to, bill-to, termini di pagamento) dalle righe del PO e collega al request originale e alle sue righe. Quella tracciabilità conta quando i prezzi cambiano.
Progettare la traccia di controllo
Le approvazioni sono la tua traccia di controllo, ma di solito serve più di “approvato/rifiutato”. Memorizza chi ha agito, quando, cosa ha deciso e perché.
Un approccio leggero è una tabella Activity/Audit che registra actor_user_id, entity_type, entity_id, action, old_value, new_value e created_at. In AppMaster questo si mappa facilmente nel Data Designer e può essere popolato automaticamente dai processi aziendali così ogni cambiamento è tracciabile.
Anagrafica fornitori e tracciamento comunicazioni
Un'app di approvvigionamento funziona solo se tutti usano le stesse informazioni sui fornitori. Tratta la tabella fornitori come fonte unica di verità, non qualcosa da riscrivere per ogni richiesta. Quando i dettagli fornitore vivono in un solo posto, le approvazioni scorrono più veloci e finance vede meno sorprese.
Parti con un record fornitore che contenga i dati riusabili: ragione sociale, nome visualizzato, partita/tax ID (se lo usi), valuta predefinita, indirizzo di fatturazione e termini di pagamento. Memorizza l'email principale degli accounts payable e permetti contatti multipli così la persona giusta è usata per preventivi vs fatture.
Aggiungi uno stato fornitore così l'app può bloccare acquisti rischiosi in modo coerente: Active (selezionabile), Pending review (permesso con validazione aggiuntiva), e Blocked (non selezionabile senza revisione).
Il tracciamento delle comunicazioni previene il problema "chi ha scritto loro per ultimo?". Crea un'entità Communication (o VendorInteraction) collegata al Vendor e, quando possibile, a una specifica Request, Quote o Purchase Order. Ogni record dovrebbe catturare canale (email, chiamata, meeting), direzione (outbound/inbound), timestamp, proprietario e un breve sommario. Se raccogli preventivi, registrali come record strutturati (importo, valuta, data di validità) e allega file se necessario.
Alcune regole che mantengono i dati fornitori puliti senza rallentare le persone:
- Seleziona il Vendor da una lista, non con testo libero.
- Blocca i termini di pagamento dopo la creazione del PO a meno che non sia richiesta un'approvazione.
- Instrada automaticamente i fornitori Pending review a procurement.
- Per acquisti ad alto valore, richiedi almeno un'interazione registrata e una timeline del preventivo visibile.
Se costruisci questo in AppMaster, puoi modellare Vendor, VendorContact e VendorCommunication nel Data Designer e mostrare una timeline nella schermata della richiesta e del PO così la storia completa è a portata di click.
Controlli di budget: come validare la spesa prima dell'approvazione
Un controllo di budget risponde a una domanda semplice: abbiamo abbastanza soldi approvati per questa richiesta ora? Decidi presto se la compagnia tratta il budget come stop rigido (non si procede) o come avviso (si può procedere ma serve approvazione extra). Quella scelta cambia tutta l'esperienza per richiedenti e approvatori.
Il budget può provenire da posti diversi, quindi rendi esplicita la fonte. Opzioni comuni sono budget annuale di dipartimento, budget di progetto o un tetto mensile per un centro di costo. Se una richiesta può essere suddivisa tra fonti, registra gli importi per fonte così il reporting resta pulito.
Per evitare sorprese, calcola la spesa prevista nello stesso modo in cui finance farà in seguito. Un'app è utile solo se tutti vedono lo stesso numero prima dell'approvazione.
Una checklist di calcolo semplice che la maggior parte dei team usa include il totale delle righe (qty x prezzo unitario), sconti, tasse, spedizione e gestione, e conversione valuta (memorizza il tasso e la data). Poi confronta la spesa prevista con il budget disponibile (budget meno importi già impegnati). Se tracci i commitment, includi richieste pendenti e PO aperti, non solo fatture pagate.
Quando manca il budget, non costringere il richiedente a indovinare. Scegli un percorso e codificalo: instrada al proprietario del budget per assegnare la fonte, consenti un override una-tantum con approvazione finance, restituisci la richiesta con un task “dettagli budget”, o respingi automaticamente categorie che richiedono sempre budget.
Esempio: un team richiede un nuovo bundle laptop. L'app calcola costo articoli più tasse e spedizione, converte nella valuta del dipartimento e segnala che sono disponibili solo 900€ contro una richiesta di 1.150€. Se questo è un avviso, può comunque andare al manager, ma diventa obbligatoria l'approvazione di finance.
In AppMaster puoi modellare le sorgenti di budget nel Data Designer ed eseguire il controllo come passo di Business Process prima della prima decisione di approvazione.
Workflow di approvazione e regole di instradamento
Le approvazioni sono il punto in cui un'app salva tempo o si trasforma in un lento rimbalzo di inbox. Mantieni il percorso predefinito semplice e aggiungi regole solo dove prevengono rischi reali.
Inizia definendo cosa protegge ogni approvazione. Un set comune è: approvazione manager (necessità e priorità), approvazione finance (budget e contabilità), e approvazione procurement (fornitore e metodo d'acquisto). Aggiungi security e legale solo quando certe categorie o fornitori lo richiedono.
Le regole di instradamento devono essere prevedibili. Le persone dovrebbero poter intuire cosa succede dopo prima di cliccare Submit. Fattori tipici sono soglie di importo, routing basato su categoria (software a security, contratti a legal), livello di rischio fornitore, regole per dipartimento o centro di costo, e tipo di acquisto (CapEx vs OpEx, abbonamento vs one-time).
Usa approvazioni sequenziali quando l'ordine conta. Per esempio, finance potrebbe bloccare una richiesta priva di centro di costo, quindi è meglio verificarlo prima che procurement perda tempo a negoziare. Usa approvazioni parallele quando i team possono revisionare indipendentemente, come security e legal che valutano in parallelo un acquisto SaaS standard mentre finance controlla il budget.
Pianifica un loop di rielaborazione pulito. Quando un approvatore rimanda indietro una richiesta, il richiedente dovrebbe aggiungere i dettagli mancanti e rimandare senza perdere la storia. Mantieni un log di approvazione con timestamp, commenti e la versione dei campi chiave come importo, fornitore e categoria.
Esempio: un SaaS da 12.000€ viene instradato prima a manager e finance. Dopo entrambe le approvazioni, security e procurement lavorano in parallelo. Se security segnala dettagli di trattamento dati mancanti, torna al richiedente e poi ritorna allo stesso step con la traccia di audit intatta.
Se costruisci questo in AppMaster, modella stati del workflow e transizioni in un Business Process così il routing resta visibile e facile da aggiustare con l'evolvere delle policy.
Passo dopo passo: dalla richiesta all'ordine d'acquisto
Un buon flusso mantiene le richieste in movimento senza far sfuggire i dettagli. Cattura informazioni sufficienti subito, poi congela ciò che conta una volta che le revisioni iniziano.
Una sequenza pratica per la maggior parte dei team è:
- Bozza della richiesta: aggiungi linee, quantità, prezzo target, fornitore preferito (o fornitore da definire), motivo aziendale, centro di costo e data di bisogno. Allegare preventivi o contesto evita che gli approvatori inseguano informazioni.
- Invio e blocco dei campi chiave: quando il richiedente clicca Submit, blocca fornitore, valuta, centro di costo e stima totale. Mantieni un'area commenti breve modificabile così i revisori possono chiedere chiarimenti senza cambiare il record.
- Esegui controlli budget e instrada approvazioni: valida la spesa prima che le persone approvino. Se la richiesta supera una soglia, manca un preventivo o è legata a una categoria ristretta, instradala al gruppo giusto. Se il budget è insufficiente, rimandala con una ragione specifica.
- Crea il PO dopo l'approvazione finale: genera un PO dalla richiesta approvata e copia le righe approvate. Il PO diventa la fonte di verità per i numeri rivolti al fornitore.
- Invia il PO e monitora la conferma: registra quando il PO è stato inviato, l'accettazione del fornitore, le date di consegna e eventuali consegne parziali. Se il fornitore propone cambiamenti, catturali come una revisione.
Esempio: un team di support richiede 10 nuove cuffie. Allegano il preventivo, selezionano la categoria IT Supplies e inviano. L'app controlla il budget IT, instrada al team lead (sotto 1.000€) e poi a finance (sopra 500€). Dopo l'approvazione, il PO viene generato e inviato, e l'acquirente registra conferma e data di consegna.
In uno strumento no-code come AppMaster, questo diventa solitamente poche schermate (Draft, Review, PO) più un Business Process che blocca campi, esegue la logica di budget e crea automaticamente il record PO.
Ordini di acquisto: numerazione, righe e controllo delle modifiche
Un ordine di acquisto è utile solo se è coerente, tracciabile e difficile da modificare per errore. Nel workflow, il PO dovrebbe diventare un record stabile di cui fornitori e finance possono fidarsi.
Numerazione PO: quando generarla
Genera il numero PO quando il PO è ufficialmente emesso al fornitore, non quando qualcuno inizia a redigerlo. Le bozze vengono cancellate, riavviate e unite. È così che nascono gap e duplicati.
Per evitare duplicati, conserva il prossimo numero PO in un posto controllato e assegnalo con un passo atomico (un'azione che o riesce completamente o fallisce). Se vuoi numeri leggibili, aggiungi un prefisso come entità legale o anno, ma conserva il contatore unico come parte che non si ripete.
Struttura PO: header, righe e totali
Dividi il PO in header e righe. L'header contiene il contesto; le righe contengono cosa stai comprando.
Mantieni l'header focalizzato: fornitore e contatto, ship-to e bill-to, valuta, termini di pagamento, data di consegna prevista, stato (Draft, Issued, Acknowledged, Closed) e riferimento al preventivo.
Le righe devono essere abbastanza rigorose per la riconciliazione fatture: descrizione, quantità, unità, prezzo unitario, tassa, sconto e centro di costo o codice budget. I totali devono essere calcolati, non scritti a mano.
Controllo delle modifiche: revisioni vs cancellazione e riemissione
Decidi in anticipo quando una revisione è permessa. Piccoli cambi come la data di consegna o note possono essere una versione rivista (per esempio, PO-1042 v2) con un chiaro link “supersedes v1”. Grandi cambi come fornitore, valuta o una variazione materiale nel totale di solito meritano “cancella e riemetti” così nessuno spedisce contro il documento sbagliato.
Esempio: una richiesta è approvata per 10 laptop, ma il preventivo del fornitore cambia da 2 settimane a 8 settimane. Crea una revisione con la nuova data di consegna e conserva i dettagli del preventivo originale così il PO corrisponde sempre a quanto concordato.
Se costruisci questo in AppMaster, modella header PO, righe e versioni PO come entità separate così le revisioni restano pulite e auditabili.
Notifiche e workflow di comunicazione con i fornitori
Le notifiche determinano se un workflow di procurement sembra fluido o si trasforma in una caccia ai thread. Tratta i messaggi come parte del processo e legali a un cambiamento di stato o a una chiara azione successiva.
Inizia con un set ridotto di aggiornamenti interni così le persone non smettono di leggerli: approved/rejected, controllo budget fallito o necessita chiarimenti, PO creato e pronto da inviare, approvazione in ritardo o data di consegna scaduta, e PO cambiato o cancellato.
Ogni notifica dovrebbe essere leggibile in 10 secondi. Usa un template coerente con titolo richiesta, importo totale, stato corrente e cosa deve fare il destinatario dopo. Per gli approvatori, includi un breve motivo della spesa e le righe più importanti.
La comunicazione con i fornitori dovrebbe essere strutturata. I fornitori principalmente necessitano di PO inviato, modifica PO, cancellazione e domande sulla consegna. Conserva ogni messaggio in uscita e in entrata sul thread fornitore per quel PO o richiesta. Traccia gli esiti con campi semplici come status (draft, sent, delivered, failed), vendor_response (none, replied, bounced), follow_up_needed (yes/no) e follow_up_date.
Esempio: una richiesta laptop è approvata, il PO è inviato e il fornitore risponde che il modello è backordered. L'app registra la risposta, imposta follow_up_needed su yes e notifica il richiedente per scegliere un'alternativa. In AppMaster puoi collegare i cambi di stato a passi email/SMS/Telegram e salvare l'esito del messaggio insieme al PO.
Errori comuni e trappole da evitare
Il rischio maggiore non è la mancanza di funzionalità. È costruire le regole sbagliate e abituare l'azienda a aggirarle.
Un fallimento comune è trasformare la richiesta in un labirinto di stati. Se le persone non capiscono la differenza tra “Pending validation” e “Under review”, smettono di aggiornare e i dati diventano rumore. Mantieni gli stati legati ad azioni e proprietari chiari. Ogni stato deve rispondere a una domanda: “Cosa succede dopo e chi lo fa?”
Un'altra trappola è avere approvazioni senza proprietario o scadenza. Le richieste rimangono bloccate quando l'approvatore è assente o il ruolo è vago (“Finance” non è una persona). Aggiungi copertura di backup e una semplice aspettativa temporale, anche informale.
Questi errori causano la maggior parte del retrabalho:
- Troppi stati ed eccezioni che solo il maker capisce
- Approvazioni assegnate a gruppi senza fallback quando qualcuno non è disponibile
- Modifiche a prezzo, quantità o fornitore dopo l'approvazione senza forzare ri-approvazione
- Controlli budget che non corrispondono a come finance traccia la spesa (periodo, centro di costo, impegnato vs effettivo)
- Override manuali senza motivo registrato e senza audit trail
Le modifiche dopo approvazione meritano attenzione speciale perché piccoli cambi apparentemente innocui spesso cambiano il rischio. Se qualcuno ottiene approvazione per 10 laptop a 900€ l'uno, poi cambia la riga per un modello più costoso o aumenta la quantità, finisci con approvazioni che non riflettono l'acquisto.
Inoltre, non trattare la validazione del budget come un singolo campo sì/no. Finance di solito tiene alla modalità di rendicontazione: dipartimento, progetto, conto contabile e finestra temporale. Se la tua app controlla budget mensilmente ma finance riporta trimestralmente, il valore "budget disponibile" sembrerà sempre sbagliato.
Se costruisci questo in AppMaster, blocca i campi chiave dopo l'approvazione e registra ogni eccezione come evento (chi, quando, cosa è cambiato e perché). Quel registro di audit è ciò che ti salva durante dispute e audit.
Checklist rapida, scenario esempio e passi successivi
Prima del lancio, scrivi le basi. Gran parte del caos nelle approvazioni nasce perché una piccola regola o un campo obbligatorio manca.
Una semplice checklist di lancio:
- Ruoli e permessi (requester, approvatore, finance, procurement, admin)
- Regole di approvazione (importo, dipartimento, categoria, località)
- Stati e responsabilità (Draft, Submitted, Needs info, Approved, PO created, Closed)
- Campi obbligatori (fornitore, centro di costo, data di consegna, motivo aziendale)
- Allegati obbligatori (preventivo, contratto, security review, scheda tecnica)
Dopo aver definito le regole, aggiungi validazioni rapide che girano prima che una richiesta possa avanzare: selezione fornitore (o percorso chiaro per nuovo fornitore), copertura budget per il periodo giusto, evidenza di prezzo, dettagli completi di spedizione/fatturazione e un motivo aziendale reale.
Scenario esempio: un team lead invia una richiesta laptop per un nuovo assunto che inizia la prossima settimana. Sceglie il fornitore preferito, allega il preventivo e assegna il centro di costo giusto. Il manager approva perché corrisponde al piano di assunzione. Finance approva dopo che il controllo budget passa. Procurement crea il PO, lo invia al fornitore e registra la conferma del fornitore e la data di consegna attesa nello stesso record così il richiedente può seguire il progresso senza ulteriori email.
Passi successivi: prototipa il modello dati e le regole di workflow, poi testa con un piccolo team pilota e una o due categorie di acquisto. In AppMaster puoi creare le tabelle nel Data Designer e mappare la logica di instradamento nel Business Process Editor. Esegui un breve pilot, rivedi dove le richieste si bloccano, rafforza i campi obbligatori e poi estendi il rilascio. Se vuoi vedere come questo approccio si traduce in una build reale, AppMaster (appmaster.io) è progettato per creare full internal tools con logica di approvazione, API e interfacce web e native dallo stesso modello.
FAQ
Inizia con da richiesta a PO. Impone approvazioni chiare, controlli di budget e tracciabilità senza trascinarti subito nella riconciliazione fatture e nella ricezione merce. Puoi aggiungere i passaggi successivi quando il team si fida del primo traguardo.
Usa un set piccolo e chiaro come Draft, Submitted, Approved, Rejected, Ordered e Closed. Ogni stato deve indicare chiaramente chi è il responsabile del prossimo passo e quale azione è attesa, così nessuno deve interpretare etichette vaghe.
Blocca i campi chiave alla sottomissione e richiedi una modifica formale che inneschi la ri-approvazione per tutto ciò che impatta rischio o spesa: fornitore, valuta, quantità, prezzo unitario, centro di costo o totale. Consenti solo chiarimenti come note, allegati o dettagli di consegna senza riavviare tutto il processo.
Definisci prima i ruoli, poi cosa ogni ruolo può fare a ogni fase. Un'impostazione semplice è: i richiedenti vedono e modificano le proprie bozze, i manager vedono le richieste dei report diretti, finance/procurement hanno visibilità cross-dipartimentale, mentre i contatti fornitore non vedono note interne o dati di budget.
Rendi la delega una funzionalità incorporata, non un'eccezione. La delega deve trasferire i diritti di approvazione per un intervallo di tempo, ma non deve permettere al delegato di riscrivere il contenuto della richiesta, così resta chiara la responsabilità originale.
Separa chi richiede l'acquisto da chi lo paga. Inoltra le approvazioni al titolare del centro di costo anche se il richiedente appartiene a un altro team, e conserva entrambi i riferimenti sul record così è sempre chiaro chi ha iniziato e chi è responsabile del budget.
Calcola la spesa prevista nello stesso modo in cui finance la riporterà in seguito: includi tasse, spedizione, sconti e conversione valuta con tasso e data memorizzati. Decidi in anticipo se budget insufficiente blocca il flusso o permette l'escalation con un'ulteriore approvazione.
Mantieni una master dei fornitori come fonte unica di verità e seleziona i fornitori da un elenco invece di testo libero. Aggiungi uno stato fornitore come Active, Pending review e Blocked così i fornitori rischiosi sono gestiti o bloccati in modo coerente.
Genera il numero PO solo quando il PO è ufficialmente emesso al fornitore, non mentre si sta ancora redigendo. Assegnalo in un singolo passaggio controllato per evitare duplicati, e struttura header e linee in modo che i totali siano calcolati automaticamente.
Sì, se vuoi una build rapida senza scrivere codice. Con AppMaster puoi modellare i dati, definire permessi e instradamento per fasi, e generare app web e native pronte per la produzione dallo stesso modello, mantenendo il workflow coerente su dispositivi diversi.


