Nodo Wait for Event - Callback Webhook Asincrono in ConvyAI Agentic Flow
Overview
Il nodo Wait for Event sospende l'esecuzione del flusso finché un sistema esterno non segnala il completamento chiamando un URL webhook univoco generato per quella specifica istanza di run. Quando il flusso raggiunge questo nodo, la piattaforma genera la callback URL, notifica opzionalmente il sistema esterno, e rimane in attesa. Il flusso riprende alla ricezione del callback oppure alla scadenza del timeout configurato.
Un caso d'uso tipico è l'human-in-the-loop: un AI Agent produce un risultato che deve essere revisionato e approvato da una persona prima che il flusso continui.
La sequenza seguente mostra l'interazione tra il flusso e il sistema esterno durante l'attesa:
Posizionamento
Il nodo Wait for Event ha un ingresso e due uscite: Resume e Timeout. Può essere posizionato in qualsiasi punto del flusso. La sospensione del run non blocca l'ambiente di esecuzione - gli altri run concorrenti non sono influenzati.
Uscite
Il nodo ha due uscite:
| Ramo | Attivato quando |
|---|---|
| Resume | Un callback valido viene ricevuto prima del timeout. |
| Timeout | Il timeout scade senza aver ricevuto un callback valido. |
Il ramo Timeout può essere lasciato non collegato - in quel caso, il nodo si conclude senza errore alla scadenza del timeout.
Configurazione
Notifica sistema esterno
| Campo | Descrizione |
|---|---|
| URL endpoint | URL del sistema esterno a cui inviare la notifica. Supporta riferimenti a variabili $. |
| Metodo HTTP | GET o POST. |
| Autenticazione | Nessuna, API key o header personalizzato. |
| Payload personalizzato | Coppie chiave-valore da includere nel body della notifica. I valori supportano riferimenti a variabili $. |
La notifica viene inviata automaticamente quando il nodo viene raggiunto. In caso di errore di consegna, la piattaforma riprova. Se la notifica fallisce definitivamente, il nodo va in errore e il flusso si interrompe.
Timeout
| Campo | Descrizione |
|---|---|
| Durata | Tempo massimo di attesa, da 1 minuto a N giorni. Seleziona l'unità di tempo (minuti, ore, giorni). |
Callback URL
Per ogni run, la piattaforma genera un URL univoco che il sistema esterno deve chiamare per riprendere il flusso. Questo URL è esposto come callback_url nel payload della notifica inviata al sistema esterno ed è visibile anche nella vista dettaglio run nella pagina Monitoring.
L'URL è valido solo per la durata configurata come timeout e può essere utilizzato una sola volta. Includi callback_url nel Payload personalizzato della notifica in modo che il sistema esterno sappia quale URL chiamare.
Comportamento in esecuzione
Quando il sistema esterno chiama la callback URL, il flusso riprende sul ramo Resume. L'URL può essere usato una sola volta - qualsiasi chiamata successiva viene ignorata e il flusso non viene ripreso nuovamente.
Se il timeout scade prima che la callback venga ricevuta, il flusso riprende sul ramo Timeout.
Output
Il payload ricevuto nel callback è disponibile ai nodi successivi sul ramo Resume:
| Campo | Tipo | Descrizione |
|---|---|---|
request.body | object | Body della richiesta HTTP di callback. |
request.headers | object | Header della richiesta HTTP di callback. |
Sul ramo Timeout non è disponibile alcun payload di output.
Concetti chiave
| Termine | Definizione |
|---|---|
| Callback URL | URL univoco generato per ogni run, valido per la durata del timeout configurato e utilizzabile una sola volta. Il sistema esterno chiama questo URL per segnalare il completamento e riprendere il flusso. |
| Ramo Resume | Percorso attivato quando il sistema esterno chiama la callback URL prima della scadenza del timeout. |
| Ramo Timeout | Percorso attivato quando il tempo di attesa configurato scade senza aver ricevuto la callback. |