Condividi tramite


Usare le variabili globali

Le variabili memorizzano le risposte dei tuoi clienti alle domande dell'agente. Ad esempio, puoi salvare il nome di un cliente in una variabile chiamata UserName. L'agente può quindi rivolgersi al cliente per nome mentre la conversazione continua.

Per impostazione predefinita, il valore di una variabile può essere usato solo nell'argomento in cui viene creata la variabile. Tuttavia, è possibile riutilizzare lo stesso valore tra gli argomenti. Ad esempio, un argomento Benvenuto chiede il nome e l'indirizzo e-mail del cliente. Nell'argomento Prenotazione dell'appuntamento, vuoi che l'agente ricordi ciò che il cliente ha inserito e non lo chieda di nuovo.

Un modo per riutilizzare una variabile consiste nel passare la variabile da un argomento a un altro. L'altro modo è creare la variabile globale nell'ambito, ed è ciò che illustra questo articolo. Le variabili globali sono chiamate così perché sono disponibili in tutti gli argomenti dell'intero agente. Possono anche essere impostati da fonti esterne.

Le variabili globali si applicano durante una singola sessione utente. Specifica quali variabili sono variabili globali per distinguerle dalle variabili a livello di argomento.

Creare una variabile globale

Puoi creare una variabile globale modificando l'ambito di una variabile di argomento.

Nota

I nome di una variabile globale deve essere univoco in tutti gli argomenti.

  1. Creare una variabile o utilizza il pannello Variabili per aprire una variabile esistente.

  2. Nel riquadro Proprietà variabili, seleziona Globale (qualsiasi argomento può accedere).

    Al nome della variabile verrà assegnato il prefisso Global. per differenziarla dalle variabili a livello di argomento. Ad esempio, la variabile UserName viene visualizzata come Global.UserName.

  3. Salva l'argomento.

Usare variabili globali

Quando componi un messaggio in un nodo Messaggio o in un nodo Domanda, seleziona l'icona {x} per visualizzare le variabili disponibili per l'argomento. Le variabili globali vengono visualizzate nella scheda Personalizzato, insieme a tutte le variabili argomento. Le variabili sono elencate in ordine alfabetico.

Trovare tutti gli argomenti utilizzando una variabile globale

Puoi scoprire dove una variabile globale è definita e quali altri argomenti la stanno utilizzando. Questa funzionalità può essere utile se stai lavorando su un nuovo agente o se hai più variabili e una ramificazione complessa di argomenti.

  1. Seleziona la variabile globale desiderata nell'area del contenuto o nel riquadro Variabili.

  2. Nel riquadro Proprietà variabili, nella sezione Riferimento, seleziona Visualizza tutti i riferimenti.

  3. Passa alla scheda Altro e seleziona un argomento in cui la variabile viene utilizzata per andare direttamente a quell'argomento e nodo.

Eliminazione delle variabili globali

Se rimuovi una variabile globale utilizzata in altri argomenti, i riferimenti a tale variabile negli argomenti verranno contrassegnati come Unknown. Riceverai un avviso sull'eliminazione della variabile globale prima di poter confermare l'operazione.

I nodi che contengono riferimenti a una variabile globale eliminata indicheranno che contengono una variabile sconosciuta.

Gli argomenti con nodi che contengono riferimenti a variabili globali eliminate potrebbero smettere di funzionare. Assicurati di rimuovere o correggere tutti gli argomenti che stavano utilizzando la variabile eliminata prima della pubblicazione dell'agente.

Ciclo di vita delle variabili globali

