Directus Automazione: guida dello sviluppatore ai flussi in produzione
Directus Automazione: guida dello sviluppatore ai flussi in produzione Directus I flussi sono il motore di automazione integrato e guidato dagli eventi della piattaforma e, per la maggior parte dell’orchestrazione dei contenuti, delle integrazioni leggere e dei processi in background, sono lo strumento giusto.
Directus Flussi sono il motore di automazione integrato nella piattaforma per reagire agli eventi, ricevere webhook, eseguire attività pianificate e coordinare flussi di lavoro di breve durata. Sono adatti per le operazioni sui contenuti, le approvazioni, le notifiche, le integrazioni in uscita, l’arricchimento leggero e le azioni amministrative controllate.
Non sono un sostituto generico dei servizi applicativi, delle code persistenti o dei motori di flussi di lavoro di lunga durata. La decisione importante in produzione non è stabilire se un flusso può eseguire un’attività . È stabilire se l’attività presenta tempi di esecuzione, comportamento in caso di errore, confini di sicurezza, gestione dello stato e responsabilità operative che un flusso può supportare in sicurezza.
Questa guida spiega come progettare un’automazione Directus che funzioni anche al di fuori della demo: come scegliere i trigger, gestire le autorizzazioni, proteggere i webhook, evitare effetti collaterali duplicati, monitorare le esecuzioni e riconoscere quando un’estensione personalizzata o un worker esterno rappresentano la scelta architetturale migliore.
Directus Flussi in produzione: panoramica
| Caso d’uso | Scelta migliore | Perché |
|---|---|---|
| Notificare un team quando i contenuti sono pronti per la revisione | Directus Flusso | Di breve durata, guidato dagli eventi e visibile ai non sviluppatori |
| Attivare la ricostruzione di un sito web dopo la pubblicazione | Flusso + webhook in uscita protetto | Una semplice integrazione asincrona con criteri di successo chiari |
| Convalidare o trasformare un elemento prima che venga salvato | Flusso con filtro o estensione personalizzata | Usa un filtro solo quando l’attività è rapida e deve influire sulla transazione |
| Elaborare file di grandi dimensioni o decine di migliaia di record | Worker di coda o servizio dedicato | Richiede concorrenza controllata, nuovi tentativi persistenti e isolamento delle risorse |
| Attendere giorni per un’approvazione esterna o un intervento umano | Flusso di lavoro applicativo o orchestratore esterno | Lo stato di lunga durata non dovrebbe dipendere da una singola esecuzione del flusso |
| Riutilizzare la logica specifica del dominio in più progetti | Estensione operativa personalizzata o servizio | Consente test, controllo delle versioni, riutilizzo e responsabilità più chiare |
A cosa servono i Directus flussi
Un flusso combina un trigger con una sequenza di operazioni. Il trigger crea un contesto di esecuzione e ogni operazione può leggere i dati nella catena o aggiungervi dati mentre l’automazione procede. Directus supporta hook degli eventi, webhook, pianificazioni, trigger manuali e trigger da flusso a flusso.
Questo modello è utile perché mantiene la comune automazione aziendale vicina ai contenuti e al modello dei dati. Un team editoriale può usare un trigger manuale per approvare e pubblicare i contenuti. L’aggiornamento di un record può notificare un team di distribuzione. Un flusso pianificato può individuare i record obsoleti da sottoporre a revisione. Una richiesta in uscita può informare una piattaforma frontend che i contenuti pubblicati sono cambiati.
Per i team che usano Directus come backend componibile, i flussi sono un componente di una più ampia architettura CMS e di piattaforma dei contenuti. Il database, i contratti API, il modello dei ruoli, i flussi editoriali, il processo di distribuzione frontend e i confini delle integrazioni devono comunque essere progettati come un unico sistema.
Scegli il trigger in base al rischio della transazione
Il trigger determina quando viene eseguito un flusso, ma determina anche in che modo gli errori influiscono sugli utenti e sui sistemi connessi. Sceglilo in base a ciò che deve accadere prima che una transazione possa essere completata, a ciò che può accadere dopo e a chi o cosa è responsabile dell’avvio dell’attività .
Hook degli eventi: usa i filtri con parsimonia
Gli hook degli eventi reagiscono ad attività come la creazione, l'aggiornamento o l'eliminazione di un elemento. Directus distingue tra filtro e hook di azione:
- I filtri vengono eseguiti prima del completamento della transazione del database. Possono modificare un payload o impedire l'esecuzione di un'azione.
- Le azioni vengono eseguite dopo il completamento della transazione. Sono più adatte per notifiche, integrazioni downstream e attività che non dovrebbero bloccare un editor o un client API.
Un filtro è appropriato per una convalida rapida e deterministica: ad esempio, impedire la pubblicazione di un articolo senza uno stato di revisione obbligatorio. È invece inadatto per chiamate lente ad API esterne, l'elaborazione di documenti o qualsiasi attività che possa fallire perché un altro fornitore sta attraversando una giornata difficile.
Se un flusso di lavoro non deve bloccare il salvataggio dell'utente, preferisci un'azione. In questo modo un errore operativo rimane separato dalla transazione originale dei contenuti o dei dati e il recupero diventa più gestibile.
Webhook: considera ogni chiamante non attendibile
I flussi attivati tramite webhook sono utili quando un altro sistema deve avviare un'attività in Directus: una piattaforma commerciale riceve la conferma di un pagamento, uno strumento per moduli invia un lead o una piattaforma di distribuzione segnala lo stato di una build. Rappresentano anche un punto di ingresso esposto.
Non affidarti a un URL poco evidente come controllo. Richiedi un meccanismo di autenticazione, convalida la richiesta in entrata prima di eseguire effetti collaterali e mantieni le credenziali fuori dai log e dalle notifiche dei flussi. A seconda del sistema chiamante, ciò può significare un'intestazione con segreto condiviso, la verifica della firma, restrizioni IP a livello di rete o un gateway che autentica la richiesta prima che raggiunga Directus.
Per un'integrazione che scrive in più sistemi aziendali, separa il webhook in entrata dalla fase di elaborazione durevole. Il webhook dovrebbe confermare rapidamente la ricezione; un worker o un servizio di integrazione può eseguire le attività costose e comunicare lo stato in modo asincrono. Questo è lo stesso principio alla base di una architettura di integrazione CRM: il sistema che riceve un evento non dovrebbe diventare strettamente accoppiato a ogni dipendenza downstream.
Pianificazioni e trigger manuali
Le pianificazioni funzionano bene per attività ricorrenti circoscritte: un promemoria notturno, un controllo qualità settimanale o attività di pulizia con una politica di conservazione chiara. Non sono un motivo per creare un ciclo di polling scarsamente controllato verso un altro sistema.
I trigger manuali sono utili quando un editor o un amministratore deve eseguire un'azione esplicita, come «invia per l'approvazione», «rigenera l'anteprima» o «sincronizza nuovamente questo record». Assegna al trigger un'etichetta specifica, spiegane l'effetto nell'interfaccia e, quando possibile, fai in modo che l'azione possa essere ripetuta senza rischi. I buoni flussi amministrativi fanno parte di una progettazione UX e accessibilità , non sono solo infrastruttura backend.
Usa deliberatamente la catena dei dati
Ogni operazione in un flusso Directus può accedere a valori contestuali come $trigger, $accountability, $env, e $last. È comodo, ma è anche il punto in cui flussi altrimenti semplici diventano difficili da sottoporre a debug.
$last contiene il risultato dell'operazione immediatamente precedente. Non è un archivio durevole di variabili. Se diversi passaggi successivi necessitano di un valore, salvalo con una chiave denominata oppure trasformalo in un payload esplicito prima di creare diramazioni. Un flusso dovrebbe rendere comprensibili i propri input e output a chiunque non lo abbia creato.
Mantieni piccoli i payload. Non passare un record intero, un oggetto utente completo o un grande grafo relazionale a ogni webhook solo perché è disponibile. Invia l'identificatore e i campi di cui il servizio downstream ha effettivamente bisogno, quindi lascia che quel servizio recuperi altri dati tramite un'API autenticata, se appropriato. Questo riduce l'esposizione accidentale dei dati e rende le integrazioni meno fragili quando la raccolta cambia.
Operazioni, script ed estensioni personalizzate
Le operazioni integrate coprono le esigenze più comuni: azioni CRUD, condizioni, trasformazioni dei payload, notifiche, richieste in uscita, script e invocazione di un altro flusso. L'operazione sandboxed Esegui script è utile per trasformazioni dei dati circoscritte e logica decisionale, ma intenzionalmente non è un runtime applicativo completo.
Se il lavoro richiede dipendenze di pacchetti, connessioni persistenti, tempi di esecuzione lunghi, test complessi o logica di dominio riutilizzabile, crea un'estensione di operazione personalizzata oppure sposta il lavoro in un servizio dedicato. È qui che una piccola dose di disciplina ingegneristica previene in seguito una grande proliferazione di flussi.
Un livello di sviluppo software personalizzatoben progettato può fornire elaborazione affidabile delle code, adattatori di integrazione, trasformazione dei documenti, convalida del dominio e un confine API versionato, consentendo al contempo a Directus Flows di rimanere il livello di orchestrazione visibile.
Rendi ogni Flow sicuro da ritentare
L'automazione in produzione si interrompe in modi ordinari: un endpoint va in timeout, un hook di deploy restituisce un 500, un utente fa clic due volte, due aggiornamenti arrivano a breve distanza o un worker si riavvia a metà dell'elaborazione. L'affidabilità nasce dal decidere cosa succederà dopo prima che si verifichi il guasto.

