Modello di messaggio

Per utilizzare funzioni come la modalità headless e il delegato, è necessario comprendere sia i messaggi utente che quelli relativi alle competenze. Tutto ciò che viene ricevuto o inviato da Oracle Chat Server viene rappresentato come un messaggio, uno inviato dall'utente alla skill o dallo skill all'utente.

Questi sono i tipi di base utilizzati in tutti i messaggi inviati dall'utente allo skill e viceversa. Sono gli elementi costitutivi di tutti i messaggi.

Azione

Un'azione rappresenta qualcosa che l'utente può selezionare.
Nome descrizione; Digita Richiesto?
type Il tipo di azione stringa
label Testo dell'etichetta descrittiva per l'azione. stringa È necessario includere almeno una delle opzioni label o imageUrl.
imageUrl L'immagine per l'azione stringa È necessario includere almeno una singola proprietà label o imageUrl.
style Lo stile di rendering del pulsante "primary", "danger", "default" No
displayType Il rendering per il tipo di elemento azione (pulsante, collegamento o icona) "button", "link", "icon" No
channelExtensions Le proprietà di estensione specifiche del canale associate all'azione JSONObject No

PostbackAction

Invia un postback predefinito allo skill quando l'utente seleziona un'azione.
Nome descrizione; Digita Richiesto?
type Il tipo di azione "postback"
postback Postback restituito quando l'utente seleziona un'azione. Oggetto stringa o JSON
Ad esempio:
{
    "type": "postback",
    "label": "Large Pizza",
    "imageUrl": "https://example.com/images/gallery/locations/11.jpg",
    "postback": {
        "state": "askSize",
        "action": "getCrust"
    }
}

CallAction

Richiede al cliente di chiamare un numero di telefono specificato per conto dell'utente.
Nome descrizione; Digita Richiesto?
type Il tipo di azione "call"
phoneNumber Il numero di telefono da chiamare stringa
Ad esempio:
{
    "type": "call",
    "label": "Call Support",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "phoneNumber": "18005555555"
}

urlAction

Richiede al cliente di aprire un sito web in una nuova scheda o in un browser in-app.

Nome descrizione; Digita Richiesto?
type Il tipo di azione "call"
url L'URL del sito Web visualizzato. stringa

ShareAction

Richiede al client di aprire una finestra di dialogo di condivisione per l'utente.
Nome descrizione; Digita Richiesto?
type Il tipo di azione "share"

LocationAction

Richiede al cliente di richiedere la posizione dell'utente.
Nome descrizione; Digita Richiesto?
type Il tipo di azione "posizione"
Ad esempio:
{
    "type": "location",
    "label": "Share location",
    "imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}

PopupAction

Questa azione apre una finestra popup dopo che gli utenti eseguono un'azione di clic su un elemento. PopupAction utilizza le proprietà Action insieme alle proprie:
Nome descrizione; Digita Richiesto?
type Il tipo di azione "popup"
popupContent Il contenuto visualizzato nella finestra popup. Payload del messaggio (fare riferimento all'esempio JSON seguente)
{
    "type": "popup",
    "label": "Give Feedback",
    "popupContent": {
        "formRows": [
            {
                "columns": [
                    {
                        "width": "stretch",
                        "fields": [
                            {
                                "displayType": "text",
                                "label": "What was the issue with this response?"
                            },
                            {
                                "displayType": "multiSelect",
                                "options": [
                                    {
                                        "label": "Inaccurate",
                                        "value": "inaccurate"
                                    },
                                    {
                                        "label": "Inappropriate",
                                        "value": "inappropriate"
                                    }
                                ],
                                "id": "system_feedback_reasons",
                                "required": true
                            },
                            {
                                "displayType": "textInput",
                                "id": "system_feedback_comments",
                                "placeholder": "Additional feedback"
                            }
                        ]
                    }
                ]
            },
            {
                "columns": [
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "action": "cancel",
                                    },
                                    "label": "Cancel",
                                    "type": "postback"
                                },
                            }
                        ]
                    },
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "system.state": "invokeLLM"
                                    },
                                    "label": "Submit Feedback",
                                    "type": "submitForm"
                                },
                            }
                        ]
                    }
                ]
            }
        ],
        "type": "editForm",
        "title": "Give your feedback",
        "formColumns": 1,
    }
}

SubmitFormAction

