Durante il turno di conversazione di un agente, quest'ultimo deve rispondere all'utente finale con una risposta a una domanda, una query per informazioni o la terminazione 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 di parametri per impostare o sostituire i valori dei parametri.
Durante il turno di un agente, è possibile (e a volte consigliabile) chiamare più fulfillment, ognuno dei quali può generare un messaggio di risposta. Dialogflow CX mantiene queste risposte in una coda di risposte. Al termine del turno dell'agente, Dialogflow CX invia le risposte ordinate all'utente finale.
Casi d'uso del fulfillment
Il fulfillment ti consente di fornire messaggi di risposta nei seguenti punti:
- Fulfillment di entrata della pagina
- Route
- Gestori di eventi
- Prompt iniziali per i moduli
- Gestori di riprompt per i moduli
Per ognuno 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 esecuzione, queste risposte vengono aggiunte alla coda di risposte.
Esistono diversi tipi di messaggi di risposta, descritti nelle seguenti sottosezioni. Quando utilizzi la console, un riquadro di fulfillment ha un iniziale Dialogo con l'agente scheda, ma puoi fare clic su Aggiungi risposta al dialogo per aggiungere altre schede per altri tipi di messaggi di risposta.
Messaggio di risposta di testo statico
I messaggi di risposta di testo statico forniscono un dialogo di testo all'utente. Se le chiamate all'API Detect Intent o le chiamate di integrazione utilizzano la sintesi vocale, questo testo genera contenuti audio. Per questi messaggi, il testo fornito utilizza il Speech Synthesis Markup Language (SSML).
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 esecuzione.
Questi messaggi di testo possono contenere riferimenti ai parametri e funzioni di sistema in linea.
Payload personalizzato
Alcune integrazioni supportano una risposta di 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 JSON del payload 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 ulteriori informazioni, consulta la sezione Modelli di payload personalizzati.
Trasferimento a un operatore
Questa risposta segnala al chiamante dell'API Detect Intent che la conversazione deve essere trasferita a un operatore. Dialogflow CX utilizza questo segnale solo per identificare le conversazioni trasferite a fini di misurazione; non modifica lo stato della sessione.
Il tuo sistema o la tua integrazione può utilizzare questo segnale 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 successo della conversazione
Questa risposta segnala al chiamante dell'API Detect Intent che la conversazione con l'agente Dialogflow CX è andata a buon fine. Dialogflow CX utilizza questo segnale per identificare le conversazioni andate a buon fine a fini di misurazione e non modifica in alcun modo lo stato della sessione.
Il tuo sistema o la tua integrazione può utilizzare questo segnale per intraprendere le azioni necessarie. Dialogflow CX non impone alcuna struttura a questi dati, quindi puoi scegliere qualsiasi struttura adatta al tuo sistema.
Riproduci audio preregistrato
Questa risposta riproduce un file audio per le integrazioni che supportano questa funzionalità.
I requisiti del formato dei file audio potrebbero variare a seconda dell'integrazione. Ad esempio, consulta i requisiti per Dialogflow CX Phone Gateway.
Per le integrazioni di telefonia dei partner, l'URL del file audio deve essere accessibile al partner. Un URL disponibile pubblicamente, ad esempio un file pubblico in Cloud Storage, è sempre accessibile al partner. Il partner può anche fornire l'accesso limitato ai file audio. Per maggiori dettagli, consulta la documentazione del partner.
Testo audio di output
Questa risposta è simile alla risposta di testo, ma è applicabile solo alla sintesi vocale. Se l'agente è in grado di gestire sia le sessioni di testo sia quelle vocali, puoi utilizzare risposte di testo e di testo audio di output univoche per creare un'esperienza utente diversa per il testo rispetto alla voce. Se viene fornito un testo audio di output per una sessione vocale, le risposte di testo normale vengono ignorate.
Se l'agente gestisce sia le sessioni di testo sia quelle 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 un mix di testo e SSML, il risultato concatenato viene trattato come SSML. L'ideale è utilizzare in modo coerente il testo o SSML.
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] sia [response] possono utilizzare le funzioni di sistema in linea per generare valori dinamici durante le conversazioni. Per ulteriori informazioni, consulta le
funzioni di sistema e le
condizioni di route. [condition] viene risolto in base allo stato della sessione all'inizio del fulfillment. Se [response] si basa sullo stato della sessione, viene risolto in base allo stato della sessione aggiornato alla fine del fulfillment.
Per gli agenti multilingue,
[condition] è comune a tutte le lingue, mentre [response] è
specifico della 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 tranne quella selezionata durante l'aggiornamento di [condition].
Trasferimento di chiamate telefoniche
I trasferimenti di chiamate sono disponibili solo per il Dialogflow CX Phone Gateway.
Per alcune integrazioni di telefonia, puoi specificare un numero di telefono negli Stati Uniti per i trasferimenti di chiamate. In fase di esecuzione, quando l'agente Dialogflow CX attiva un fulfillment con il trasferimento di chiamate, la chiamata viene trasferita al numero specificato e la gestione dell'agente viene sospesa.
Risposta dello strumento del datastore
Questo tipo di risposta configura le risposte dell'agente restituite dagli strumenti del datastore collegati . Se hai configurato uno strumento del datastore in questo fulfillment, una scheda di risposta dello strumento del datastore viene compilata automaticamente.
- Link di origine: imposta il numero massimo di citazioni da restituire all'utente dopo la risposta. Una citazione è un link all'origine delle informazioni nel datastore, visualizzato come 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. In caso di errore, l'agente utilizza le risposte statiche.
- Risposte statiche: inserisci le risposte di testo statico nel campo finale 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. I messaggi di risposta non specifici per un canale sono chiamati messaggi di risposta predefiniti.
In fase di esecuzione, Dialogflow CX seleziona il messaggio di risposta predefinito o un messaggio di risposta specifico per il canale quando una richiesta Detect 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 fallback quando il sistema non riesce a fornire un canale valido.
Un nome del canale è un campo personalizzato che puoi impostare su qualsiasi testo. Se utilizzi direttamente l'API Dialogflow CX per le chiamate in fase di esecuzione, puoi utilizzare i nomi dei canali che preferisci. Se utilizzi un'integrazione esistente, devi utilizzare i nomi dei canali riconosciuti dall'integrazione.
Impostazione dei 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 il 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 dei messaggi di risposta specifici per il canale in fase di esecuzione
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 della richiesta Detect Intent. Consulta il campo queryParams.channel nel metodo detectIntent del tipo Sessions.
Seleziona un protocollo e una versione per il riferimento della sessione:
| Protocollo | V3 | V3beta1 |
|---|---|---|
| REST | Risorsa sessione | Risorsa sessione |
| RPC | Interfaccia sessione | Interfaccia 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 di grandi dimensioni e complessi, quindi l'utilizzo di modelli semplifica la procedura di creazione dell'agente.
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 modello per un payload personalizzato di fulfillment, i contenuti del modello vengono inseriti nel payload. Puoi quindi modificare il payload in base alle esigenze.
Se modifichi un modello, le modifiche non vengono propagate automaticamente a tutti i payload di fulfillment in cui è stato fatto riferimento.
Per creare un modello 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 quando crei un payload personalizzato di 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, sostituire i valori dei parametri e modificare la pagina corrente.
Di seguito sono descritte le impostazioni del webhook per il fulfillment:
| X | Elemento |
|---|---|
| Abilita webhook | Consente di abilitare il webhook per il fulfillment. |
| Webhook | Seleziona la risorsa webhook. |
| Tag | Il tag di testo che fornisci 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 risposta parziale | Consente di annullare la riproduzione di una risposta parziale. Per maggiori dettagli, consulta Impostazioni vocali avanzate. |
Preset di parametri
Utilizza il fulfillment per fornire preset che impostano o sostituiscono i valori dei parametri correnti. Questi preset vengono applicati 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 dinamicamente.
Ecco alcuni esempi:
Impostazione di un parametro
nowsull'ora corrente:Parametro Valore ora $sys.func.NOW() Incremento di un parametro esistente
counterdi 1:Parametro Valore counter $sys.func.ADD($session.params.counter, 1) Impostazione di un parametro
new-costsul valore parametroother-cost, mantenendo il valore dell'oggetto composito completo:Parametro Valore new-cost $sys.func.IDENTITY($session.params.other-cost)
Strumenti del datastore
Per ulteriori informazioni su questa funzionalità, consulta la documentazione degli strumenti del datastore.
Impostazioni vocali avanzate
Queste impostazioni vocali avanzate possono sostituire le impostazioni vocali della pagina, del flusso e dell'agente.
Coda di risposte
Durante il turno di un agente, puoi chiamare più fulfillment, ognuno dei quali può generare un messaggio di risposta. Dialogflow CX mantiene queste risposte in una coda di risposte.
Risposta parziale per l'API di streaming
Per impostazione predefinita, Dialogflow CX invia le 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 saperne di più, consulta Ciclo di vita di una pagina.
Ad esempio, se è probabile che il webhook venga eseguito per un periodo di tempo prolungato, 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:
- Input audio nel simulatore.
- Le integrazioni di telefonia dei partner potrebbero non supportare la risposta parziale. Consulta la documentazione del partner per verificare.
Per testare questa funzionalità nel simulatore, attiva la risposta parziale.

Nell'esempio seguente, supponi che il webhook impieghi 5 secondi per essere completato e che tu non abbia attivato la risposta parziale. Il turno di conversazione dell'agente Dialogflow CX non termina 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ò comporta una scarsa esperienza utente.
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é gli viene detto di aspettarsi una breve attesa. Inoltre, la chiamata webhook viene eseguita contemporaneamente a una risposta inviata all'utente finale.
Speech Synthesis Markup Language (SSML)
Puoi utilizzare Speech Synthesis Markup Language (SSML) nei campi di testo o di testo audio di output del fulfillment. 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.