Idempotenza: previeni gli effetti collaterali duplicati
Un'operazione è idempotente quando la sua ripetizione produce lo stesso risultato previsto invece di creare un altro effetto collaterale. Questo è importante per qualsiasi Flow che invii un'e-mail, avvii una build, crei un record in un altro sistema, pubblichi un messaggio o modifichi uno stato relativo al denaro.
Quando possibile, usa identificatori stabili provenienti dal record di origine. Ad esempio, un sistema esterno potrebbe memorizzare un ID elemento Directus e il tipo di operazione come chiave di idempotenza, rifiutando una richiesta duplicata invece di creare una seconda risorsa. Per le ricostruzioni dei contenuti, usa una strategia di deploy con debounce invece di avviare una nuova build per ogni piccola modifica.
Poni questa domanda prima di pubblicare un Flow: cosa succede se viene eseguito due volte nello stesso secondo? Se la risposta è “dipende,” il Flow richiede un ulteriore passaggio di progettazione.
Evita i trigger ricorsivi
Un Flow attivato da items.update può facilmente aggiornare lo stesso elemento e attivarsi di nuovo. Non affidarti alla fortuna per evitare questo ciclo.
- Usa condizioni per verificare se il campo rilevante è effettivamente cambiato.
- Usa uno stato dedicato o un campo di origine quando un Flow deve contrassegnare un elemento che ha elaborato.
- Limita un trigger di aggiornamento alla raccolta e ai campi pertinenti.
- Quando possibile, mantieni separati i campi di arricchimento da quelli che avviano il workflow.
Un campo come automation_processed_at può essere utile quando registra un risultato aziendale significativo. Non aggiungere flag solo per correggere una progettazione poco chiara dei trigger; ciò tende a creare uno stato di cui nessuno si fida dopo sei mesi.
Assegna un responsabile agli errori
Ogni richiesta in uscita e ogni ramo importante richiedono un esito esplicito in caso di errore. Esistono solo alcune opzioni legittime:
- Ritenta automaticamente quando l'errore è transitorio e l'operazione può essere ripetuta in sicurezza.
- Inoltra a una persona quando l'esito richiede una valutazione o influisce su un processo rivolto al cliente.
- Registra e continua quando l'operazione non è critica e l'azienda accetta un completamento ritardato o mancante.
- Arresta in modo evidente quando procedere lascerebbe il sistema in uno stato non sicuro o fuorviante.
«Il log del Flow contiene l'errore» non è una strategia di ripristino. Definisci chi riceve un avviso, quali informazioni servono per indagare, come riprodurre o correggere il lavoro e se un'azione fallita deve essere riconciliata con il sistema di origine.
Revisione dell'architettura Directus
Hai un Flow diventato fondamentale per l'attività ?
Possiamo aiutarti a valutare le autorizzazioni, i percorsi di errore, la progettazione dei trigger, la responsabilità operativa e se debba appartenere a Directus o trovarsi dietro un servizio dedicato.
Esplora CMS e piattaforme di contenuti → Parla con un ingegnere →
Usa il confine di autorizzazione più ristretto possibile
Un Flow può essere eseguito nel contesto dell'utente che lo attiva o in un contesto di responsabilità configurato. Questa decisione fa parte del tuo modello di autorizzazione.
Per le azioni editoriali, ereditare il contesto dell’utente che ha attivato il flusso può essere utile: il Flow rispetta i permessi della persona che lo ha avviato e crea una traccia di controllo comprensibile. Per i webhook esterni o le attività operative pianificate, usa un account di servizio dedicato con i privilegi minimi necessari. Non eseguire ogni integrazione con un account amministratore dai privilegi estesi solo perché è più pratico.
Verifica questi controlli per ogni Flow di produzione:
- Quale ruolo o account di servizio esegue ogni operazione?
- Quell’identità può leggere o scrivere solo nelle raccolte e nei campi di cui ha bisogno?
- Le chiavi API, i segreti condivisi e gli hook di deploy sono archiviati in variabili d’ambiente o in un sistema di gestione dei segreti?
- I log di Flow possono esporre dati personali, token di accesso o informazioni sensibili sui clienti?
- Il chiamante del webhook viene autenticato prima che venga creato un record o inizi un’azione esterna?
Per le organizzazioni che collegano Directus a servizi di intelligenza artificiale, processori di documenti o sistemi di conoscenza, mantieni altrettanto esplicito il confine delle autorizzazioni. Un assistente per i contenuti dovrebbe ricevere solo il materiale necessario per il suo compito e non dovrebbe ricevere un accesso amministrativo senza restrizioni solo per riepilogare o classificare i contenuti. Il nostro sviluppo e l’automazione con l’IA seguono lo stesso principio: un’automazione utile richiede un confine dei dati ristretto e verificabile.
Tratta i log come un prodotto operativo
I log di esecuzione dei Flow sono preziosi per il debug perché mostrano i dati di attivazione, i risultati delle operazioni e gli errori. Sono anche dati archiviati nel database e possono includere informazioni che non vorresti conservare indefinitamente.
Definisci una policy di conservazione prima che il volume delle esecuzioni prenda la decisione al posto tuo. Il periodo di conservazione appropriato dipende dalle esigenze di risoluzione dei problemi, dal budget di archiviazione, dalla sensibilità dei dati e da eventuali requisiti aziendali o normativi applicabili. Testa con attenzione la pulizia: devi rimuovere i record delle esecuzioni meno recenti senza eliminare le informazioni necessarie per un incidente in corso.
L’osservabilità in produzione dovrebbe andare oltre «il Flow è stato eseguito?». Monitora lo stato aziendale che conta:
- Quanti record sono entrati nel flusso di lavoro?
- Quanti sono stati completati correttamente?
- Quanti richiedono una revisione umana o una correzione manuale?
- Quanto tempo impiegano le automazioni importanti dall’attivazione al risultato?
- Quale dipendenza esterna causa il maggior numero di esecuzioni non riuscite o ritardate?
Per le piattaforme di contenuti, ciò può significare monitorare il numero di eventi di pubblicazione che attivano correttamente una ricostruzione del frontend. Per un flusso di lavoro commerciale, può significare confrontare gli ordini ricevuti con quelli inviati correttamente all’ERP. Il principio è lo stesso dell’automazione degli ordini di vendita: il successo tecnico non è sufficiente se il risultato aziendale previsto non si verifica mai.
Promuovi i Flow come codice applicativo
I Flow contengono spesso logica aziendale reale: decisioni di instradamento, integrazioni, regole di pubblicazione e operazioni sensibili ai permessi. Trattarli come configurazioni di produzione non tracciate è un rischio evitabile.
Come minimo, stabilisci un processo ripetibile per:
- Progettazione. Registra l’attivatore, i permessi, il payload di input, gli output previsti, il comportamento in caso di errore, il responsabile e l’approccio al rollback.
- Test. Usa un progetto di staging con dati rappresentativi e scenari di errore reali, non solo il percorso ideale.
- Revisione. Fai ispezionare a una persona diversa dall’autore i permessi, il rischio di ricorsione, l’esposizione del payload e gli effetti collaterali esterni.
- Promozione. Sposta la configurazione del Flow tra gli ambienti usando un processo di deployment deliberato, invece di ricostruirla manualmente in produzione.
- Gestione operativa. Mantieni un runbook per gli avvisi, la rielaborazione, le modalità di errore note e i cambiamenti di responsabilità .
Questa disciplina diventa particolarmente importante quando un progetto Directus è un elemento di uno stack componibile. Un frontend, un data warehouse, un indice di ricerca, un CRM e un portale clienti possono dipendere tutti dalla stabilità del modello dei contenuti e del comportamento degli eventi. Se l’ambito si estende oltre pochi Flow semplici, la consulenza e il supporto all’implementazione software possono contribuire a definire l’architettura e il modello operativo prima che la piattaforma diventi difficile da modificare.
Quando usare un worker di coda o un servizio esterno
Sposta il lavoro fuori da un Flow quando i requisiti di affidabilità superano quelli di un’attività di orchestrazione di breve durata. Un worker o un servizio dedicato è generalmente più adatto quando hai bisogno di:
- Elaborazione di lunga durata o ad alta intensità di CPU
- Code persistenti e concorrenza controllata
- Importazioni, esportazioni o elaborazioni di file in batch di grandi dimensioni
- Politiche di retry complesse, limitazione della frequenza e gestione delle code di messaggi non recapitabili
- Stato del workflow di lunga durata, ad esempio in attesa per giorni di un'approvazione
- Test automatizzati estesi e versionamento delle release
- Logica di dominio riutilizzabile condivisa da più applicazioni