Questa azione viene utilizzata per sottomettere un form di input allo skill quando soddisfa la convalida lato client. Aggiunge le seguenti proprietà alle proprietà Azione:
Nome descrizione; Digita Richiesto?
type Il tipo di azione "submitForm"
postback Il payload di postback, che potrebbe includere una proprietà di azione per attivare la navigazione. Il valore di questa proprietà deve essere impostato in FormSubmissionMessagePayload. JSONObject No
JSON di esempio
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

Collegamento

Rappresenta un allegato inviato dall'utente.
Nome descrizione; Digita Richiesto?
title Titolo dell'allegato stringa No
type Tipo di allegato stringa (valori validi: audio, file, immagine, video)
url URL di download per l'allegato stringa
Ad esempio:
{
    "title": "Oracle Open World Promotion",
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}

Cardinalità

Rappresenta una singola scheda nel payload dei messaggi.
Nome descrizione; Digita Richiesto?
title Il titolo della carta, visualizzato come prima riga sulla carta. stringa
description La descrizione della scheda stringa No
imageUrl L'URL dell'immagine visualizzata. stringa No
URL L'URL del sito Web aperto con un tocco. stringa No
actions Array di azioni correlate al testo array No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Posizione

Rappresenta un oggetto posizione.
Nome descrizione; Digita Richiesto?
title Il titolo della posizione stringa No
url URL per la visualizzazione della posizione su una mappa stringa No
latitude Valore longitudine della coordinata GPS doppio
longitude Valore di latitudine della coordinata GPS doppio
Ad esempio:
{
    "title": "Oracle Headquarters",
    "url": "https://www.google.com.au/maps/place/37°31'47.3%22N+122°15'57.6%22W",
    "longitude": -122.265987,
    "latitude": 37.529818
}

PaginationInfo

Rappresenta le informazioni di paging per i risultati negli oggetti Table, Form e Table-Form.

Nome descrizione; Digita Richiesto?
totalCount Il conteggio totale dei risultati numerica
rangeSize La dimensione dell'intervallo dei risultati per pagina numerica
status Messaggio di stato paging Stringa
currentRangeSize Dimensione della gamma di risultati corrente numerica
rangeStart Offset iniziale dell'intervallo corrente di risultati numerica
nextRangeSize La dimensione del successivo intervallo di risultati numerica
hasPrevious Indica se esiste un set di risultati precedente boolean
hasNext Indica se esiste una serie successiva di risultati boolean

FormRow

Nome descrizione; Digita Richiesto?
id L'ID della riga del form Stringa No
columns Elenco di colonne visualizzate nella riga del form. <Colonna> array
selectAction Le azioni eseguite quando il modulo è stato selezionato. Quando gli utenti passano il mouse sul form, l'etichetta dell'azione viene visualizzata come suggerimento (se supportata dal canale). Azione No
separator Se si imposta questa proprietà su true, viene inserita una riga di separazione sopra il contenuto nella riga del form. Boolean No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Colonna

Nome descrizione; Digita Richiesto?
id ID della colonna Stringa No
fields Elenco di campi visualizzati verticalmente all'interno della colonna. Questi campi devono essere istanze ReadOnlyField quando la colonna viene utilizzata in un FormRow all'interno di un Form. I campi possono essere sia di sola lettura che modificabili quando si utilizza FormRow all'interno di un EditFormMessagePayload. Array<campo>
verticalAlignment L'allineamento verticale della colonna rispetto alle altre colonne nella stessa riga del modulo. Stringa No
width Determina la larghezza della colonna all'interno della riga del form. I valori consentiti sono auto (impostazione predefinita) e stretch. Quando è impostata su stretch, la colonna assume tutta la larghezza rimanente dopo la visualizzazione delle colonne con larghezza automatica. Se sono presenti più colonne impostate su stretch, dividono in modo uniforme la larghezza rimanente. Stringa No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Modulo

Rappresenta un array di campi insieme a un titolo. Utilizzato nei messaggi Table-Form per i form nidificati di una riga di tabella.
Nome descrizione; Digita Richiesto?
id L'ID del form Stringa No
title Il titolo del modulo Stringa No
fields Una serie di campi <Campo> array
actions Una serie di azioni Array <BotsAction> No
formRows Elenco di righe che possono includere campi modificabili e di sola lettura. È possibile definire la lista dei campi (utilizzando fields e facoltativamente le proprietà formColumns) oppure una lista di righe utilizzando questa proprietà. I valori fields e formRows sono in modalità di esclusione reciproca. Azione No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Riga

