Per il turno di conversazione di un agente, l'agente deve rispondere all'utente finale con una risposta a una domanda, una richiesta di informazioni o la chiusura della sessione. L'agente potrebbe anche dover contattare il tuo servizio per generare risposte dinamiche o intraprendere azioni per un turno. Il fulfillment viene utilizzato per eseguire tutte queste operazioni.
Un fulfillment può contenere uno dei seguenti elementi:
- Messaggi di risposta statici.
- Chiamate webhook per risposte dinamiche e/o per intraprendere azioni.
- Preset dei parametri per impostare o eseguire l'override dei valori dei parametri.
Durante il turno di un agente, è possibile (e talvolta auspicabile) chiamare più fulfillment, ognuno dei quali può generare un messaggio di risposta. Dialogflow CX conserva queste risposte in una coda di risposte. Una volta terminato il turno dell'agente, Dialogflow CX invia le risposte ordinate all'utente finale.
Casi d'uso di fulfillment
Il fulfillment ti consente di fornire messaggi di risposta nei seguenti punti:
- Fulfillment di ingresso alla pagina
- Route
- Gestori di eventi
- Prompt iniziali per i moduli
- Gestori di nuovi prompt per i moduli
Per ciascuno di questi casi d'uso, la console apre un riquadro di modifica del fulfillment.

