Opzioni dinamiche
Una risposta opzioni presenta ai clienti un elenco di scelte da cui effettuare la scelta. È possibile utilizzare l'impostazione dinamica per generare l'elenco da opzioni che potrebbero essere diverse ogni volta.
Le opzioni dinamiche vengono generate in base ai dati memorizzati in una variabile, che deve essere disponibile per il passo che chiede la domanda. La variabile origine deve contenere un array di valori, ognuno dei quali rappresenta una delle
opzioni che verranno presentate al cliente. Gli elementi nell'array possono essere valori semplici come stringhe o numeri (ad esempio, [ "Raleigh", "Boston", "New York" ]) o oggetti JSON composti.
Uno scenario comune per le opzioni dinamiche è quando un array viene restituito da un'API esterna che richiami utilizzando un'estensione personalizzata. Ad esempio, è possibile utilizzare un'estensione personalizzata per recuperare un elenco di carte di credito associate all'account di un cliente. È quindi possibile utilizzare opzioni dinamiche per chiedere al cliente quale scheda utilizzare durante la conversazione. (Per ulteriori informazioni sulle estensioni personalizzate, consultare Richiamo di un'estensione personalizzata.)
Le azioni potrebbero anche popolare la variabile di origine utilizzando le espressioni. Ad esempio, è possibile utilizzare una variabile di sessione per creare un carrello degli acquisti contenente gli articoli che il cliente ha deciso di acquistare. Un'azione per rimuovere un articolo dal carrello potrebbe quindi utilizzare le opzioni dinamiche per mostrare gli articoli nel carrello in modo che il cliente possa selezionare quale rimuovere. (Per ulteriori informazioni sull'utilizzo delle espressioni per i valori delle variabili, vedere Utilizzo di un'espressione per assegnare un valore a una variabile di sessione.)
Definizione di opzioni dinamiche
Per definire una risposta cliente di opzioni dinamiche:
-
In un passo, fare clic su Definisci risposta cliente.
-
Scegliere il tipo di risposta Opzioni.
-
Fare clic sul pulsante Dinamico.
-
Nel campo Variabile di origine, scegliere la variabile che contiene l'array che definisce le opzioni dinamiche (ad esempio, la variabile che contiene la risposta da un'estensione personalizzata richiamata in un passo precedente).
-
Facoltativo: nel campo Opzione, scrivere un'espressione che associa gli elementi nell'array di origine alle opzioni che verranno elencate. Questa espressione funge da maschera che converte ogni elemento nell'array in un valore significativo che verrà visualizzato dal cliente. In questa espressione, utilizzare la variabile dinamica
${item}per rappresentare l'elemento.In alcune situazioni, non è necessario specificare un'espressione:
-
Se gli elementi nell'array sono valori semplici come stringhe o numeri interi, il valore di ciascun elemento viene automaticamente visualizzato come opzione. Tuttavia, è ancora possibile definire una mappatura se si desidera manipolare o riformattare gli elementi per renderli più significativi. Ad esempio, è possibile utilizzare l'espressione
"Part #" + ${item}per visualizzare i numeri parte utilizzando il formatoPart #12345. -
Se gli elementi nell'array sono oggetti JSON, l'associazione predefinita cerca una proprietà denominata
labele utilizza il suo valore (se presente) come opzione. Se l'elemento non include una proprietàlabeloppure non si desidera utilizzare il valore della proprietàlabelcome opzione, è necessario scrivere un'espressione per specificare un'associazione. È possibile utilizzare la notazione del punto per fare riferimento a una proprietà nell'oggetto utilizzando il suo percorso JSON (ad esempio,${item}.name).
-
-
Facoltativo: fare clic su Aggiungi opzione di fallback per includere una scelta statica, come
None of the above, se le opzioni non sono quelle richieste dal cliente. È quindi possibile aggiungere un passo condizionato su questa opzione statica per fornire ulteriore assistenza. Per aggiungere la condizione, scrivere un'espressione come ad esempio${step_id}.value == "None of the above".
Esempi di associazione
Si supponga di voler creare un'azione che mostri un elenco di animali domestici disponibili per l'adozione e che richieda al cliente di selezionare un animale domestico per visualizzare ulteriori informazioni. La variabile origine contiene un array da un'estensione personalizzata nel seguente formato:
[
{
"id": "123",
"name": "Casey",
"breed": "Shetland sheepdog",
"age": 3
},
{
"id": "987",
"name": "Phoebe",
"breed": "chihuahua",
"age": 7
}
]
Lo schema per gli elementi non include una proprietà label, quindi l'associazione predefinita non è disponibile. Invece, è possibile utilizzare un'espressione per creare un'etichetta complessa che includa i dati presi da diverse
proprietà. Ad esempio, è possibile utilizzare l'espressione ${item}.name + " (" + ${item}.breed + ", age " + ${item}.age + ")" per definire le etichette delle opzioni:

