Workflow: Come si crea un workflow

Il Workflow è il modo in cui colleghi agenti vocali, agenti WhatsApp e i tuoi strumenti in una sequenza automatica: parte da un evento, fa una catena di azioni. È il pezzo che serve ogni volta che un caso d'uso coinvolge più di un canale, o richiede logica ("se il cliente non risponde, allora...").

Scritto da Product

Ultimo aggiornamento 13 giorni fa

1. Come si crea un workflow

Vai su Workflow nel menu laterale, poi clicca "Crea workflow". Si apre una finestra con il titolo "Come vuoi iniziare?" e due strade, nella stessa schermata:

A. Descrivilo a parole
C'è un campo di testo con questo placeholder: "Descrivi cosa vuoi ottenere e lo costruisco io. Esempio: quando arriva un lead dal sito, chiamalo e aggiorna il CRM." Scrivi cosa vuoi che succeda, clicca "Costruisci": si apre l'editor con il grafo già disegnato, pronto da rifinire.

B. Parti da un modello
Sotto la voce "oppure scegli un modello" trovi alcuni modelli pronti (es. "Nuovo lead dal sito, chiamalo subito", "Richiama chi non ha risposto", "Registra l'esito dopo la chiamata", "Lista di contatti, chiama e fai follow-up"). In fondo c'è sempre "Parti da zero" per un canvas vuoto.

Qualunque strada scegli, atterri sull'editor del workflow (/dashboard/workflow/{id}).

Nota: la chat AI resta disponibile anche dopo, non solo all'inizio. Nell'editor trovi sempre, in basso al centro del canvas, un campo dove puoi scrivere di nuovo, ad esempio "aggiungi un passaggio che manda un'email se il cliente non risponde", e l'AI propone la modifica: vedi un riepilogo ("Modifiche proposte") con due pulsanti, "Applica modifiche" e "Scarta", prima che tocchi il tuo workflow.


2. Come funziona il canvas (importante: non è drag-and-drop)

A differenza di altri strumenti simili, qui non trascini una linea da un nodo all'altro. Tutto si fa a click:

  • Ogni uscita "libera" di uno step ha sotto un piccolo pulsante "+". Cliccandolo si apre una finestra di ricerca (placeholder "Cerca un nodo…") con i nodi disponibili raggruppati per categoria: Trigger, Comunicazione, Dati, AI, Logica, Sviluppatori (più una sezione "Integrazioni" se hai già collegato qualche app).

  • Nella stessa finestra, in alto, trovi anche "Collega a step esistente": usalo quando vuoi che un nuovo ramo (es. un secondo trigger, o un "no" di una condizione) converga su uno step che hai già messo sul canvas, invece di crearne uno nuovo. Non puoi collegarti a un trigger né creare un doppione dello stesso collegamento.

  • Il canvas vuoto parte con la scritta "Inizia da qui" e un pulsante "+ Trigger": il trigger è sempre il primo blocco, l'evento che fa partire tutto.

  • In basso a destra hai i controlli di zoom: , la percentuale (cliccandola torni al 100%), +, e un pulsante per "Adatta il workflow alla vista". Per spostarti sul canvas usa la rotellina/trackpad.

  • Undo/redo: ⌘Z per annullare, ⇧⌘Z per ripetere (funziona fino a 50 passaggi indietro).

3. I trigger: cosa può far partire un workflow

Puoi aggiungere questi trigger dal pulsante "+":

Trigger

Cosa fa

Cosa configuri

Webhook

Parte quando ricevi una chiamata HTTP da un sistema esterno

URL da copiare e usare altrove, metodo (POST/GET/ecc.), e puoi mappare i campi in arrivo (telefono, nome, email...) su un evento di prova reale già ricevuto

Chiamata completata

Parte alla fine di una chiamata di un tuo agente

Quale agente, ed eventualmente solo su un esito specifico (Successo / Fallimento / Nessuna risposta)

Lista contatti

Parte una volta per ogni contatto di una lista che scegli

La lista (statica o smart)

Import CSV

Carichi un file al momento del lancio, parte una volta per riga

Nessuna configurazione preventiva: carichi il file quando lanci

Google Sheet

Come sopra, ma da un foglio Google collegato

Foglio, scheda, mappatura colonne → campi

WhatsApp in entrata

Parte quando arriva un messaggio WhatsApp a un tuo agente

Quale agente WhatsApp (il numero è mostrato in automatico)

Appuntamento prenotato

Parte quando un agente (voce o WhatsApp) fissa un appuntamento reale

Facoltativo: solo per un agente specifico

Evento integrazione

Parte quando succede qualcosa in un tuo strumento collegato (es. nuovo deal su HubSpot)

Solo per le integrazioni che supportano i trigger, vedi la guida Integrazioni

Puoi mettere più trigger paralleli sullo stesso workflow (es. "Chiamata completata" OPPURE "Webhook ricevuto" fanno entrambi partire la stessa catena a valle): aggiungili entrambi e poi collega l'output di ognuno allo stesso step con "Collega a step esistente".