Risposte dell'agente (opzioni di dialogo)
Definisci i messaggi di risposta dell'agente in fase di progettazione durante la creazione del fulfillment. In fase di runtime, queste risposte vengono aggiunte alla coda delle risposte.
Esistono diversi tipi di messaggi di risposta, descritti nelle sottosezioni seguenti. Quando utilizzi la console, un riquadro di fulfillment ha una scheda iniziale Dialogo con l'agente, ma puoi fare clic su Aggiungi risposta al dialogo per aggiungere altre schede per altri tipi di messaggi di risposta.
Risposta di testo statico
I messaggi di risposta con testo statico forniscono un dialogo di testo all'utente. Se le tue chiamate API o di integrazione per il rilevamento dell'intent utilizzano la sintesi vocale, questo testo genera contenuti audio. Per questi messaggi, il testo fornito utilizza il linguaggio di markup SSML (Speech Synthesis Markup Language).
Puoi definire più schede di risposta di testo e più risposte di testo all'interno di ogni scheda. Se definisci più schede, queste vengono concatenate per una singola risposta in fase di esecuzione. Se definisci più risposte all'interno di una scheda, uno dei messaggi nella scheda viene selezionato in modo casuale in fase di runtime.
Questi messaggi possono contenere riferimenti ai parametri e funzioni di sistema in linea.
Payload personalizzato
Alcune integrazioni supportano una risposta payload personalizzata per gestire le risposte avanzate. Questi payload personalizzati devono essere forniti nel formato JSON definito nella documentazione di integrazione. Ad esempio, consulta il formato del payload personalizzato di Dialogflow CX Messenger.
Puoi includere riferimenti ai parametri nel JSON del payload personalizzato. Racchiudili tra virgolette doppie per trattarli come valori di stringa JSON. Ad esempio:
{
"someField": "$session.params.date"
}
Il payload JSON personalizzato deve essere limitato a 24 livelli di profondità.
Puoi anche inviare un payload personalizzato alle integrazioni che sviluppi. Non verrà elaborato da Dialogflow CX, quindi devi gestirlo nella tua logica di business.
Per saperne di più, consulta i template di payload personalizzati.
Trasferimento a un operatore
Questa risposta indica al chiamante dell'API Detect Intent che la conversazione deve essere trasferita a un agente umano. Dialogflow CX utilizza questo indicatore solo per identificare le conversazioni trasferite a fini di misurazione; non altera lo stato della sessione.
Il tuo sistema o la tua integrazione possono utilizzare questo indicatore per intraprendere le azioni necessarie per trasferire la conversazione. Poiché Dialogflow CX non impone una struttura a questi dati, puoi scegliere qualsiasi struttura adatta al tuo sistema.
Metadati di conversazione riuscita
Questa risposta indica al chiamante dell'API Detect Intent che la conversazione con l'agente Dialogflow CX è andata a buon fine. Dialogflow CX utilizza questo indicatore per identificare le conversazioni andate a buon fine ai fini della misurazione e non altera in alcun modo lo stato della sessione.
Il tuo sistema o la tua integrazione può utilizzare questo indicatore per intraprendere le azioni necessarie. Dialogflow CX non impone alcuna struttura a questi dati, quindi puoi scegliere la struttura più adatta al tuo sistema.
Riproduci audio preregistrato
Questa risposta riproduce un file audio per le integrazioni che supportano questa funzionalità.
I requisiti del formato file audio potrebbero variare a seconda delle integrazioni. Ad esempio, consulta i requisiti per il gateway telefonico di Dialogflow CX.
Per le integrazioni di telefonia dei partner, l'URL del file audio deve essere accessibile dal partner. Un URL disponibile pubblicamente, ad esempio un file pubblico in Cloud Storage, è sempre accessibile dal partner. Il partner può anche fornire un accesso limitato ai file audio. Per maggiori dettagli, consulta la documentazione per i partner.
Testo dell'audio di output
Questa risposta è simile alla risposta text, ma è applicabile solo alla sintesi vocale. Se l'agente è in grado di gestire sessioni sia di testo che vocali, puoi utilizzare risposte uniche di testo e testo audio di output per creare un'esperienza utente diversa per il testo e la voce. Se viene fornito un testo audio di output per una sessione vocale, le risposte in testo normale vengono ignorate.
Se l'agente gestisce sia sessioni di testo che vocali e vuoi gli stessi messaggi di risposta, utilizza le risposte di testo per entrambe le sessioni.
Il testo audio di output viene concatenato in modo simile alle risposte di testo. Se le risposte di testo audio di output sono una combinazione di testo e SSML, il risultato concatenato viene trattato come SSML. Idealmente, dovresti utilizzare il testo o l'SSML in modo coerente.
Risposta condizionale
Questo tipo di risposta fornisce risposte condizionali:
Il formato generale è:
if [condition] [response] elif [condition] [response] elif [condition] [response] else [response] endif
dove:
[condition]utilizza lo stesso formato delle condizioni di route.[response]è una risposta di testo.- I blocchi
elifeelsesono facoltativi.
Ad esempio:
if $session.params.user-age >= 21 Ok, you may enter. else Sorry, you cannot enter. endif
Sia [condition] che [response] possono utilizzare le funzioni di sistema inline per generare valori dinamici durante le conversazioni. Per saperne di più, consulta funzioni di sistema e condizioni di route. [condition] viene risolto in base allo stato della sessione all'inizio del fulfillment. Se l'[response] si basa sullo stato della sessione, viene risolto in base allo stato della sessione aggiornato al termine del fulfillment.
Per gli agenti multilingue,
[condition] è comune a tutte le lingue, mentre [response] è
specifico per la lingua. Quando modifichi [condition] per una lingua nella console, questa parte viene aggiornata in tutte le lingue dell'agente. Poiché diventa una nuova condizione, [response] viene cancellato per tutte le lingue diverse da quella selezionata durante l'aggiornamento di [condition].
Trasferimento di chiamata telefonica
I trasferimenti di chiamata sono disponibili solo per il gateway telefonico di Dialogflow CX.
Per alcune integrazioni di telefonia, puoi specificare un numero di telefono negli Stati Uniti per i trasferimenti di chiamata. In fase di runtime, quando l'agente Dialogflow CX attiva un fulfillment con trasferimento di chiamata, la chiamata viene trasferita al numero specificato e la gestione dell'agente viene sospesa.
Risposta dello strumento datastore
Questo tipo di risposta configura le risposte dell'agente restituite dagli strumenti del datastore collegati. Se hai configurato uno strumento datastore in questo fulfillment, viene compilata automaticamente una scheda di risposta dello strumento datastore.
- Link alle fonti:imposta il numero massimo di citazioni da restituire all'utente dopo la risposta. Una citazione è un link alla fonte delle informazioni nel datastore, visualizzato sotto forma di pulsanti. Il valore predefinito è 1.
- Citazioni in linea:limita il numero di citazioni in linea restituite per frase anziché elencare i link dopo la risposta.
- Fallback generativo:configura l'agente in modo che tenti una risposta generata dall'AI se il datastore restituisce un risultato vuoto. Se l'operazione non va a buon fine, l'agente utilizza risposte statiche.
- Risposte statiche:inserisci risposte di testo statiche nell'ultimo campo da inviare all'utente parola per parola.
Messaggi di risposta specifici per il canale
Quando definisci il fulfillment, puoi creare messaggi di risposta specifici per il canale per creare risposte mirate per chat di testo, voce, SMS o integrazioni specifiche che supportano i canali di assistenza. I messaggi di risposta non specifici di un canale sono chiamati messaggi di risposta predefiniti.
In fase di runtime, Dialogflow CX seleziona il messaggio di risposta predefinito o un messaggio di risposta specifico per il canale quando una richiesta di rilevamento dell'intent specifica un canale. Come best practice, devi definire i messaggi di risposta predefiniti, anche se utilizzi messaggi di risposta specifici per il canale. I messaggi di risposta predefiniti fungono da riserva quando il sistema non riesce a fornire un canale valido.
Il nome del canale è un campo personalizzato che puoi impostare su qualsiasi testo. Se utilizzi l'API Dialogflow CX direttamente per le chiamate di runtime, puoi utilizzare i nomi dei canali che preferisci. Se utilizzi un'integrazione esistente, devi utilizzare i nomi dei canali riconosciuti dall'integrazione.
Impostazione di messaggi di risposta specifici per il canale in fase di progettazione
Per fornire messaggi di risposta specifici per il canale per il fulfillment quando utilizzi la console:
- Fai clic su Aggiungi canale dopo aver aggiunto i messaggi di risposta predefiniti per aggiungere messaggi di risposta specifici per il canale. Fai di nuovo clic su Aggiungi canale per aggiungere altri canali.
Per fornire messaggi di risposta specifici per canale per il fulfillment quando utilizzi l'API:
- Imposta il campo
Fulfillment.messages[i].channelsul canale scelto per ogni messaggio di risposta. Se questo campo non è impostato, la risposta viene trattata come un messaggio di risposta predefinito.
Utilizzo di messaggi di risposta specifici per il canale in fase di runtime
Se utilizzi un'integrazione esistente che supporta i canali, l'implementazione dell'integrazione esegue questi passaggi.
Per ricevere un messaggio di risposta specifico per il canale, devi specificare il canale nel messaggio di richiesta di rilevamento dell'intent. Consulta il campo queryParams.channel nel metodo detectIntent del tipo Sessions.
Seleziona un protocollo e una versione per il riferimento alla sessione:
| Protocollo | V3 | V3beta1 |
|---|---|---|
| REST | Risorsa Session | Risorsa Session |
| RPC | Interfaccia della sessione | Interfaccia della sessione |
| C++ | SessionsClient | Non disponibile |
| C# | SessionsClient | Non disponibile |
| Vai | SessionsClient | Non disponibile |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Non disponibile | Non disponibile |
| Python | SessionsClient | SessionsClient |
| Ruby | Non disponibile | Non disponibile |
Dialogflow CX restituisce il messaggio di risposta predefinito se una richiesta non definisce alcun canale o se il fulfillment non trova un canale corrispondente.
Modelli di payload personalizzati
Se utilizzi spesso payload personalizzati, utilizza i modelli di payload personalizzati. I payload personalizzati a volte sono grandi e complessi, quindi l'utilizzo dei modelli semplifica il processo di creazione degli agenti.
Fornisci questi modelli nelle impostazioni dell'agente per renderli disponibili per la selezione durante la creazione del fulfillment per l'agente.
Ad esempio, il payload JSON per i pulsanti "Sì" e "No" può essere definito come modelli di payload personalizzati. Quando crei un fulfillment che richiede questi pulsanti, seleziona il modello durante la creazione del fulfillment.
Quando selezioni un template per un payload personalizzato di fulfillment, i contenuti del template vengono inseriti nel payload. Puoi quindi modificare il payload in base alle tue esigenze.
Se modifichi un template, le modifiche non vengono propagate automaticamente a tutti i payload di fulfillment in cui è stato fatto riferimento.
Per creare un template di payload personalizzato, consulta le impostazioni generali dell'agente.
Per selezionare un modello di payload personalizzato durante la creazione del fulfillment, fai clic su Seleziona modello durante la creazione di un payload personalizzato del fulfillment.
Chiamate webhook
Quando un fulfillment attiva un webhook, l'agente invia una richiesta al tuo servizio. Il webhook può eseguire azioni, fornire messaggi di risposta dinamici, eseguire l'override dei valori parametro e modificare la pagina corrente.
Di seguito sono descritte le impostazioni del webhook per il fulfillment:
| X | Elemento |
|---|---|
| Abilita webhook | In questo modo, il webhook viene attivato per il fulfillment. |
| Webhook | Seleziona la risorsa webhook. |
| Tag | Il tag di testo fornito qui verrà inserito nel campo WebhookRequest.fulfillmentInfo.tag della richiesta webhook inviata al tuo servizio webhook. Può essere utilizzato per controllare il comportamento del webhook in modo specifico per il fulfillment. |
| Restituisci una risposta parziale | Consente l'annullamento della riproduzione di una risposta parziale. Per maggiori dettagli, vedi Impostazioni vocali avanzate. |
Preset dei parametri
Utilizza il fulfillment per fornire preset che impostano o sostituiscono i valori dei parametri correnti. Queste preimpostazioni vengono applicate prima di risolvere i messaggi di risposta statici o di chiamare un webhook.
Puoi anche utilizzare le funzioni di sistema per preimpostare un parametro su un valore generato in modo dinamico.
Ecco alcuni esempi:
Impostazione di un parametro
nowsull'ora corrente:Parametro Valore ora $sys.func.NOW() Incremento di 1 di un parametro esistente
counter:Parametro Valore counter $sys.func.ADD($session.params.counter, 1) Impostazione di un parametro
new-costsul valore parametroother-cost, mantenendo il valore completo dell'oggetto composito:Parametro Valore new-cost $sys.func.IDENTITY($session.params.other-cost)
Strumenti per i datastore
Per saperne di più su questa funzionalità, consulta la documentazione sugli strumenti del datastore.
Impostazioni avanzate per il parlato
Queste impostazioni avanzate per il parlato possono eseguire l'override delle impostazioni per il parlato della pagina, delle impostazioni per il parlato del flusso e delle impostazioni per il parlato dell'agente.
Coda di risposta
Durante il turno di un agente, puoi chiamare più fulfillment, ognuno dei quali può generare un messaggio di risposta. Dialogflow CX conserva queste risposte in una coda di risposte.
Risposta parziale per l'API di streaming
Per impostazione predefinita, Dialogflow CX invia risposte ordinate agli utenti finali solo al termine del turno dell'agente. Puoi anche attivare l'opzione Restituisci risposta parziale nel fulfillment per restituire le risposte in coda come risposta parziale quando utilizzi le API di streaming. Per scoprire di più, consulta Ciclo di vita di una pagina.
Ad esempio, se è probabile che il webhook venga eseguito per un lungo periodo di tempo, puoi aggiungere una risposta statica nel fulfillment e attivare la risposta parziale. In questo modo, Dialogflow CX svuota la coda di risposte e invia tutti i messaggi come risposta parziale prima di chiamare il webhook.
La risposta parziale non è supportata per quanto segue:
- Input audio nel simulatore.
- Le integrazioni di telefonia dei partner potrebbero non supportare la risposta parziale. Per verificare, consulta la documentazione del partner.
Per testare questa funzionalità nel simulatore, attiva la risposta parziale.