È possibile utilizzare metodi di espressione per manipolare i valori dalla variabile origine in vari modi. Ad esempio, potresti avere un'azione che i clienti utilizzano per selezionare una carta di credito per il pagamento, ma per motivi di
sicurezza non vuoi mostrare il numero dell'intera carta. È possibile scrivere un'espressione che utilizza il metodo substring() per includere solo le ultime quattro cifre di ciascun numero di scheda (ad esempio, "Card ending in " + ${item}.card_number.substring(16, 20)).
Riferimento all'elemento selezionato
Una volta che il cliente ha selezionato una delle opzioni generate dinamicamente, sarà probabilmente necessario fare riferimento all'item selezionato in un passo successivo.
Se si fa riferimento alla variabile di azione che rappresenta la risposta del cliente, per impostazione predefinita si utilizza il valore dell'opzione selezionata. Tuttavia, in alcune situazioni, è possibile che non si desideri utilizzare lo stesso valore utilizzato per visualizzare l'opzione al cliente. Invece, potrebbe essere necessario utilizzare un identificativo univoco o un'altra proprietà che identifichi in modo non ambiguo l'opzione selezionata.
Ad esempio, se il cliente seleziona un animale domestico per visualizzare ulteriori informazioni, è probabilmente necessario utilizzare un identificativo univoco (la proprietà id nel nostro esempio) per interrogare il database,
poiché il nome, l'età e la razza dell'animale potrebbero non essere univoci. Oppure, se il cliente sta selezionando una carta di credito tra le opzioni che mostrano solo le ultime quattro cifre, sarà necessario utilizzare il numero completo
della carta di credito per accedere ai dettagli del conto o completare una transazione.
In questa situazione, è possibile scrivere un'espressione per accedere alle proprietà originali dell'elemento selezionato:
-
Creare o modificare un passo che viene dopo il passo in cui il cliente seleziona dalle opzioni dinamiche.
-
Nella sezione Valori di variabile, scrivere un'espressione per assegnare un valore a una variabile di sessione. Per ulteriori informazioni, consultare Utilizzo di un'espressione per assegnare un valore a una variabile di sessione.
-
Nell'editor delle espressioni, immettere un simbolo di dollaro (
$) e selezionare il passo in cui il cliente ha scelto l'opzione dinamica. -
Utilizzare il nome proprietà
itemper rappresentare la voce selezionata e la notazione punto per accedere alle relative proprietà. Ad esempio, la seguente espressione accede alla proprietàiddella voce selezionata in una fase precedente:${step_331}.item.idÈ possibile utilizzare un'espressione complessa per creare un valore utilizzando più proprietà dell'elemento selezionato. Ad esempio, è possibile utilizzare un'espressione come
${step_123}.item.firstname + " " + ${step_123}.item.lastnameper creare il nome completo di una persona. Utilizzare l'espressione per definire il valore nel formato necessario per completare qualsiasi azione richiesta.