Rappresenta un array di campi.
Nome descrizione; Digita Richiesto?
fields Una serie di campi <Campo>
selectAction Azione eseguita quando viene selezionata la riga. L'etichetta dell'azione viene visualizzata come descrizione comandi quando gli utenti passano il mouse sopra la riga. Azione No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Intestazione

Rappresenta un'intestazione per le tabelle in un oggetto Table o Table-Form.
Nome descrizione; Digita Richiesto?
label L'etichetta dell'intestazione Stringa
alignment Il posizionamento dell'etichetta all'interno della cella "left", "right", "center"
width Percentuale consigliata della larghezza della tabella da fornire all'intestazione.   No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Campo

Rappresenta le informazioni atomiche di una cella di tabella o di un campo modulo all'interno degli oggetti Table, Form e Table-Form, forniti come coppia chiave-valore.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo Stringa
label La chiave del campo Stringa
marginTop Quantità di spazio verticale tra questo campo e il campo precedente all'interno della stessa colonna "none", "medium","large" No
labelFontSize La dimensione del carattere utilizzata per l'etichetta del campo "small", "medium", "large" No
labelFontWeight Il posizionamento dell'etichetta all'interno della sua cella "light", "medium", "bold" No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

selectFieldOption

I campi Selezione singola e Selezione multipla utilizzano una lista di opzioni di campo di selezione con le seguenti proprietà:
Nome descrizione; Digita Richiesto?
label Testo visualizzato stringa
value Valore per l'opzione Tipi di dati primitivi (stringa, numero, booleano e così via) No
channelExtensions Le proprietà di estensione specifiche del canale associate all'opzione di campo. JSONObject No

Campo Sola lettura

Rappresenta un campo di sola lettura. Tutti i campi di sola lettura ereditano le proprietà dei campi e dispongono delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
value Il valore del campo stringa
width Percentuale consigliata della larghezza totale disponibile che il campo deve occupare in un layout di tabella. numerica No
alignment L'allineamento del valore all'interno di una colonna di tabella. L'allineamento predefinito è right. "left", "center" e "right" No
onHoverPopupContent Il contenuto visualizzato quando gli utenti passano il mouse su un campo. Payload messaggi No

Campo Testo

Il campo di testo eredita tutte le proprietà del campo di sola lettura.
Nome descrizione; Digita Richiesto?
displayType Tipo di elemento. text (un valore di stringa)
truncateAt La posizione in cui il testo lungo viene troncato e in cui viene visualizzato un segno di ellissi (che indica che il valore è stato troncato). Numerico No
fontSize La dimensione carattere utilizzata per il valore del campo "small", "medium", "large" No
fontWeight Spessore carattere utilizzato per il valore del campo "light", "medium", "bold" No
.

Collega campo

Il campo Collegamento eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "link"
linkLabel Etichetta utilizzata per il collegamento ipertestuale stringa No
imageUrl L'URL dell'immagine che apre un collegamento quando viene fatto clic. stringa No

Campo supporti

Il campo del supporto eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "supporti"
mediaType Il tipo di supporto del campo "video", "audio", "image"

Campo Azione

Il campo azione eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "action"
action Azione da eseguire quando l'utente fa clic sul pulsante di azione. Azione

Campo modificabile

Rappresenta un campo modificabile. Tutti i campi modificabili ereditano le proprietà dei campi e dispongono delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
id ID campo stringa
placeholder Descrizione dell'input previsto dall'utente. Questo testo viene visualizzato quando l'utente non ha ancora effettuato una selezione o immesso un valore. stringa No
required Indica se questo input è necessario per sottomettere il form boolean No
clientErrorMessage Messaggio di errore a livello di campo visualizzato sotto il campo quando si verifica un errore di convalida lato client. Se non viene fornito, l'SDK viene impostato automaticamente su editFieldErrorMessage. stringa No
serverErrorMessage Messaggio di errore a livello di campo visualizzato sotto il campo quando si verifica un errore di convalida lato server. Questo messaggio di errore deve essere incluso nel payload inviato dallo skill. stringa No
autoSubmit Se l'opzione è impostata su true, il modulo viene sottomesso automaticamente quando l'utente ha immesso un valore nel campo.   No

Selezione singola

