Risposta diretta
Un GoHighLevel workflow è una macchina con logica condizionale: parte da un trigger, esegue azioni, prende decisioni in base allo stato del contatto. Una campagna è una sequenza fissa di messaggi programmata nel tempo. Usi i workflow per quasi tutto; le campagne le usi quando la sequenza è piatta, prevedibile e non dipende da niente che può cambiare.
Perché la confusione tra campagne e workflow è costosa
GoHighLevel ha ereditato le campagne dai CRM di vecchia generazione. Per anni erano l’unico modo di automatizzare una sequenza di follow-up. Molti account GHL hanno ancora campagne attive costruite anni fa che sparano email a contatti che hanno già comprato, già disdetto o già risposto. Il workflow non ha questo problema: puoi inserire un ramo che ferma tutto se il contatto completa un’azione.
Il danno non è solo lo spam interno. Una campagna che gira in parallelo a un workflow sullo stesso contatto produce messaggi duplicati. Il contatto riceve due reminder per lo stesso appuntamento, con testi diversi, a distanza di cinque minuti. Questo non è un caso raro: è il primo problema che trovo quando audito un account che «funziona ma ogni tanto si comporta strano».

Confronto diretto: workflow vs campagne in GoHighLevel
| Criterio | Workflow | Campagna |
|---|---|---|
| Logica condizionale | Sì — rami if/else, filtri, wait until | No — sequenza lineare |
| Trigger disponibili | Oltre 30 (form, appuntamento, pipeline, tag, webhook…) | Limitati (principalmente tag o lista) |
| Azioni sul CRM | Sì — sposta stage, aggiorna campo, assegna utente | No — solo messaggi |
| Stop condizionale | Sì — goal event ferma il workflow | No — si ferma solo a fine sequenza o rimozione tag |
| Canali supportati | Email, SMS, WhatsApp, voicemail, webhook, task | Email e SMS principalmente |
| Manutenzione nel tempo | Un workflow ben costruito dura | Invecchiano male, tendono ad accumularsi |
Come funziona un workflow GoHighLevel: la struttura base
Ogni workflow parte da un trigger. Il trigger è l’evento che accende la macchina: un form compilato, un appuntamento confermato, un tag aggiunto, uno stage della pipeline cambiato. Senza trigger il workflow non gira, e questo è già diverso da una campagna che puoi lanciare manualmente su una lista.
Dopo il trigger arrivano le azioni. Puoi mandare un’email, aggiungere un tag, aspettare un numero di ore, controllare una condizione. Il punto critico è il ramo condizionale — in GHL si chiama «If/Else» — che valuta lo stato del contatto in quel momento e decide quale percorso seguire. Una campagna non ha questo: esegue il passo uno, poi il due, poi il tre, indipendentemente da cosa è successo nel frattempo.
C’è poi il goal event: puoi dire al workflow «se il contatto prenota un appuntamento, esci da questa sequenza e vai al prossimo step». Questo è lo strumento che evita di continuare a fare nurturing su chi ha già alzato la mano. Nelle campagne non esiste.
I trigger più utili in pratica
Il trigger da form è quello con cui iniziano i più. Funziona, ma non è sempre il più preciso. Se il processo è delicato — onboarding, pagamento, assegnazione a un commerciale — il trigger giusto è un evento deliberato: lo stage della pipeline cambiato a mano, il tag aggiunto dopo una verifica, lo status dell’appuntamento confermato dal calendario. Un evento passivo come la compilazione di un form può arrivare da bot, test interni, dati sporchi. Un evento deliberato riduce il rumore alla fonte.
Il trigger da webhook è quello che apre GoHighLevel al resto dello stack. Se usi Make o n8n per orchestrare dati da sistemi esterni, il webhook in entrata al workflow è il punto di ingresso. Da lì GHL può aggiornare il contatto, spostare lo stage, mandare notifiche interne — tutto senza che nessuno tocchi niente a mano.