Chiamata in entrata e Lead da Meta e Contatto CRM cambiato esistono nel sistema ma non sono ancora aggiungibili a mano dal pulsante "+" (il primo si collega da solo quando assegni un agente a un numero in entrata; gli altri due sono cablaggi futuri, non presenti nella finestra di ricerca oggi).


4. Le azioni: cosa può fare un workflow

Azione

Cosa fa davvero

Attenzione

Chiamata in uscita

Fa partire una chiamata con un tuo agente vocale, passandogli dati dinamici (nome, motivo, dati raccolti prima)

Ha 4 uscite: Chiamata avviata, Chiamata terminata, Obiettivo raggiunto, Obiettivo non raggiunto, Nessuna risposta, Appuntamento prenotato: puoi far proseguire il workflow in modo diverso per ognuno di questi esiti

Agente WhatsApp

⚠️ Nonostante il nome, non fa parlare l'agente: invia un messaggio template WhatsApp collegato al numero di un agente

Non è un blocco "conversazione WhatsApp completa": vedi il paragrafo 7

Invia messaggio WhatsApp

Manda un template WhatsApp diretto a un numero, senza passare da un agente

Domanda WhatsApp

Manda una domanda con fino a 3 bottoni; ogni risposta diventa un ramo diverso del workflow, più un ramo "nessuna risposta" per il timeout

Utile per qualificazione a bottoni

Risposta WhatsApp

Manda una risposta (testo, template o bottoni) dentro una conversazione già aperta, con effetti opzionali (assegna a operatore, chiudi la conversazione)

Funziona solo dentro la finestra di 24 ore di risposta

Attendi risposta

Mette in pausa il workflow finché il cliente non risponde su WhatsApp (o scade il tempo massimo che imposti)

Due uscite: Risposta ricevuta / Timeout

SMS

Manda un SMS (via Twilio o via DeepAgent)

Email

Manda un'email da una casella SMTP collegata

Aggiorna CRM

Dovrebbe scrivere dati sul tuo gestionale

Oggi non ha ancora un pannello di configurazione: non è utilizzabile in pratica, non basarci un workflow

HTTP Request

Chiama una tua API esterna (URL, metodo, header, corpo)

È l'unica azione che gira davvero anche durante un test manuale ("Esegui ora")

Risposta AI

Genera un testo con l'AI a partire da un prompt che scrivi tu

Catalogatore

Fa classificare a un'AI un testo (es. il messaggio del cliente) dentro categorie che definisci tu; ogni categoria diventa un ramo

Google Sheet / Aggiorna Google Sheet

Aggiunge o aggiorna una riga su un foglio Google collegato

Google Calendar

Crea un evento sul calendario dopo la chiamata

Codice

Esegue uno script per trasformare dati (niente chiamate di rete: per quello usa HTTP Request)

Tool MCP

Esegue un tool su un server MCP esterno che colleghi tu

Integrazione

Esegue un'azione su un'app collegata (HubSpot, Slack, Notion...)

Compare solo per le integrazioni che hai già connesso

Dati che ricevi da una chiamata finita, da usare negli step successivi: stato, durata, riepilogo, sentiment, se l'obiettivo è stato raggiunto, i dati personalizzati che l'agente ha raccolto e, se ha prenotato, data/ora/link dell'appuntamento.

5. Logica: Condizione, Percorsi, Attesa

Condizione ("Filtro"): biforca in due, Vero / Falso. Costruisci una o più regole: scegli il campo da un elenco (non scrivi a mano, clicchi sul dato reale, es. "esito chiamata"), scegli un operatore tra Uguale a, Diverso da, Contiene, Maggiore di, Minore di, È vuoto, Non è vuoto, e un valore. Puoi aggiungere più regole con "Aggiungi regola", raggrupparle con "Aggiungi gruppo", e decidere se serve che valgano "Tutte le condizioni" o "Almeno una condizione".

Percorsi: la versione a più rami della Condizione. Scrivi le regole di ogni percorso (stesso editor di sopra), e uno o più percorsi possono attivarsi insieme, non solo uno. C'è sempre un ramo di sicurezza, "Nessun percorso", che si attiva se il contatto non rientra in nessuna regola, così il workflow non si blocca mai in silenzio.

Attesa: mette in pausa per un tempo che imposti (minuti, ore o giorni), poi riprende da sola. Non ricontrolla condizioni, aspetta e basta.

Altri blocchi che si comportano come biforcazioni: "Ha prenotato?" (controlla da solo se è stato fissato un appuntamento, si biforca in Prenotato/Non prenotato), la Domanda WhatsApp (un ramo per bottone) e l'Attendi risposta (Risposta ricevuta/Timeout) descritti sopra.

6. Usare dati di uno step in un altro ("Inserisci dati")

Ogni campo di testo che lo supporta (destinatario, corpo del messaggio, URL, prompt...) ha un pulsante "Inserisci dati". Cliccandolo si apre un elenco dei dati disponibili, divisi in due gruppi:

  • "Sempre disponibili": step che sono già sicuramente passati prima di questo, in ogni percorso.

  • "Dipende dal percorso": step che esistono solo su alcuni rami, quindi il dato potrebbe non esserci sempre.