Il campo a selezione singola eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "singleSelect"
defaultValue L'impostazione predefinita Tipi di dati primitivi (stringa, numero, booleano e così via) No
options Array di opzioni presentato all'utente. Un array selectFieldOption
layoutStyle Stile di layout utilizzato per eseguire il rendering delle opzioni di selezione singola. Il layout predefinito è list. "list", "radioGroup" No
layoutDirection La direzione del layout (orizzontale o verticale) per i pulsanti di opzione quando layoutStyle è impostato su radioGroup. Per impostazione predefinita, la direzione del layout è impostata su vertical,, ma è possibile impostarla su horizontal. Stringa No

Selezione multipla

Il campo a selezione multipla eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "multiSelect"
defaultValue L'impostazione predefinita Array<object> di tipi di dati primitivi (stringa, numero, booleano e così via) No
options Una serie di opzioni presentate all'utente Un array selectFieldOption
layoutStyle Lo stile di layout utilizzato per eseguire il rendering delle opzioni. "list", "checkboxes" No
layoutDirection La direzione del layout (orizzontale o verticale) per le caselle di controllo quando layoutStyle è impostato su checkboxes. Per impostazione predefinita, la direzione del layout è impostata su vertical, ma è anche possibile impostarla su horizontal. Stringa No

DatePicker

Il campo selettore data eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "datePicker"
defaultValue Il valore iniziale per questo campo. Il formato deve essere YYYY-MM-DD. stringa No
minDate La data minima o meno recente consentita. Il formato deve essere YYYY-MM-DD. stringa No
maxDate Data massima o più recente consentita. Il formato deve essere YYYY-MM-DD. stringa No

TimePicker

Il campo selettore ora eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "timePicker"
defaultValue Il valore iniziale per questo campo, immesso come HH:mm nel formato a 24 ore. stringa No
minTime Ora minima o meno recente consentita immessa come HH:mm nel formato 24 ore. ad esempio 00:00. stringa No
maxTime Ora massima o più recente consentita immessa come HH:mm nel formato 24 ore. ad esempio 13:00. stringa No

Cambia

Il campo di attivazione/disattivazione eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "toggle"
defaultValue Il valore selezionato iniziale. Se si desidera che l'attivazione sia inizialmente attiva, impostare il valore predefinito sullo stesso valore di valueOn. stringa No
valueOff Il valore di attivazione/disattivazione è disattivato stringa
valueOn Il valore di attivazione/disattivazione è attivo stringa
labelOff L'etichetta per il valore "off" stringa No
labelOn L'etichetta per il valore "on" stringa No

TextInput

Il campo di input di testo eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "textInput"
defaultValue Il valore iniziale per questo campo stringa no
validationRegularExpression Espressione regolare che indica il formato richiesto per questo input di testo stringa no
multiline Flag che determina se visualizzare più righe di input boolean no
minLength La lunghezza minima dell'input che l'utente deve fornire Intero no
maxLength Numero massimo di caratteri consentiti nel campo di input di testo Intero no
inputStyle Lo stile di input utilizzato dal client. I valori consentiti sono: "text", "tel", "url","email", e "password". stringa no

NumberInput

Il campo di input numerico eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
Nome descrizione; Digita Richiesto?
displayType Il tipo di campo "numberInput"
defaultValue Il valore iniziale per questo campo Valore intero No
minValue Il più piccolo numero consentito Valore intero No
maxValue Il numero più grande consentito. Valore intero No

EventContextProperties

Le proprietà del contesto evento rappresentano le proprietà del contesto CloudEvent.
Nome descrizione; Digita Richiesto? Esempio
dataschema Identifica lo schema a cui aderiscono i dati. URI No "/dw/approval_payload.json"
datacontenttype Il tipo di contenuto dei dati contenuti nell'attributo dati. Stringa No "application/json"
source La risorsa che ha prodotto l'evento. URI No "objectstorage"
time L'ora dell'evento espressa nel formato dell'indicatore orario RFC 3339. Indicatore orario No "2021-01-10T21:19:24Z"
specversion La versione della specifica CloudEvents. Stringa No "1.0"
id L'ID della specifica CloudEvents. Stringa No "123e4567-e89b-12d3-a456-426614174000"
subject Oggetto dell'evento nel contesto del produttore e/o del tipo di evento. Stringa No "mynewfile.jpg"

Messaggio della conversazione

Tutti i messaggi che fanno parte di una conversazione hanno la seguente struttura:
Nome descrizione; Digita Richiesto?
messagePayload Il payload del messaggio Messaggio
userId L'ID utente stringa
Ad esempio:
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

Messaggio

Il messaggio è un tipo di base astratto per tutti gli altri messaggi. Tutti i messaggi lo estendono per fornire alcune informazioni.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio stringa