Quando le campagne hanno ancora senso
Le campagne non sono morte: sono lo strumento giusto in scenari specifici. Il primo è la newsletter periodica su lista statica: nessuna condizione, nessun trigger comportamentale, solo «manda questo a questi contatti ogni settimana». Il secondo è il broadcast promozionale su un segmento: un’offerta a tempo, un annuncio, una comunicazione che non ha bisogno di ramificarsi perché vale uguale per tutti i destinatari.
La distinzione pratica: se ti fai la domanda «devo comportarmi diversamente in base a cosa ha fatto il contatto?», la risposta è workflow. Se la risposta è «no, stessa cosa per tutti», puoi usare una campagna — ma anche lì un workflow semplice è più controllabile, perché puoi aggiungere un filtro in uscita senza ricostruire tutto da zero.
La regola
Prima di costruire qualcosa in GHL, fai questa domanda
La logica condizionale ti serve? Il comportamento cambia in base allo stato del contatto? Se sì, è un workflow. Se la sequenza è piatta e uguale per tutti, puoi usare una campagna — ma valuta comunque il workflow per la manutenibilità futura.
- Trigger deliberato — preferisci eventi che un umano ha deciso, non compilazioni automatiche
- Goal event — mettilo sempre: ferma il nurturing quando il contatto ha già agito
- Un workflow invece di venti — meglio un flusso ramificato che venti campagne che si sovrappongono
Gli errori che si ripetono
Il primo: campagne e workflow attivi sullo stesso contatto, sullo stesso evento. Non c’è un sistema di deduplicazione automatico. Se hai un workflow che parte dal tag «lead-caldo» e una campagna che parte dallo stesso tag, il contatto riceve entrambi. Devi scegliere uno dei due e disattivare l’altro.
Il secondo: workflow senza condizione di uscita. Un workflow che non ha un goal event e non ha un filtro finale gira fino all’ultimo step e poi si ferma — anche se il contatto ha già acquistato, già disdetto, già risposto. Ogni workflow che gestisce nurturing deve avere almeno una condizione che lo ferma prima del tempo se l’obiettivo è stato raggiunto.
Il terzo: usare i wait statici quando servono i wait condizionali. «Aspetta 2 giorni» è diverso da «aspetta fino a quando il contatto ha aperto l’email». GoHighLevel supporta entrambi. Il wait condizionale è quello che trasforma una sequenza meccanica in una macchina che risponde al comportamento reale. Non usarlo è lasciare leva sul tavolo.
Il quarto, il più subdolo: un workflow senza guardie esegue sbagliato con la stessa sicurezza con cui esegue giusto. Se i dati in entrata sono sporchi — un campo vuoto, un tag doppio, uno stage non aggiornato — il workflow non si ferma e non ti avvisa. Produce. Aggiunge un tag sbagliato, manda un messaggio al contatto sbagliato, sposta uno stage che non dovevi toccare. Le guardie sono filtri all’ingresso del workflow e condizioni di verifica prima delle azioni critiche. Non sono optional.
Quale scegliere: verdetti per profilo
Hai un infobusiness con un funnel di acquisizione, lead che compilano form, un calendario per le call di vendita e un processo di onboarding dopo il pagamento. Usi i workflow per tutto: nurturing post-form con goal event sulla prenotazione, notifica interna al sales, onboarding automatico dopo il pagamento, sequenza di re-engagement con filtro su chi non ha aperto negli ultimi 30 giorni. Le campagne le togli o le lasci solo per broadcast periodici che non richiedono logica.
Hai un’agenzia che gestisce più sub-account e vuoi standardizzare i processi. I workflow sono l’unica scelta: puoi clonarli tra sub-account, puoi aggiornarli centralmente se usi snapshot, puoi aggiungere rami senza riscrivere tutto. Le campagne non scalano così: sono piatte per natura, e quando il processo cambia devi intervenire su ognuna. Se vuoi capire come GoHighLevel si inserisce nell’infrastruttura completa di un’agenzia, la guida completa copre l’architettura dall’inizio.
Stai valutando se GHL vale il costo mensile. La risposta dipende quasi sempre da quanto sfrutti i workflow: se usi solo campagne e email broadcast, stai pagando per funzionalità che non tocchi. Se invece costruisci automazioni condizionali — pipeline automatizzate, trigger da calendario, routing dei lead — il costo si ammortizza velocemente. Ho analizzato i piani in dettaglio in questo articolo sul GoHighLevel pricing.
Come si costruisce un workflow GoHighLevel senza che si rompa in silenzio
Tre principi operativi che applico a ogni flow che costruisco o revisionero.
Primo: il trigger deve essere il più specifico possibile. Non «tag aggiunto» generico, ma «tag X aggiunto da questo workflow specifico» o da questa fonte specifica. I trigger ampi catturano eventi che non volevi catturare.
Secondo: testa ogni ramo, non solo il percorso felice. Il percorso felice è quello in cui tutto va come previsto. Ma cosa succede se il campo è vuoto? Se il contatto ha già il tag? Se l’appuntamento viene annullato subito dopo la conferma? Questi scenari si testano prima di andare in produzione, non dopo. Sul come strutturare le automazioni ho scritto in modo più esteso.
Terzo: monitora le esecuzioni dopo il lancio. GoHighLevel tiene uno storico delle esecuzioni del workflow. Guardarlo una volta a settimana per le prime due settimane è il minimo. Un workflow che non ha prodotto errori non significa che ha prodotto risultati corretti: potrebbe aver eseguito su contatti sbagliati, o non aver eseguito su contatti che avrebbe dovuto includere. Il silenzio non è salute.
Se il tuo stack supera GoHighLevel e hai bisogno di collegare sistemi esterni, il modo più robusto è usare webhook in uscita verso Make o n8n, dove puoi aggiungere validazione sui dati prima che tornino in GHL. Non per complessità gratuita: per avere un punto dove il dato viene verificato prima di agire.
Domande frequenti
Posso usare contemporaneamente campagne e workflow in GoHighLevel?
Tecnicamente sì, ma è una scelta che produce quasi sempre messaggi duplicati sullo stesso contatto. Se decidi di tenere entrambi attivi, devi essere certo che non si attivino sullo stesso trigger o sullo stesso segmento. In pratica, la regola più sicura è scegliere uno dei due per ogni processo e disattivare l’altro.
I workflow GoHighLevel si possono clonare tra sub-account?
Sì, tramite snapshot. È uno dei vantaggi operativi più concreti per chi gestisce più account: costruisci il workflow una volta, lo esporti e lo importi negli altri sub-account. Le personalizzazioni vanno fatte dopo l’importazione, ma la struttura base è già lì.
Quanti workflow posso avere attivi contemporaneamente in GoHighLevel?
GoHighLevel non impone un limite pubblicato sul numero di workflow attivi per account. Il limite pratico è la tua capacità di monitorarli: più workflow attivi hai, più alto è il rischio che si sovrappongano. Un workflow ramificato vale quasi sempre venti workflow piatti.
Cosa fa esattamente il goal event in un workflow GoHighLevel?
Il goal event è una condizione di uscita anticipata. Se il contatto compie l’azione che definisci come obiettivo — prenota un appuntamento, compra, risponde — il workflow si ferma lì e salta tutti i passi successivi. Senza goal event, il nurturing continua anche dopo che l’obiettivo è già stato raggiunto.