Nell'esempio seguente, considera che il webhook impiega 5 secondi per essere completato e che non attivi la risposta parziale. Il turno di conversazione dell'agente Dialogflow CX non è terminato finché il webhook non viene completato. Durante questo turno di 5 secondi, le risposte vengono messe in coda in attesa del webhook e non vengono restituite all'utente finale fino al completamento del turno. Ciò si traduce in un'esperienza utente scadente.
Se attivi la risposta parziale nel primo fulfillment, Dialogflow CX restituisce rapidamente il primo messaggio di fulfillment e chiama il webhook. Al termine del webhook, Dialogflow CX restituisce la risposta finale. Questo scenario migliora l'esperienza dell'utente finale, perché quest'ultimo viene informato che dovrà attendere un po'. Inoltre, la chiamata webhook viene eseguita contemporaneamente a una risposta inviata all'utente finale.
Speech Synthesis Markup Language (SSML)
Puoi utilizzare il linguaggio di markup SSML (Speech Synthesis Markup Language) nei campi di esecuzione del testo o del testo audio di output. In questo modo puoi personalizzare la risposta audio fornendo dettagli su pause e formattazione audio per acronimi, date, orari, abbreviazioni o testo che deve essere censurato.
Per i dettagli sulla sintassi, consulta la documentazione SSML di Text-to-Speech.