Messaggio utente

Rappresenta un messaggio inviato dall'utente allo skill.

Messaggio di testo utente

Il semplice messaggio di testo inviato al server.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "text"
text Il testo del messaggio stringa
Ad esempio:
{
    "messagePayload": {
        "text": "Order Pizza",
        "type": "text"
    },
    "userId": "guest"
}

Messaggio postback utente

Messaggio di risposta postback inviato al server.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "postback"
text Il testo del postback stringa No
postback Il postback dell'azione selezionata Una stringa o JSONObject
Ad esempio:
{
    "messagePayload": {
        "postback": {
            "variables": {
                "pizza": "Small"
            },
            "system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
            "system.state": "orderPizza"
        },
        "text": "Small",
        "type": "postback"
    },
    "userId": "guest"
}

Messaggio utente inboundEvent

Rappresenta i messaggi di evento in uscita che possono essere inviati al server. Applica le seguenti proprietà a Message.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "inboundEvent"
eventType Tipo di evento (definito nel catalogo eventi) Stringa
eventVersion Versione del tipo di evento (definita nel catalogo eventi) Stringa
eventData I dati di business JSONObject
contextProperties Le proprietà del contesto dell'evento Proprietà contesto evento No
Ad esempio:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.orderserved",
        "type": "inboundEvent",
        "contextProperties": {
            "id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
            "source": "pizza/service",
        }
    },
    "userId": "guest"
}

Messaggio di sottomissione modulo utente

Rappresenta il messaggio di sottomissione del modulo inviato dopo che l'utente ha sottomesso un modulo da un SubmitFormAction. Contiene le proprietà riportate di seguito.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio. "formSubmission"
submittedFields Coppie chiave-valore dei valori di campo sottomessi. La chiave è il nome (ID) del campo. JSONObject
postback Il payload di postback, che potrebbe includere una proprietà azione per attivare la navigazione. Il valore di questa proprietà deve essere preso da SubmitFormAction. JSONObject No
partialSubmitField ID del campo che attiva l'invio parziale del modulo. I campi con la proprietà autoSumbit impostata su true possono attivare l'invio parziale del modulo. Stringa No
JSON di esempio
{
    "messagePayload": {
        "submittedFields": {
            "Attendees": [
                "Toff van Alphen"
            ],
            "Type": "Public transport",
            "Description": "expense",
            "Subject": "Expense",
            "Date": "2023-06-07",
            "Time": "18:58",
            "Amount": 6,
            "TipIncluded": "true"
        },
        "partialSubmitField": "Attendees",
        "type": "formSubmission"
    },
    "userId": "guest"
}

Messaggio allegato utente

Il messaggio di risposta allegato inviato al server.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "attachment"
attachment I metadati dell'allegato Collegamento
Ad esempio:
{
    "messagePayload": {
        "attachment": {
            "type": "image",
            "url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
        },
        "type": "attachment"
    },
    "userId": "guest"
}

Messaggio ubicazione utente

Il messaggio di risposta della posizione inviato al server.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "location"
location Informazioni posizione utente Posizione
Ad esempio:
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

Messaggio abilità

Rappresenta il messaggio inviato dallo skill all'utente.

Nome descrizione; Digita Richiesto?
type Il tipo di messaggio stringa
headerText Testo dell'intestazione visualizzato sopra il testo del messaggio. stringa No
footerText Il testo del piè di pagina visualizzato sotto il testo e le azioni del messaggio, ma prima delle azioni globali. stringa No
actions Un elenco di azioni correlate al messaggio Array<Action> No
footerForm Layout di modulo che viene visualizzato sotto il testo del piè di pagina del messaggio e sopra le relative azioni globali. Messaggio form competenze No
globalActions Elenco di azioni globali correlate al testo Array<Action> No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Messaggio di testo bot

Rappresenta un messaggio di testo. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "text"
text Il testo del messaggio stringa
Ad esempio:
{
    "messagePayload": {
        "type": "text",
        "text": "What do you want to do?",
        "actions": [
            {
                "type": "postback",
                "label": "Order Pizza",
                "postback": {
                    "state": "askAction",
                    "action": "orderPizza"
                }
            },
            {
                "type": "postback",
                "label": "Cancel A Previous Order",
                "postback": {
                    "state": "askAction",
                    "action": "cancelOrder"
                }
            }
        ]
    },
    "userId": "guest"
}

