Eventi personalizzati

Gli eventi personalizzati sono quelli che definisci tu. Vengono utilizzati per gestire le situazioni che si verificano al di fuori della conversazione con l'utente finale. Ad esempio, l'utente finale ha fatto clic su un pulsante, è trascorso un determinato periodo di tempo, l'inventario disponibile è cambiato durante la conversazione, e così via.

Puoi richiamare questi eventi utilizzando l'evasione o l'API.

Richiamare gli eventi con l'API

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

Quando fornisci un evento a una chiamata di rilevamento dell'intenzione, non fornisci altri dati, ad esempio un'espressione dell'utente finale. Lo scopo esclusivo della chiamata è invocare un evento e attivare un intent.

Richiamare eventi con il fulfillment

Puoi richiamare gli eventi tramite fulfillment impostando il campo followupEventInput del WebhookResponse. Se vuoi, 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 lo ignora perché la lingua è già stata definita nella richiesta di rilevamento dell'intenzione di origine.

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

Il seguente flusso descrive i passaggi:

  1. L'utente finale digita o pronuncia un'espressione.
  2. Dialogflow associa l'espressione dell'utente finale a Intent-1, che è configurato per l'implementazione.
  3. Dialogflow invia una richiesta webhook al tuo server.
  4. Il server risponde con una risposta webhook che include un evento di follow-up.
  5. Invece di 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 avesse avviato la corrispondenza per Intent-2 e gestisce i parametri e il completamento richiesti come indicato dalla configurazione di Intent-2.

Collegamento in serie delle corrispondenze dell'intenzione con gli eventi di risposta webhook

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

Dialogflow non risponde all'utente finale finché la catena non è terminata. Quando colleghi gli intent in questo modo, ogni risposta webhook deve essere inviata entro limiti di tempo.