Altri task
Di seguito sono riportati alcuni argomenti relativi a vari altri task in Visual Flow Designer, tra cui l'autenticazione degli utenti, la numerazione automatica, i bundle di risorse, la creazione di form di input, la creazione di parametri personalizzati e l'importazione e l'esportazione dei flussi.
Autorizzazione utenti
In alcuni punti di un flusso, potrebbe essere necessario applicare l'autorizzazione utente.
A tale scopo, effettuare le operazioni riportate di seguito.
- Negli stati in cui si desidera applicare l'autorizzazione, impostare la proprietà Requires Authorization su
True
. Questa proprietà si trova nella scheda Generale della finestra di ispezione delle proprietà dello stato.Se un utente che raggiunge tale stato non ha ancora ottenuto l'autorizzazione, viene richiamata l'autorizzazione che utilizza lo stato OAuth e il flusso richiama lo stato che richiede l'autorizzazione.
- Creare un componente di autorizzazione e mapparlo all'evento di transizione standard Autorizza utente del flusso:
- Selezionare il flusso, quindi selezionare la scheda Flusso del flusso.
- Fare doppio clic sulla casella Eventi per espandere il flusso.
- Passare il puntatore del mouse sulla casella Autorizza utente, fare clic sul pulsante ellissi (...) visualizzato e selezionare Aggiungi stato.
- Nella categoria Sicurezza del selettore modello, selezionare un componente, fornire un nome per lo stato e fare clic su Inserisci.
Per informazioni dettagliate su ciascuno dei modelli disponibili, vedere Modelli di sicurezza.
- Nella finestra di ispezione delle proprietà del componente, configurare le proprietà del componente, comprese le relative azioni di transizione.
Numerazione automatica degli elementi di risposta
È possibile utilizzare la funzione di numerazione automatica per anteporre i pulsanti e le opzioni di elenco con numeri nelle risposte.
Quando gli utenti non possono utilizzare i gesti dei tocchi, possono comunque attivare le azioni di postback del pulsante immettendo un numero. Questa funzione è particolarmente utile per i canali di testo.
La numerazione automatica viene configurata a livello di skill.
Per configurare la numerazione automatica:
- Nella navigazione a sinistra dello skill, selezionare
.
- Selezionare la scheda Configurazione.
- Impostare il valore di Abilita numerazione automatica nelle azioni di postback nei flussi di task.
Se si desidera attivare la numerazione automatica per tutti i canali, impostare il valore su true.
Se si desidera attivare la numerazione automatica solo per determinati canali, fornire un'espressione per determinare quali canali riceveranno la numerazione automatica. Ad esempio, per attivare la numerazione automatica solo per i canali Twilio, immettere:
${(system.channelType=='twilio')?then('true','false')}
Limitazione del numero di prompt utente
È possibile garantire che gli utenti non rimangano bloccati in un passo di un flusso di finestre di dialogo configurando tale componente per limitare il numero di volte in cui ripete un prompt all'utente.
La proprietà maxPrompts
limita il numero di volte in cui i componenti di risposta comune possono richiedere all'utente quando non possono corrispondere al valore di input a uno qualsiasi dei valori definiti per l'entità o il tipo di input a cui fa riferimento la proprietà variable
. È possibile utilizzare questa proprietà per impedire che la finestra di dialogo venga visualizzata in cerchi quando gli utenti immettono ripetutamente valori non validi. È possibile impostare il numero massimo di prompt utilizzando un numero intero . La finestra di dialogo passa allo stato successivo se l'utente immette un valore valido prima di raggiungere questo limite. In caso contrario, la finestra di dialogo passa allo stato definito dall'azione cancel
.
Bundle di risorse e Visual Flow Designer
È possibile utilizzare i bundle delle risorse per memorizzare le stringhe visibili all'utente aggiunte al flusso della finestra di dialogo.
Per fare riferimento alle chiavi dei messaggi del bundle di risorse, utilizzare la variabile rb
. Un riferimento a un messaggio di bundle di risorse semplice assume una delle due forme seguenti:
${skill.system.rb.RB_ENTRY_NAME}
${rb.RB_ENTRY_NAME}
Suggerimento
Il completamento automatico consente di selezionare i bundle di risorse a cui si fa riferimento nelle espressioni FreeMarker di Apache.Modifica una voce bundle risorse
- Nella competenza, fare clic su
per aprire il bundle delle risorse.
- Selezionare la scheda Configurazione.
- Utilizzando il campo Filtro, passare alla voce che si desidera aggiornare.
- Spostare il mouse sul valore del tasto e selezionare l'icona
visualizzata.
- Nel campo Testo, immettere il messaggio aggiornato.
- Fare clic su Aggiorna voce.
Messaggi form input utente
Nei flussi di dialogo è inoltre possibile creare form di input.
A volte un modulo di input è il modo più rapido e meno soggetto a errori di raccolta delle informazioni utente. Anziché sottoporre gli utenti a una serie di domande, la competenza può guidare gli utenti a fornire input validi inviando loro moduli che contengono elementi di input come campi di input di testo, selettori di data e ora e switch di attivazione/disattivazione.
Descrizione della figura editable-form-example.png
- Nella finestra di dialogo Aggiungi stato, scegliere Messaggistica utente > Crea tabelle e moduli. Scegliere quindi Crea form di input.
- Per creare il layout, le azioni e i campi modificabili e di sola lettura del form, fare prima clic su
Edit Response Items
, quindi modificare il modello di metadatiResponseItems
. In questo caso, il modello si riferisce all'elemento di rispostaeditForm
.responseItems: - type: editForm title: Input Form formColumns: 2 items: - autoSubmit: false displayType: textInput defaultValue: "${(submittedFields.value.myText)!''}" multiLine: false minLength: 5 name: myText label: Text placeholder: Enter free text clientErrorMessage: Field is required and must be between 5 and 50 characters required: true maxLength: 50 - validationRegularExpression: "^[a-zA-Z\\s]*$" autoSubmit: false displayType: textInput defaultValue: "${(submittedFields.value.myTextArea)!''}" multiLine: true name: myTextArea label: Text Area placeholder: Enter free text clientErrorMessage: Numbers are not allowed - autoSubmit: false displayType: datePicker minDate: "1970-01-01" defaultValue: "${(submittedFields.value.myDate)!''}" name: myDate maxDate: "${.now?iso_utc[0..9]}" label: Date placeholder: Pick a date in the past clientErrorMessage: Date is required and must be in the past. required: true - autoSubmit: false maxTime: "12:00" displayType: timePicker minTime: "00:00" defaultValue: "${(submittedFields.value.myTime)!''}" name: myTime label: Time placeholder: Pick a time in the morning clientErrorMessage: Time must be in the morning. required: false - autoSubmit: false displayType: numberInput minValue: 5 maxValue: 500 defaultValue: "${(submittedFields.value.myNumber)!''}" name: myNumber label: Number placeholder: Enter a number between 5 and 500 clientErrorMessage: Number is required and must be between 5 and 500. required: true - autoSubmit: false displayType: singleSelect defaultValue: "${(submittedFields.value.mySingleSelect)!''}" name: mySingleSelect options: - label: Label 1 value: Value 1 - label: Label 2 value: Value 2 - label: Label 3 value: Value 3 layoutStyle: list label: Single Select clientErrorMessage: Field is required required: true - autoSubmit: false displayType: multiSelect defaultValue: "${(submittedFields.value.myMultiSelect?join(','))!''}" name: myMultiSelect options: - label: Label 1 value: Value 1 - label: Label 2 value: Value 2 - label: Label 3 value: Value 3 layoutStyle: list label: Multi Select clientErrorMessage: Field is required required: true - displayType: toggle defaultValue: "${(submittedFields.value.myToggle)!'true'}" name: myToggle labelOn: "Yes" label: Toggle valueOff: "false" labelOff: "No" valueOn: "true" actions: - label: Submit type: submitForm channelCustomProperties: - channel: "${system.channelType}" properties: replaceMessage: "${system.message.messagePayload.type == 'formSubmission'}"
Modello di metadati Modifica form
editForm
:
- Le proprietà fornite per gli oggetti
items
,actions
echannelCustomProperties
sono tutte specifiche degli oggettieditFormMessagePayload
. Tra le altre cose, questo payload contiene le descrizioni del layout complessivo del messaggio del modulo di input ricevuto dall'utente, dei campi del modulo (sia di sola lettura che modificabili) e delle personalizzazioni specifiche del canale per il rendering dell'interfaccia utente specifico della piattaforma e il comportamento di sottomissione del modulo. - Per ogni elemento e all'interno del nodo
actions
, il modello fa riferimento a una variabile a livello di flusso denominatasubmittedFields
che contiene l'input utente. Questa è una variabile di mappa generata quando si aggiunge uno stato inputForm al flusso della finestra di dialogo.Nota
A seconda delle esigenze, è possibile fare riferimento a singole variabili o a una variabile bag composta al posto della variabilesubmittedFields
. items
:- Sebbene il modello fornisca proprietà per i campi modificabili (campi a selezione singola e multipla, selettori di data e ora, campo di input numerico e interruttore di attivazione/disattivazione), è inoltre possibile aggiungere elementi per gli elementi di sola lettura di testo e collegamento.
- I campi modificabili condividono un insieme di proprietà comuni, inclusa la proprietà
autoSubmit
. Questa è una proprietà facoltativa, ma abilitandola (autoSubmit: true
) consente al modulo di inviare un valore di campo prima che l'utente abbia effettivamente inviato l'intero modulo. È possibile utilizzare questa proprietà per campi interdipendenti all'interno del modulo. Ad esempio, è possibile impostare questa proprietà quando la visualizzazione di un campo dipende da un valore immesso in un altro campo o quando un insieme di valori per un campo limita l'input consentito in un altro campo.Nota
Microsoft Teams non supportaautoSubmit
. - La proprietà facoltativa
clientErrorMessage
imposta il messaggio di errore specifico del campo che viene visualizzato quando la convalida lato client è limitata o quando la convalida lato client non riesce. Ad esempio, per i messaggi inviati tramite il canale Slack, questa proprietà è supportata solo quando il modulo si trova all'interno della pagina di conversazione. Non viene visualizzato quando il messaggio del modulo si trova in una finestra di dialogo modale.Nota
Questa proprietà è destinata principalmente alle schede adattive Microsoft Teams, che limita l'utilizzo di un singolo messaggio per tutti i diversi errori a livello di campo.
actions
: all'interno di questo nodo, il modello descrive le azioni di sottomissione modulo che sottomettono l'input utente tramiteFormSubmissionMessagePayload
.channelCustomProperties
: per supportare un'esperienza in più modalità, in cui l'utente potrebbe utilizzare combinazioni di testo e voce per compilare i campi del modulo prima di inviare il modulo, il modello include la configurazione della proprietàreplaceMessage
che indica al canale client di aggiornare il messaggio del modulo di input corrente anziché aggiungere un nuovo modulo di input alla conversazione.
Campi modulo di input
Elemento | Esempio | Codice di esempio: Variabile mappa (submittedFields) | Modificabile? |
---|---|---|---|
Elenco a selezione singola | Consente agli utenti di cercare e selezionare un elemento da un elenco predefinito. È possibile definire lo stile di questo componente come un elenco di opzioni per le quali gli utenti possono eseguire query e selezionare. |
|
Sì |
Lista a selezione multipla | Elenco che supporta più selezioni. È possibile applicare uno stile a questo componente come elenco di selezione da cui gli utenti possono filtrare e selezionare o come set di caselle di controllo. |
|
Sì |
Selettore ora | Consente all'utente di immettere un valore orario compreso in un intervallo specificato. Le proprietà maxTime e minTime del componente convalidano l'input utente. |
|
Sì |
Selettore data | Campo con un calendario a discesa che consente agli utenti di selezionare un giorno, un mese e un anno. Le proprietà maxDate e minDate del componente convalidano l'input utente. |
|
Sì |
Input numerico | Consente all'utente di immettere un valore numerico. Le proprietà minValue e maxValue convalidano l'input utente. |
|
Sì |
Input testo | Consente all'utente di immettere un valore di testo. |
|
Sì |
Attiva/disattiva | Presenta un interruttore di attivazione/disattivazione (o un raggruppamento di pulsanti di opzione, a seconda del canale) per due opzioni. |
|
Sì |
Text | Testo in linea di sola lettura |
|
No - Sola lettura |
Link | Un collegamento in linea |
|
No - Sola lettura |
Azione | Uno dei tipi di azione (collegamento, pulsante o icona). | Nello snippet seguente viene visualizzato un collegamento azione quando il valore della variabile selectedOrder viene inserito nello slot con il valore della riga item .
|
No - Sola lettura |
Parametri personalizzati
Nella competenza è possibile definire i parametri cliente a cui fare riferimento dai flussi di dialogo.
Dopo aver pubblicato lo skill, è possibile modificare i valori di questi parametri, anche se non è possibile modificare altri dettagli dei parametri o aggiungere o eliminare parametri.
I parametri personalizzati vengono esposti come variabili skill.system.config
da utilizzare nella definizione del flusso della finestra di dialogo. Ad esempio, è possibile accedere a un parametro personalizzato denominato faHostName
con la seguente espressione:
${skill.system.config.faHostName}
Se si desidera impostare il valore del parametro di uno skill nell'assistente digitale a cui si aggiunge lo skill, anteporre il nome del parametro all'indirizzo da.
(compreso il punto (.)). Ad esempio, è possibile utilizzare da.faHostName
come nome di un parametro per un nome host.
Utilizzando questo approccio, è possibile definire parametri con gli stessi nomi in più skill, aggiungere tutte queste skill a un assistente digitale e quindi impostare i valori per i parametri condivisi in un'unica posizione nell'assistente digitale.
Per accedere a un parametro da un componente personalizzato, definire un parametro di input nel componente personalizzato, quindi passare il valore del parametro skill.
Impossibile impostare i valori dei parametri personalizzati (o qualsiasi altra variabile con prefisso
skill.system.config
direttamente nel flusso della finestra di dialogo o nei componenti personalizzati).
Crea un parametro personalizzato
- Fare clic su
per aprire il menu laterale, selezionare Sviluppo > Skill e selezionare lo skill desiderato.
- Nella navigazione a sinistra dello skill, fare clic su
.
- Fare clic sulla scheda Configurazione.
- Fare clic su Nuovo parametro e compilare i campi della finestra di dialogo visualizzata.
Proteggi parametri
Se lo skill si basa su un parametro, il cui valore non si desidera sia visibile agli altri che stanno sviluppando lo skill o le versioni o clonano lo skill, è possibile designare tale parametro come parametro sicuro. Chiunque accede alla pagina Impostazioni dello skill può visualizzare il nome del parametro, ma non il valore.
Se si esporta lo skill, il valore del parametro non viene incluso nell'esportazione.
Per creare un parametro sicuro:
- Nella finestra di dialogo Crea parametro, selezionare Sicuro dall'elenco a discesa Tipo.
Modifica il valore di un parametro personalizzato in una competenza pubblicata
Dopo aver pubblicato uno skill, non è possibile aggiungere o eliminare parametri personalizzati, ma è possibile modificarne i valori. A questo scopo:
-
Fare clic su
per aprire il menu laterale, selezionare Sviluppo > Skill e selezionare lo skill desiderato.
-
Nella navigazione a sinistra dello skill, fare clic su
.
- Selezionare la scheda Configurazione.
-
Selezionare il parametro, fare clic su Modifica e immettere il valore aggiornato.
Se una competenza con un parametro preceduto da
da.
è stata aggiunta a un assistente digitale e si desidera aggiornare il valore utilizzato dall'assistente digitale, è necessario farlo nell'assistente digitale. In caso contrario, l'assistente digitale continuerà a utilizzare il valore che il parametro aveva al momento in cui è stato aggiunto all'assistente digitale. La modifica del valore dello skill interesserà lo skill solo se viene utilizzato in modo autonomo o se viene aggiunto in seguito a un altro assistente digitale.
Impostare il valore di un parametro in Digital Assistant
Dopo che uno skill è stato pubblicato ed è stato aggiunto a un assistente digitale, è possibile impostare il valore nell'assistente digitale per uno qualsiasi dei parametri dello skill con il prefisso da.
(incluso il periodo (.)).
Se un parametro "da.
" con lo stesso nome viene definito in più skill nell'assistente digitale, il valore di tale parametro viene condiviso tra gli skill nell'assistente digitale.
Per impostare il valore di un parametro in un assistente digitale:
- Fare clic su
per aprire il menu laterale, selezionare Sviluppo > Assistenti digitali e selezionare l'assistente digitale.
- Nella navigazione a sinistra dell'assistente digitale, fare clic su
.
- Selezionare uno degli skill che utilizza il parametro.
- Scorrere fino alla sezione Parametri della pagina e immettere un valore per il parametro.
Il valore del parametro aggiornato verrà applicato per tutti gli skill che utilizzano il parametro.
Flussi di importazione ed esportazione
È possibile importare ed esportare i flussi della finestra di dialogo in modalità visiva utilizzando le opzioni Flusso di importazione e Esporta flusso selezionato dal menu Altro.
Esporta flussi
-Flow
(ad esempio, PizzaSkill-pizza.ans.proc.veggiePizza-Flow.yaml
). La sintassi YAML è conforme alla modalità Visual Dialog, non alla OBotML scritta per le competenze create in modalità YAML. Quando si esporta un flusso, si esporta solo questo documento. Non sarà accompagnata da alcuna delle seguenti dipendenze, anche se vi si fa riferimento.
- Servizio di sicurezza a cui fanno riferimento gli stati dei componenti di sicurezza.
- Servizi per vari stati di integrazione dei servizi
- Servizi di traduzione
- Intenti, entità, bundle di risorse
- Flussi di task di riferimento
È possibile esportare qualsiasi flusso ad eccezione del flusso principale.
name: "WineryChats"
trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375"
type: "task"
version: "2.0"
interface:
returnActions:
- "done"
variables:
- name: "redWineCard"
type: "map"
system: false
defaultTransitions:
actions:
system.outOfOrderMessage: "outOfOrderMessageHandler"
system.startTaskFlow: "buildRedWineMenu"
states:
buildRedWineMenu:
component: "System.SetVariable"
properties:
variable: "redWineCard"
value:
Cabernet Sauvignon:
image: "https://cdn.pixabay.com/photo/2016/05/24/16/16/wine-1412603__340.jpg"
price: 35
description: "Flavor of dark fruits like black cherry and blackberry along with a warm spice, vanilla and black pepper"
title: "Cabernet Sauvignon"
...
Importa flussi
È possibile importare un flusso facendo clic su Altro > Importa flusso, quindi sfogliando e selezionando un documento YAML formattato per la modalità Visual Dialog. Questi flussi possono essere i documenti YAML generati quando si esporta un flusso di finestre di dialogo (quelli con nomi formattati come <skill name> - <flow name> -Flow.yaml
) o i file YAML che si trovano nella cartella dialogs
di un file ZIP esportato per uno skill creato utilizzando la modalità Visual Dialog. Impossibile importare direttamente un documento OBotML. Prima è necessario eseguire la migrazione dello skill.
- Impossibile importare un flusso principale (il file
System.MainFlow.yaml
che si trova nella cartelladialogs
di un file ZIP esportato per una competenza in modalità Visual Dialog). - Impossibile importare un flusso già esistente nello skill o nell'istanza. Se il flusso esiste già, è possibile caricare il documento YAML modificando il valore del nodo
name
.
È tuttavia possibile duplicare il flusso (Menu > Duplica flusso selezionato) anziché modificare YAML.name: "WineryChats" trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375" type: "task" ...