Quando scegli un campo, non vedi scritto un codice tipo {{step.campo}}: vedi un chip leggibile, tipo "Chiamata in uscita → Sentiment", che puoi cancellare o spostare come una parola. Se rinomini lo step da cui arriva un dato, tutti i riferimenti a quel dato si aggiornano da soli. Se invece cancelli lo step, il chip diventa rosso con scritto "Variabile mancante", così lo trovi subito.

Per i trigger che non hanno una forma fissa (webhook, righe di un Google Sheet, eventi da un'integrazione), i campi disponibili compaiono solo dopo un test: apri lo step e premi "Testa questo step" per vedere, con valori reali, cosa arriva davvero.

7. Pubblicare, testare, controllare cosa è successo

Salvataggio: automatico un secondo e mezzo dopo ogni modifica (vedi lo stato in alto: "Salvataggio…""Salvato"; se qualcosa va storto vedi "Salvataggio non riuscito. Clicca per riprovare.").

Pubblicare: finché il workflow è bozza, in alto trovi "Pubblica". Se il workflow ha errori di configurazione, non succede niente di irreversibile: si apre invece una finestra "Prima correggi questi punti" che elenca esattamente cosa manca (es. una condizione che usa un dato di uno step non garantito prima di lei): clicchi la voce e vai dritto allo step da sistemare.

Solo quando il workflow è senza errori, "Pubblica" apre la vera finestra di conferma, "Attivare il workflow?": un riepilogo di ogni azione che toccherà un cliente vero (chiamata, SMS, WhatsApp, email, evento calendario), o, se non ce ne sono, te lo dice esplicitamente ("Questo workflow non contiene azioni dirette verso i clienti"). Se non hai ancora testato il workflow, vedi anche un avviso giallo che te lo consiglia prima di attivare. Dopo la pubblicazione il pulsante diventa un interruttore Attivo / Inattivo, per spegnere il workflow senza doverlo ripubblicare da capo.

Come testare, 3 modalità, dal menu accanto al pulsante principale:

  1. "Esegui ora": lancia subito l'intero workflow con dati di prova, qualunque sia il trigger (anche se è un webhook, non aspetta una chiamata vera).

  2. "Test con AI": un'AI esegue il workflow con dati di esempio, controlla ogni passaggio e prova a correggere gli errori. Chiamate e messaggi sono simulati: nessun cliente viene contattato davvero.

  3. "Testa il trigger": fa scattare per davvero l'evento del trigger (per un webhook, apre un pannello con l'URL di test e aspetta una chiamata HTTP reale); da lì in poi i passaggi girano comunque in modalità simulata, tranne le richieste HTTP e gli step AI, che eseguono per davvero.

In ogni modalità di test: chiamate e messaggi non raggiungono mai un cliente reale, salvo che tu stia guardando l'esecuzione live di un webhook che hai davvero chiamato tu stesso da fuori.

Cronologia esecuzioni: pulsante "Attività" in alto, due schede: "Esecuzioni" (elenco di tutte le esecuzioni passate, con stato/trigger/durata, e un pulsante per rilanciarle) e "Versioni" (per tornare a una configurazione salvata precedente). Aprendo una singola esecuzione vedi, passo per passo, cosa è entrato e cosa è uscito da ogni step, un log leggibile in italiano e, se qualcosa è fallito, un pulsante "Prova a sistemare" che manda l'errore direttamente alla chat AI per una correzione guidata.

8. Cosa sapere prima di costruire (limiti reali, non ipotetici)

  • Non esiste un blocco "agente WhatsApp che conversa" dentro il canvas. Il nodo che si chiama "Agente WhatsApp" manda solo un template. Per una vera conversazione WhatsApp che qualifica/risponde da sola, l'agente WhatsApp resta un prodotto a sé (lo costruisci nel builder WhatsApp): il workflow lo aggancia solo tramite il trigger "WhatsApp in entrata" e i blocchi di domanda/risposta/attesa descritti sopra, non con un singolo nodo "fai parlare l'agente qui".

  • "Aggiorna CRM" non ha ancora un pannello di configurazione. Non costruirci sopra un workflow: oggi non è utilizzabile.

  • Un workflow pubblicato ma con il trigger "Webhook" va verificato con il team prima di contarci in produzione su un caso critico: la parte di test è solida, ma se il tuo caso dipende da un webhook che arriva da un sistema esterno in modo continuativo, fai un giro di conferma con chi segue la piattaforma prima di spegnere il processo manuale.

  • I workflow che restano "in attesa di una chiamata" o "in attesa di una risposta WhatsApp" (gli stati Waiting for call / Waiting for reply che vedi nella cronologia) dovrebbero riprendere da soli quando l'evento arriva: un bug che lo impediva è stato corretto l'11/08/2026. Se hai un caso critico che dipende da questo, verifica con il team che la correzione sia attiva sull'ambiente che usi prima di contarci in produzione.