Workflow e automazioni
Automatizza il lavoro ripetitivo disegnando il flusso sul canvas dello Studio workflow: trigger, condizioni, azioni, attese e diramazioni. Con prova a vuoto (dry-run), ciclo bozza/pubblicato e gestione dei job falliti.
La configurazione dei workflow richiede il permesso di gestione workflow,
assegnabile a un ruolo dal dialog dei permessi (gli amministratori lo hanno sempre: vedi
Utenti e permessi). L'esecuzione avviene in background nel
worker: assicurati che il servizio crm-go-worker
sia attivo (vedi Installazione).
01Anatomia di un workflow
Lo schema resta semplice: Trigger (quando) → Condizioni (se) → Azioni (allora); ma sul canvas può diventare un vero percorso: diramazioni con più rami, attese che sospendono il flusso per giorni, punti di ricongiunzione.
- Trigger: l'evento (o la pianificazione) che accende il workflow.
- Condizioni: filtri sui campi del record, combinabili con
AND/ORanche annidati. - Azioni: cosa succede, nell'ordine in cui le disponi lungo il percorso.
Un workflow è legato a un modulo (core o custom) e opera sui suoi record.
02Lo Studio workflow (editor visuale)
L'editor di riferimento è un canvas a tutto schermo: trascini i blocchi dalla palette, li colleghi tirando un filo da una porta di uscita a un ingresso, e configuri il blocco selezionato nel pannello a destra.
| Blocco | Cosa fa |
|---|---|
| Trigger | Il punto d'ingresso: evento e pianificazione. |
| Azione | Esegue una delle azioni disponibili (vedi sotto). |
| Attesa | Sospende il percorso per un intervallo o fino a un campo data (± offset). |
| Diramazione | Se/altrimenti: più rotte provate dall'alto, con fallback «Altrimenti». |
| Unisci | Fa confluire più rami: i passi successivi si definiscono una volta sola. |
| Fine | Chiude esplicitamente un percorso. |
| Condizione / AND / OR | Blocchi logici (fili viola): compongono condizioni annidate e si collegano alle rotte della Diramazione. |
Il canvas è un editor completo: selezione multipla trascinando sul vuoto, menu contestuale
col tasto destro (copia, taglia, duplica, scollega, elimina; «incolla qui» e riordino
automatico sull'area vuota), scorciatoie Ctrl+C/X/V,
Canc e Ctrl+Z per annullare.
Esiste anche un builder guidato a 3 passi (trigger → condizioni → azioni), adatto ai workflow lineari; lo Studio visuale copre tutto ciò che fa il guidato, in più attese e diramazioni.
03Trigger e pianificazione
| Trigger | Quando scatta |
|---|---|
on_create | Alla creazione di un nuovo record nel modulo. |
on_update | Alla modifica di un record, opzionalmente solo se cambiano certi campi. |
time_based | Su pianificazione, in tre modalità: ogni N minuti, cron giornaliero (a un'ora precisa, nei giorni della settimana scelti) oppure relativa a un campo data del record (± N giorni: es. «3 giorni prima della scadenza»). |
04Condizioni
Le condizioni confrontano i campi del record con oltre venti operatori: uguaglianza e
confronto, testo (contiene, inizia con,
regex), liste, campo vuoto/non vuoto, operatori di data relativa
(«è oggi», «meno di N giorni fa», «entro i prossimi N giorni») e, sugli aggiornamenti,
gli operatori «è cambiato» / «è diventato» / «era», che guardano il valore
prima e dopo la modifica.
Più condizioni si combinano con AND/OR,
anche in gruppi annidati (es. A AND (B OR C)). Nello Studio
visuale puoi anche costruire la logica coi blocchi Condizione/AND/OR
collegati alle rotte della Diramazione: utile quando l'annidamento cresce.
Esempio: modulo Trattative, trigger on_update, condizione
stato è diventato "vinta".
05Le azioni disponibili
- Aggiorna campo: modifica uno o più valori sul record (anche su un modulo diverso da quello del trigger).
- Crea attività: genera un task collegato (oggetto, tipo, scadenza relativa o assoluta, assegnatario, descrizione).
- Crea record: crea un record in un altro modulo, con più campi iniziali e l'opzione «collega al record che ha avviato il workflow» (per attività e note).
- Assegna record: cambia proprietario o assegnatario, nel rispetto della gerarchia dei ruoli.
- Invia email: tramite una connessione SMTP configurata (vedi Email); supporta i template email riusabili, i segnaposto
{{campo}}risolti sul record, corpo HTML e anteprima. - Webhook: chiamata HTTP verso un sistema esterno: metodo, parametri query, header personalizzati (salvati cifrati), corpo con il record in JSON, personalizzato o assente.
Le azioni vengono eseguite nell'ordine in cui le disponi lungo il percorso.
06Attese e sequenze
Il blocco Attesa sospende il percorso e lo riprende da solo: dopo un intervallo (minuti/ore/giorni) oppure a ridosso di un campo data del record (con scostamento anche negativo: «3 giorni prima del rinnovo»). Alla ripresa le condizioni si rivalutano sul record aggiornato.
Con un'Attesa nel flusso, il workflow diventa una sequenza e sul Trigger compaiono due controlli:
- Rientro dello stesso record: può rientrare in sequenza? (non finché è in sequenza, mai, sempre);
- Condizioni di uscita: se vere alla ripresa di un'attesa, il record esce dalla sequenza e i passi successivi non partono (es. «ha già risposto/comprato»).
07Provalo senza rischi (dry-run)
Un workflow nuovo nasce in bozza e disattivato: puoi costruirlo e provarlo con calma. Il dry-run simula l'esecuzione su un record reale senza produrre alcun effetto (niente email, niente webhook, niente modifiche):
- nel builder guidato, il pannello di test suggerisce record reali che soddisfano le condizioni e spiega cosa succederebbe (quali campi cambiano, a chi andrebbe l'email coi segnaposto risolti);
- nello Studio visuale, indichi l'ID di un record e il percorso si illumina sul canvas: vedi quale rotta della diramazione verrebbe scelta e quali azioni partirebbero;
- se usi gli operatori «è cambiato», puoi simulare anche lo stato precedente del record (baseline).
Ogni blocco del canvas mostra inoltre i contatori delle esecuzioni reali.
08Pubblicazione e protezioni
- Bozza → Pubblica: solo i workflow pubblicati e attivi vengono eseguiti; una modifica strutturale a un pubblicato lo riporta in bozza.
- Anti-loop: di default le modifiche fatte da un workflow non innescano altri workflow. L'opzione «Catena» è l'opt-in sul workflow a valle; in ogni caso una catena si ferma alla profondità 5, con l'evento soppresso rumorosamente nel log.
- Rate-limit email: tetto di invii per destinatario, per non trasformare un'automazione in spam.
- Galleria di template: workflow pronti (es. benvenuto nuovo lead) da applicare e personalizzare; in più i template email riusabili tra workflow.
09Monitoraggio delle esecuzioni
Ogni esecuzione viene registrata con esito, durata ed eventuale errore: lo
storico esecuzioni (con filtri e totali reali) è la prima cosa da guardare
quando un'automazione non fa quello che ti aspetti. Oltre a ok e fallita
esiste l'esito saltata (skipped): un salto
dichiarato e spiegato (ad esempio un'attesa su un campo data vuoto, o un evento fermato
dalla protezione anti-loop), mai un silenzio.
I workflow girano in una coda job gestita dal worker, con tentativi
ripetuti e backoff; nella tab Operatività vedi lo stato della coda e le
prossime esecuzioni pianificate. La salute della coda è esposta anche via
GET /api/ops/health (vedi Ops e health).
10Job falliti e dead-letter
Un job che continua a fallire dopo tutti i tentativi finisce nella dead-letter queue: non viene perso, ma messo da parte e reso visibile. Da lì puoi ispezionare l'errore e decidere:
- Riprendi: rilancia il job saltando le azioni già completate, ripartendo dal punto d'interruzione.
- Da capo: ricomincia l'intera catena di azioni dall'inizio (con conferma).
- Diagnostica: i fallimenti ricorrenti raggruppati per workflow, con «Disattiva workflow» e «Svuota job morti».
Scegli Riprendi quando le azioni non sono idempotenti (es. un'email già inviata o un record già creato): Da capo le rieseguirebbe tutte, rischiando duplicati.
Per creare e gestire i workflow via API (inclusi trigger, condizioni, azioni ed esecuzione manuale) vedi API · Workflow.