La risposta giusta è spesso ibrida: Directus gestisce i trigger editoriali e delle modifiche ai dati, un servizio basato su code esegue il lavoro pesante o inaffidabile e Directus riceve un aggiornamento dello stato al completamento del processo. In questo modo il workflow rimane visibile ai team dei contenuti e delle operation senza fingere che il CMS debba essere una piattaforma per l'elaborazione dei processi.
Ecco anche perché il dibattito «no-code contro sviluppo personalizzato» è solitamente quello sbagliato. La domanda pratica è dove debba risiedere ciascuna responsabilità . La nostra guida agli strumenti di automazione dei workflow aziendali illustra il compromesso più ampio tra automazione preconfezionata, piattaforme di integrazione e sistemi personalizzati.
Directus Checklist di produzione dei Flow
- Trigger: Il tipo di trigger è appropriato ed evita di bloccare inutilmente una transazione dell'utente?
- Autorizzazioni: Il Flow utilizza, quando necessario, un'identità dedicata con il principio del privilegio minimo?
- Sicurezza: I webhook sono autenticati e i segreti sono archiviati al di fuori della definizione del Flow?
- Payload: Ogni sistema esterno riceve solo i campi di cui ha bisogno?
- Idempotenza: Le operazioni importanti possono essere eseguite due volte senza effetti collaterali duplicati?
- Ricorsione: Un aggiornamento di un elemento può attivare nuovamente il proprio Flow e, in tal caso, come viene impedito?
- Gestione degli errori: I retry, gli avvisi, la revisione manuale e le decisioni di riconciliazione sono esplicitati?
- Osservabilità : Il team può vedere sia gli errori tecnici sia i risultati aziendali?
- Conservazione: Esiste una politica verificata per i log delle esecuzioni e i dati sensibili dei payload?
- Responsabilità : Un runbook identifica chi interviene quando l'automazione non funziona?
Directus Un'automazione che non diventa un sistema misterioso
Directus I Flow sono potenti perché consentono ai team di automatizzare il lavoro vicino ai contenuti e al modello dei dati. La stessa comodità diventa però un rischio se la logica critica si accumula senza autorizzazioni, test, documentazione o una chiara responsabilità operativa.
Ridiculous Engineering aiuta i team a progettare e realizzare piattaforme basate su Directus che siano pratiche da gestire: modelli di contenuto, workflow, integrazioni, estensioni personalizzate, distribuzione frontend e le pratiche ingegneristiche di supporto che rendono il sistema affidabile dopo il lancio. Possiamo aiutarti sia che tu stia implementando Directus per la prima volta, districando una raccolta esistente di Flow o decidendo dove tracciare il confine tra automazione nativa e servizi personalizzati.
Directus Implementazione e automazione
Ti serve qualcosa di più che «aggiungere semplicemente un altro Flow»?
Portaci il workflow che sta causando problemi. Ti aiuteremo a mappare il trigger, i dati, i percorsi di errore e il confine ingegneristico necessari per renderlo affidabile.
Esplora Directus e le piattaforme di contenuti → Avvia una conversazione →
FAQ
A cosa serve Directus ?
Directus è una piattaforma per dati e contenuti che fornisce API e un'interfaccia amministrativa su un database. I team la usano come CMS headless, backend per le operazioni interne, piattaforma per contenuti e livello di integrazione. I Flows di Directus aggiungono automazione basata sugli eventi per flussi di lavoro, notifiche, pianificazioni e sistemi connessi.
Quando dovrei usare un Flow di Directus ?
Usa un Flow di Directus per attività brevi e basate sugli eventi, vicine al tuo modello di dati Directus : approvazioni dei contenuti, notifiche, webhook semplici, pulizia pianificata, azioni amministrative manuali e arricchimento leggero dei record. Usa un servizio dedicato o un worker di coda per attività di lunga durata, ad alto consumo computazionale, ad alto volume o con stato persistente.
Come posso evitare i trigger ricorsivi nei Flow di Directus ?
Limita i trigger di aggiornamento alla raccolta e ai campi pertinenti, aggiungi condizioni che confermino che il campo interessato sia effettivamente cambiato ed evita di aggiornare lo stesso elemento da un Flow, a meno che tale aggiornamento non sia protetto intenzionalmente. Un campo significativo per lo stato di elaborazione può essere utile quando il flusso di lavoro deve registrare il proprio esito.
È sicuro conservare indefinitamente i log dei Flow di Directus ?
No. I log dei Flow consumano spazio di archiviazione nel database e possono contenere informazioni sul trigger o sul payload che non dovrebbero essere conservate per sempre. Definisci una politica di conservazione basata sulle esigenze operative, sulla sensibilità dei dati e sui requisiti di conformità , quindi testa il processo di pulizia.
I Flow di Directus possono chiamare API esterne?
Sì. Le operazioni di richieste in uscita o webhook possono chiamare API esterne. Imposta timeout, autentica le richieste, gestisci esplicitamente le risposte non riuscite, riduci al minimo il payload e progetta l'operazione in modo che tolleri i nuovi tentativi senza creare effetti collaterali duplicati.
Fonti
- Documentazione di Directus : Flows
- Documentazione di Directus : Operazioni
- Documentazione di Directus : Opzioni di configurazione