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.

Collegamento

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

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
}

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 Deve essere presente almeno un valore label o imageUrl.
imageUrl L'immagine per l'azione stringa Deve essere presente almeno un valore label o imageUrl.

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. Una stringa o JSONObject
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
Ad esempio:
{
    "type": "url",
    "label": "Open URL",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "url": "https://example.com/images/gallery/locations/11.jpg",
}

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 formSubmissionPayload. JSONObject No
JSON di esempio
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

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"
}

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

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 "text", "link"
label La chiave del campo Stringa
value Il valore del campo Stringa No
linkLabel Una breve etichetta per il valore del collegamento se displayType è link. Stringa No
alignment Il posizionamento dell'etichetta all'interno della sua cella "left", "right", "center" No
width Percentuale consigliata della larghezza della tabella da fornire al campo   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 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 generici 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
Nota

Nella release 23.06 di Oracle Digital Assistant, i campi di sola lettura non vengono visualizzati all'interno dei form di input, anche se ricevuti nel payload dei messaggi.

Campo Testo

Il campo di testo eredita tutte le proprietà del campo di sola lettura. Il valore displayType per questo campo è "text".

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 generici 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 impostato su true, il form viene inviato parzialmente quando l'utente ha immesso un valore per il 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 Lo stile di layout utilizzato per visualizzare le opzioni di selezione singola. Il layout predefinito è list. "list", "radioGroup" 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 Array<SelectFieldOption>
layoutStyle Lo stile di layout utilizzato per eseguire il rendering delle opzioni. "list", "checkboxes"

list non è supportato nella release 23.06, pertanto le opzioni non possono essere visualizzate come elenco di selezione e possono essere visualizzate solo come caselle di controllo.

No

DatePicker

Il campo selettore data eredita tutte le proprietà del 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 tutti i campi modificabili 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 tutte le proprietà del 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

Righe

Rappresenta un array di campi.
Nome descrizione; Digita Richiesto?
fields Una serie di campi <campo> array
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Form

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?
title Il titolo del modulo Stringa No
field Una serie di campi <campo> array
actions Una serie di azioni Array <BotsAction> No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

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

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 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 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 allegato
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 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à autoSubmit 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 abilità

Rappresenta il messaggio inviato dallo skill all'utente.

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 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 JSONObject
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Messaggio di testo competenza

Rappresenta un messaggio di testo.
Nome descrizione; Digita Richiesto
type Il tipo di messaggio "text"
text Il testo del messaggio stringa
headerText Testo dell'intestazione per le schede stringa No
footerText Testo piè di pagina per le schede stringa No
actions Array di azioni correlate al testo. array No
globalActions Array di azioni globali correlate al testo. array No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio. "displayType" : "stars" identifica il componente di feedback. JSONObject No
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"
                }
            }
        ]
        ],
          "channelExtensions": {
             "displayType":"stars"
          }
    },
    "userId": "guest"
    "userId": "guest",
    "msgId": "message_id",
    "source": "BOT"
}

Messaggio allegato skill

Rappresenta un messaggio allegato.
Nome descrizione; Digita Richiesto
type Il tipo di messaggio "attachment"
attachment L'allegato inviato allegato
headerText Testo dell'intestazione della scheda stringa No
footerText il testo del piè di pagina della scheda stringa No
actions Array di azioni correlate al testo. array No
globalActions Array di azioni globali correlate al testo. array No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No

Messaggio scheda competenze

Rappresenta un insieme di scelte visualizzate per l'utente, orizzontalmente come caroselli o verticalmente come elenchi.
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
headerText Testo dell'intestazione delle schede stringa No
actions Array di azioni correlate al testo. array No
globalActions Array di azioni globali correlate al testo. array No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No
{
    "messagePayload": {
        "type": "card",
        "layout": "horizontal",
        "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 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.
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>
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
actions Array di azioni correlate alla tabella Array<Action> No
globalActions Una serie di azioni globali Array<Action> No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No
{
    "type":"table",
    "headerText":"A-Team",
    "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 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.
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
actions Array di azioni correlate al form Array<Action> No
globalActions Una serie di azioni globali Array<Action> No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONbject 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 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.
Nota

Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio "tableForm"
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
actions Array di azioni correlate al form tabella Array<Action> No
globalActions Una serie di azioni globali Array<Action> No
channelExtensions Le proprietà di estensione specifiche del canale associate al messaggio JSONObject No
{
    "type":"tableForm",
    "headerText":"A-Team",
    "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 modulo modifica abilità

Rappresenta un messaggio di modulo modificabile (modulo di input). Il messaggio è costituito da un array Campo. Contiene le proprietà riportate di seguito.
Nome descrizione; Digita Richiesto?
type Il tipo di messaggio. In questo caso, è "editForm". "editForm"
fields Elenco di campi che possono includere campi modificabili e di sola lettura. Array<Field>
title Un titolo di rappresentante per il modulo di modifica Stringa No
formColumns Il numero di colonne in cui devono essere raggruppati i campi modulo. Numero intero (1)

L'SDK supporta una sola colonna per la Release 23.06.

No
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 No
actions Array di azioni correlate al form di modifica. Questo array deve includere un valore SubmitFormAction. Viene visualizzato un errore nella console del browser quando SubmitFormAction non è incluso nell'array actions. Array<Action> No
globalActions Una serie di azioni globali Array<Action> No
channelExtensions Un set di proprietà di estensione specifiche del canale

L'oggetto channelExtensions può includere una proprietà replaceMessage utilizzata per sostituire il messaggio del modulo di input precedente.

JSONObject No
{
    "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"
}