Eventi personalizzati

Gli eventi personalizzati sono quelli che definisci tu. Sono usati per gestire cose che accadono al di fuori della conversazione con l'utente finale. Ad esempio, l'utente finale ha fatto clic su un pulsante, è trascorso un certo periodo di tempo, l'inventario disponibile è cambiato durante la conversazione e così via.

Puoi richiamare questi eventi utilizzando fulfillment o l'API.

Richiamare gli eventi con l'API

La richiesta di una chiamata detectIntent di tipo Sessions contiene un campo queryInput.event, utilizzato per richiamare gli eventi. Il tipo di questo campo è EventInput e contiene i campi per il nome dell'evento, i parametri facoltativi e il codice lingua.

Quando fornisci un evento a una chiamata di rilevamento di intent, non fornisci altri dati, come un'espressione dell'utente finale. L'unico scopo della chiamata è richiamare un evento e attivare un intent.

Richiama eventi con fulfillment

Puoi richiamare gli eventi tramite fulfillment impostando il campo followupEventInput di WebhookResponse. Facoltativamente, puoi impostare il campo followupEventInput.parameters per fornire parametri all'intent.

Ad esempio:

{
  "followupEventInput": {
    "name": "event-name",
    "parameters": {
      "parameter-name-1": "parameter-value-1",
      "parameter-name-2": "parameter-value-2"
    },
    "languageCode": "en-US"
  }
}

Quando il parametro followupEventInput è impostato per un WebhookResponse, Dialogflow ignora i campi fulfillmentText, fulfillmentMessages e payload. Inoltre, il campo followupEventInput.languageCode è obbligatorio, ma Dialogflow ignora questo campo, perché la lingua era già stata definita nella richiesta di intent di rilevamento originaria.

Quando Dialogflow riceve una risposta webhook che include un evento, attiva immediatamente l'intent corrispondente in cui è stato definito.

Di seguito vengono descritti i passaggi:

  1. L'utente finale digita o pronuncia un'espressione.
  2. Dialogflow abbina l'espressione dell'utente finale a Intent-1, che è configurato per il fulfillment.
  3. Dialogflow invia una richiesta webhook al server.
  4. Il server risponde con una risposta webhook che include un evento di follow-up.
  5. Anziché rispondere all'utente per la corrispondenza Intent-1, Dialogflow attiva Intent-2, che è configurato per l'evento.
  6. Dialogflow procede come se l'utente finale avviasse la corrispondenza per Intent-2 e gestisce i parametri richiesti e il fulfillment come richiesto dalla configurazione di Intent-2.

Concatenamento delle corrispondenze di intent con gli eventi di risposta webhook

È possibile concatenare le corrispondenze di intent con gli eventi di risposta webhook. Nel flusso descritto sopra, potrebbe essere configurato anche Intent-2 per il fulfillment. Se la risposta webhook del server fornisce un altro evento, Dialogflow procede alla corrispondenza con Intent-3 (configurato per l'evento) senza rispondere all'utente finale per Intent-2.

Dialogflow non risponde all'utente finale fino al termine della catena. Quando concateni gli intent in questo modo, ogni risposta webhook deve essere inviata entro le restrizioni di timeout.