Messaggio ubicazione skill

Rappresenta un messaggio di posizione. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "location"
location La posizione Posizione

Messaggio allegato skill

Rappresenta un messaggio allegato. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "attachment"
attachment L'allegato inviato Collegamento
Nota

I caricamenti di file dal sito host potrebbero non riuscire e restituire un errore della console simile al seguente:
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
Questo perché le impostazioni CORS (Cross-Origin Resource Sharing) del sito host, che bloccano tutte le richieste HTTP cross-origin, possono anche bloccare le richieste di caricamento dall'istanza client al server di collegamento di Oracle Digital Assistant. Se si verifica questo problema, aggiornare i criteri di sicurezza del sito host per consentire il dominio per l'istanza di Digital Assistant. Poiché la conversazione utilizza connessioni WebSocket, CORS non influisce sulla conversazione.

Passaggio dei nomi file

Utilizzare le intestazioni riportate di seguito per recuperare il nome di un file (inclusi i file video, audio o immagine) caricato nel file server ODA.
  • x-oda-meta-file-name
  • x-oda-meta-file-type
È possibile restituire queste intestazioni con richieste GET o HEAD. Utilizzare HEAD se un componente personalizzato non richiede il contenuto del file.

Messaggi feedback

Rappresenta un componente di valutazione del feedback, che acquisisce il feedback di un utente utilizzando un indicatore di valutazione (in genere un sistema di valutazione a stelle). Il payload è simile a un messaggio di testo, ma dispone di un campo oggetto channelExtensions aggiuntivo impostato su { "displayType": "stars" }. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "text"
text Il testo del messaggio stringa
channelExtensions Oggetto che descrive le estensioni del payload. { “displayType”: “stars” }
Ad esempio:
{
    "messagePayload":{
        "text":"How would you like to rate us?",
        "type":"text",
        "actions":[
            {
                "postback":{
                    "variables":{
                        "rating":"1"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"1",
                    "system.state":"giveFeedback"
                },
                "label":"1",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"2"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"2",
                    "system.state":"giveFeedback"
                },
                "label":"2",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"3"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"3",
                    "system.state":"giveFeedback"
                },
                "label":"3",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"4"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"4",
                    "system.state":"giveFeedback"
                },
                "label":"4",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"5"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"5",
                    "system.state":"giveFeedback"
                },
                "label":"5",
                "type":"postback"
            }
        ],
        "channelExtensions":{
            "displayType":"stars"
        }
    },
    "source":"BOT",
    "userId":"<userID>"
}

Messaggio scheda competenze

Rappresenta un insieme di scelte visualizzate per l'utente, orizzontalmente come caroselli o verticalmente come elenchi. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "card"
layout Indica se visualizzare i messaggi in senso orizzontale o verticale. stringa (valori: horizontal, vertical)
cards Array di schede da visualizzare. array

Carta