Per impostazione predefinita, il valore di una variabile globale persiste finché la sessione non termina. Il nodo Cancella valori variabili reimposta i valori delle variabili globali e viene utilizzato nell'argomento di sistema Reimposta conversazione. Quando un reindirizzamento attiva l'argomento (o quando l'utente immette una frase, ad esempio "Ricomincia"), tutte le variabili globali vengono reimpostate.

Imposta variabili globali da origini esterne

Per assicurarti che l'agente avvii una conversazione con un certo contesto, puoi usare una variabile globale e impostarne il valore da un'origine esterna. Supponiamo che il tuo sito richieda agli utenti di accedere. Se memorizzi il nome di un utente in una variabile globale e lo passi al tuo agente, quest'ultimo può salutare i clienti per nome prima che inizino a digitare la loro prima domanda. Un altro scenario di esempio consiste nel passare il contesto da Dynamics 365 Customer Service a un agente in modo che possa iniziare la conversazione con la conoscenza di ciò che il cliente vuole ottenere.

Per evitare una latenza indesiderata, puoi specificare per quanto tempo l'agente può attendere un valore. Puoi inoltre impostare un valore predefinito da utilizzare quando l'origine esterna non risponde in modo tempestivo.

Nota

Gli agenti pubblicati sul canale Dynamics 365 Contact Center per i casi d'uso IVR non supportano i valori di timeout configurati per le variabili globali impostate da origini esterne.

  1. Creare un argomento dedicato per contenere la configurazione di tutte le variabili che devono essere impostate da origini esterne. Ad esempio, potresti denominare questo argomento "Imposta variabili di contesto". Questo argomento non ha altri scopi, quindi non è necessario che siano impostate frasi trigger.

  2. Aggiungi un nodo Imposta valore variabile all'argomento dedicato.

  3. In Imposta variabile, apri il selezionatore della variabile e seleziona Crea una nuova variabile.

  4. Seleziona il nome predefinito della nuova variabile. Viene visualizzato il riquadro Proprietà variabili.

  5. Sostituisci il nome predefinito con uno che corrisponda esattamente al nome della variabile passata dal sistema esterno.

  6. In Utilizzo, seleziona Globale (qualsiasi argomento può accedere) e Le origini esterne possono impostare valori.

  7. In Riferimento selezionare l'icona Altro () nell'angolo superiore destro e selezionare Recupera valore da questo nodo se vuoto.

  8. (Facoltativo) Imposta un ritardo di timeout, in millisecondi. Questo valore determina il tempo di attesa dell'agente per l'impostazione della variabile da parte di un'origine esterna prima del timeout e della continuazione con il valore predefinito impostato nel nodo Imposta valore variabile. Questa impostazione è rilevante negli scenari in cui la variabile dipende da un processo asincrono o a esecuzione prolungata, ma l'agente deve rispettare una latenza massima per garantire una buona esperienza utente.

    Per le variabili provenienti da Multicanale per Customer Service, suggeriamo un valore di 10 secondi (10.000 ms) come tempo massimo di attesa.

  9. Nel nodo Imposta valore variabile immetti il valore predefinito da utilizzare se viene raggiunto il timeout. In fase di esecuzione, l'agente si aspetterà valori con lo stesso tipo di dati. Se desideri che questo valore predefinito sia una stringa vuota, usa Text("") come formula.

    Screenshot della configurazione per una variabile globale da impostare da un'origine esterna.

  10. Per tutti gli altri valori che si prevede provengano da un sistema esterno, aggiungi altri nodi Imposta valore variabile all'argomento dedicato e configura le variabili globali richieste nello stesso modo.

Così configurato, l'agente è pronto per il test. Quando l'agente viene richiamato, invece di attendere indefinitamente che tutte le variabili vengano popolate, l'agente può iniziare immediatamente a inviare tutti i messaggi che non dipendono dalle variabili passate. Quando l'agente tenta di accedere a una variabile impostata esternamente, viene sospeso fino all'arrivo del valore o al timeout. Scopri di più sull'ottimizzazione degli agenti per ridurre al minimo la latenza.

Importante

Durante il normale flusso di una conversazione, se l'agente imposta una variabile che altrimenti avrebbe un valore esterno, prevale il valore impostato dall'interno dell'agente. Qualsiasi valore passato nel contesto viene ignorato. Questa regola impedisce all'agente di sovrascrivere i valori impostati intenzionalmente negli argomenti.

Impostare le variabili globali in un agente integrato

Se stai integrando l'agente in una semplice pagina Web, puoi aggiungere variabili e le relative definizioni all'URL dell'agente. Oppure, se desideri un po' più di controllo, puoi utilizzare un blocco di codice <script> per chiamare e utilizzare variabili a livello di codice.

Il nome della variabile nella stringa di query dell'URL deve corrispondere a quello della variabile globale, senza il prefisso Global.. Ad esempio, una variabile globale Global.UserName sarebbe indicata come UserName nella query.

Gli esempi che seguono utilizzano una dichiarazione di base per le variabili. In uno scenario di produzione, puoi passare come parametro di query o definizione di variabile un'altra variabile che ha già memorizzato il nome dell'utente (ad esempio, se disponi del nome utente da uno script di accesso).

Aggiungi le variabili e le loro definizioni all'URL dell'agente come parametri della stringa di query (nel formato di botURL?variableName1=variableDefinition1&variableName2=variableDefinition2).

Ad esempio:

Il nome del parametro non fa distinzione tra maiuscole e minuscole. username=Ana funzionerebbe anche in questo esempio.

Aggiungere variabili globali a un canvas personalizzato

Puoi anche aggiungere la variabile a un canvas personalizzato.

  1. Nella sezione <script> della pagina in cui hai l'agente, definisci le variabili come segue, sostituendo variableName1 per il nome della variabile senza il prefisso Global. e variableDefinition1 per la definizione. Separa più variabili con le virgole (,).

       const store = WebChat.createStore({}, ({ dispatch }) => next => action => {
         if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
           dispatch({
              type: "WEB_CHAT/SEND_EVENT",
              payload: {
                name: "pvaSetContext",
                value: {
                   "variableName1": "variableDefinition1",
                   "variableName2": "variableDefinition2"
                }
              },
            });
          }
            return next(action);
        });
    
  2. Nella sezione <script>, chiama store quando integri l'agente, come nell'esempio seguente dove store viene chiamato appena prima della chiamata di styleOptions (devi sostituire BOT_ID con il tuo ID):

    const BOT_ID = "12345-5678";
    const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
    
    fetch(theURL)
        .then(response => response.json())
        .then(conversationInfo => {
            window.WebChat.renderWebChat(
                {
                    directLine: window.WebChat.createDirectLine({
                        token: conversationInfo.token,
                    }),
                    store,
                    styleOptions
                },
                document.getElementById('webchat')
            );
        })
        .catch(err => console.error("An error occurred: " + err));
    

A seconda della configurazione dell'autenticazione dell'agente, avrai a disposizione un set di variabili globali associate al provider di autenticazione selezionato. Per dettagli su quali set di variabili sono disponibili e su come utilizzarli, vedi l'argomento Aggiungere l'autenticazione dell'utente agli argomenti.