Rappresenta una singola scheda nel payload dei messaggi.
Nome descrizione; Digita Richiesto?
title Il titolo della carta, visualizzato come prima riga sulla carta. stringa
description La descrizione della scheda stringa No
imageUrl L'URL dell'immagine visualizzata. stringa No
url L'URL del sito Web aperto con un tocco. stringa No
actions Array di azioni correlate al testo array No
Esempio:
{
    "messagePayload": {
        "type": "card",
        "layout": "horiztonal",
        "cards": [
            {
                "title": "Hawaiian Pizza",
                "description": "Ham and pineapple on thin crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            },
            {
                "title": "Cheese Pizza",
                "description": "Cheese pizza (i.e. pizza with NO toppings) on thick crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            }
        ],
        "globalActions": [
            {
                "type": "call",
                "label": "Call for Help",
                "phoneNumber": "123456789"
            }
        ]
    },
    "userId": "guest"
}

Messaggio postback skill

Rappresenta un postback. Applica le seguenti proprietà al messaggio skill.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "postback"
text Il testo del messaggio stringa No
postback Il postback Una stringa o un JSONObject

Messaggio form competenze

Rappresenta un messaggio che restituisce i risultati di una query in un modulo di sola lettura. Il messaggio è costituito da un array di risultati del modulo. Ogni risultato del modulo contiene un array fields con coppie chiave-valore che rappresentano un campo. Applica le seguenti proprietà al messaggio skill.
Nota

Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "form"
forms Array di risultati del modulo. Ogni risultato contiene un array fields che rappresenta i campi del modulo. Array<Riga>
formColumns Il numero di colonne in cui devono essere raggruppati i campi del modulo. 1 2
paginationInfo Informazioni di paging per i risultati nel form PaginationInfo No
{
    "type":"form",
    "headerText":"A-Team",
    "forms":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/aaron-adams-4862752"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "globalActions":[
        {
            "postback":{
                "variables":{},
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ]
}

Messaggio tabella skill

Rappresenta un messaggio che restituisce i risultati di una query in formato tabella Il messaggio è costituito da un array di intestazioni e da un array di righe. Le righe stesse contengono un array fields che rappresenta le singole celle. Applica le seguenti proprietà al messaggio skill.
Nota

Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "table"
headings Una serie di intestazioni di tabella Array<Intestazione>
tableTitle Il titolo della tabella stringa No
rows Array di righe di tabella. Ogni riga contiene un array fields che rappresenta le celle della tabella. Array<Riga>
paginationInfo Informazioni di paging per i risultati nella tabella PaginationInfo No
{
    "type":"table",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":20,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":20,
            "label":"Last Name",
            "alignment":"left"
        },
        {
            "width":35,
            "label":"Title",
            "alignment":"left"
        },
        {
            "width":25,
            "label":"Phone",
            "alignment":"right"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"David"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Davidson"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Machine Learning Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Eric"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Eastman Junior"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Docker Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        }
    ],
    "paginationInfo":{
        "currentRangeSize":5,
        "rangeStart":0,
        "nextRangeSize":-3,
        "hasPrevious":false,
        "hasNext":false,
        "totalCount":5,
        "rangeSize":8,
        "status":"Showing 1-5 of 5 items"
    }
}

Messaggio modulo tabella skill

Questo messaggio combina i tipi di messaggio Table e Form. Rappresenta un messaggio che restituisce i risultati di una query sotto forma di tabella. Ogni riga della tabella dispone di un form di sola lettura oltre alle informazioni sulla riga. Applica le seguenti proprietà al messaggio skill.
Nota

Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "tableForm"
tableTitle Il titolo della tabella stringa No
headings Una serie di intestazioni di tabella Array<Intestazione>
rows Array di righe di tabella. Ogni riga contiene un array di campi che rappresentano le celle della tabella. Array<Riga>
forms Array di risultati del modulo che corrispondono a ogni riga della tabella. Ogni modulo contiene un array fields che rappresenta i campi del modulo. Array<Form>
formColumns Il numero di colonne in cui devono essere raggruppati i campi del modulo. 1 2
paginationInfo Array di azioni globali correlate al testo Array<Action> No
{
    "type":"tableForm",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":47,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":47,
            "label":"Last Name",
            "alignment":"left"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                }
            ]
        }
    ],
    "forms":[
        {
            "title":"View details Aaron Adams",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Aaron-adams-4862572"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "title":"View details Bob Brown",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "title":"View details Charlie Chase",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder Fanatic"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "actions":[
        {
            "postback":{
                "variables":{

                },
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ],
    "footerText":"Tap on a row to see personal details"
}

Messaggio evento competenza in uscita

Rappresenta i messaggi di evento in uscita che possono essere inviati dal server. Applica le seguenti proprietà a Message.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "outboundEvent"
eventType Tipo di evento (definito nel catalogo eventi) Stringa
eventVersion Versione del tipo di evento (definita nel catalogo eventi) Stringa
eventData I dati di business JSONObject
contextProperties Le proprietà del contesto dell'evento Proprietà contesto evento No
Ad esempio:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.ordercreated",
        "type": "outboundEvent",
        "contextProperties": {
            "tenancy": "odaserviceinstance00",
            "specversion": "1.0",
            "id": "7a923f09-bff7-4369-8467-0c510e971aaf",
            "source": "hello/app",
            "time": 1659357000,
            "type": "com.pizzastore.pizza.ordercreated",
            "channelname": "System_Global_Test",
            "version": "1.0",
            "userid": "3910088",
            "contenttype": "application/json"
        }
    }
}

Messaggio modulo modifica abilità

Rappresenta un messaggio di modulo modificabile (modulo di input). Il messaggio è costituito da un array Campo.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio. In questo caso, è "editForm". "editForm"
title Un titolo di rappresentante per il modulo di modifica Stringa No
fields Elenco di campi che possono includere campi modificabili e di sola lettura. Array<Field>
formColumns Il numero di colonne in cui devono essere raggruppati i campi modulo. La proprietà è applicabile solo quando si imposta anche la proprietà field. Valore intero No
formRows Elenco di righe che possono includere campi modificabili e di sola lettura. È necessario impostare la proprietà fields e formRows è obbligatorio. I due tipi di differenze sono ad esclusione reciproca. Array<FormRow>  
errorMessage Messaggio di errore a livello di modulo che viene visualizzato quando l'utente ha sottomesso dati non validi ma l'errore non può essere collegato a un singolo campo. Stringa N
actions Array di azioni correlate al form di modifica. Questo array include un valore SubmitFormAction. Viene visualizzato un errore nella console del browser quando SubmitFormAction non è incluso nell'array actions. Array<Action> N
globalActions Una serie di azioni globali Array<Action> N
channelExtensions Un set di proprietà di estensione specifiche del canale

L'oggetto channelExtensions può includere una proprietà replaceMessage utilizzata per sostituire un form di input precedente.

JSONObject N
{
    "messagePayload": {
        "headerText": "Create Expense",
        "type": "editForm",
        "title": "Fill in the below form",
        "fields": [
            {
                "displayType": "textInput",
                "serverErrorMessage": "Invalid Text Input",
                "defaultValue": "Expense",
                "minLength": 5,
                "id": "Subject",
                "label": "Subject",
                "placeholder": "Enter subject of the expense",
                "clientErrorMessage": "Subject is required and must be between 5 and 15 characters",
                "maxLength": 15,
                "required": true
            },
            {
                "displayType": "textInput",
                "defaultValue": "expense",
                "multiLine": true,
                "id": "Description",
                "label": "Description",
                "placeholder": "What is expense justification",
                "clientErrorMessage": "Description is required",
                "required": true
            },
            {
                "displayType": "datePicker",
                "defaultValue": "2023-06-07",
                "maxDate": "2023-06-22",
                "id": "Date",
                "label": "Expense Date",
                "placeholder": "Pick a date in the past",
                "clientErrorMessage": "Expense date is required and must be in the past.",
                "required": true
            },
            {
                "displayType": "timePicker",
                "defaultValue": "18:58",
                "id": "Time",
                "label": "Expense Time",
                "placeholder": "What time was the expense",
                "clientErrorMessage": "Time is required. Please fill a value",
                "required": true
            },
            {
                "displayType": "numberInput",
                "minValue": 5,
                "defaultValue": 6,
                "maxValue": 500,
                "id": "Amount",
                "label": "Amount",
                "placeholder": "Enter expense amount",
                "clientErrorMessage": "Amount is required and must be between 5 and 500.",
                "required": true
            },
            {
                "autoSubmit": true,
                "displayType": "toggle",
                "defaultValue": "true",
                "labelOn": "Yes",
                "id": "TipIncluded",
                "label": "Tip Included?",
                "valueOff": "false",
                "labelOff": "No",
                "valueOn": "true"
            },
            {
                "displayType": "singleSelect",
                "serverErrorMessage": "Invalid Selection",
                "defaultValue": "Public transport",
                "options": [
                    {
                        "label": "Public transport",
                        "value": "Public transport"
                    },
                    {
                        "label": "Flight",
                        "value": "Flight"
                    }
                ],
                "layoutStyle": "list",
                "id": "Type",
                "label": "Expense Type",
                "placeholder": "Select expense type",
                "clientErrorMessage": "Expense type is required",
                "required": true
            },
            {
                "displayType": "multiSelect",
                "defaultValue": [
                    "Toff van Alphen"
                ],
                "options": [
                    {
                        "label": "Toff van Alphen",
                        "value": "Toff van Alphen"
                    },
                    {
                        "label": "Roger Federer",
                        "value": "Roger Federer"
                    }
                ],
                "layoutStyle": "checkboxes",
                "id": "Attendees",
                "label": "Attendees",
                "placeholder": "Select attendees",
                "clientErrorMessage": "Please select atleast one attendee",
                "required": true
            }
        ],
        "formColumns": 1,
        "actions": [
            {
                "postback": {
                    "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
                    "system.flow": "ExpenseFlow",
                    "system.state": "editFormMapVar"
                },
                "label": "Submit",
                "type": "submitForm"
            }
        ],
        "channelExtensions": {
            "replaceMessage": "True"
        }
    },
    "source": "BOT",
    "userId": "guest"
}

Messaggio raw competenze

Utilizzato quando un componente crea il payload specifico del canale stesso.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "raw"
payload Il payload specifico del canale Un oggetto JSON