Modelo de mensaje

Para utilizar funciones como el modo sin cabecera y el delegado, debe comprender tanto los mensajes de usuario como los de aptitud. Todo lo que se recibe o envía desde el servidor de chats de Oracle se representa como un mensaje, uno que se envía del usuario a la aptitud o de la aptitud al usuario.

Estos son los tipos base utilizados en todos los mensajes enviados del usuario a la aptitud y viceversa. Se trata de los elementos fundamentales de todos los mensajes.

Asociación

Representa un anexo enviado por el usuario.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de anexo cadena (valores válidos: audio, file, image, video)
url URL de descarga del anexo Cadena
title Nombre del archivo cargado Cadena No
Por ejemplo:
{
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}

Ubicación

Representa un objeto de ubicación.
Nombre Descripción Tipo ¿Obligatoria?
title Título de la ubicación Cadena No
URL URL para mostrar la ubicación en un mapa Cadena No
latitude Valor de longitud de las coordenadas GPS doble
longitude Valor de latitud de las coordenadas GPS doble
Por ejemplo:
{
    "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
}

Acción

Una acción representa algo que el usuario puede seleccionar.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción Cadena
label Texto de etiqueta descriptivo de la acción. Cadena Debe haber al menos un elemento label o imageUrl.
imageUrl Imagen para la acción Cadena Debe haber al menos un elemento label o imageUrl.

PostbackAction

Envía una devolución predefinida a la aptitud cuando el usuario selecciona una acción.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "postback"
postback Devolución que se obtiene cuando el usuario selecciona una acción. Una cadena o JSONObject
Por ejemplo:
{
    "type": "postback",
    "label": "Large Pizza",
    "imageUrl": "https://example.com/images/gallery/locations/11.jpg",
    "postback": {
        "state": "askSize",
        "action": "getCrust"
    }
}

CallAction

Solicita al cliente que llame un número de teléfono especificado en nombre del usuario.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "call"
phoneNumber Número de teléfono al que llamar Cadena
Por ejemplo:
{
    "type": "call",
    "label": "Call Support",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "phoneNumber": "18005555555"
}

urlAction

Solicita al cliente que abra un sitio web en un nuevo separador o en un explorador de la aplicación.

Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "llamar"
URL URL del sitio web que se muestra. Cadena
Por ejemplo:
{
    "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

Esta acción se utiliza para enviar un formulario de entrada a la aptitud cuando cumple la validación del cliente. Agrega las siguientes propiedades a las propiedades de Acción:
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "submitForm"
postback La carga útil de devolución, que puede incluir una propiedad de acción para disparar la navegación. El valor de esta propiedad se debe establecer en formSubmissionPayload. JSONObject No
JSON de ejemplo
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

LocationAction

Pide al cliente que solicite la ubicación del usuario.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "location"
Por ejemplo:
{
    "type": "location",
    "label": "Share location",
    "imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}

Tarjeta

Representa una única tarjeta en la carga útil del mensaje.
Nombre Descripción Tipo ¿Obligatoria?
title Título de la tarjeta, que se muestra como la primera línea de la tarjeta. Cadena
description Descripción de la tarjeta Cadena No
imageUrl URL de la imagen que se muestra. Cadena No
URL URL del sitio web abierta con un toque. Cadena No
actions Matriz de acciones relacionadas con el texto matriz No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Cabecera

Representa una cabecera para tablas en un objeto Table o Table-Form.
Nombre Descripción Tipo ¿Obligatoria?
label La etiqueta de cabecera Cadena
alignment Posicionamiento de la etiqueta dentro de la celda "left", "right", "center"
width Porcentaje sugerido de ancho de tabla que se debe proporcionar al encabezado.   No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Campo

Representa la información atómica de una celda de tabla o un campo de formulario dentro de los objetos Table, Form y Table-Form, proporcionados como par clave-valor.
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "text", "link"
label La clave de campo Cadena
value El valor del campo Cadena No
linkLabel Una etiqueta corta para el valor de enlace si displayType es link. Cadena No
alignment Posicionamiento de la etiqueta dentro de su celda "left", "right", "center" No
width Porcentaje sugerido del ancho de tabla que se debe proporcionar al campo   No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

selectFieldOption

Los campos Selección única y Selección múltiple utilizan una lista de opciones de selección con las siguientes propiedades:
Nombre Descripción Tipo ¿Obligatoria?
label El texto mostrado Cadena
value Valor de la opción Tipos de dato primitivos (cadena, número, booleano, etc.) No
channelExtensions Propiedades de extensión específicas del canal asociadas con la opción de campo. JSONObject No

Campo Sólo Lectura

Representa un campo de solo lectura. Todos los campos de solo lectura heredan las propiedades de campo genérico y tienen las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
value El valor del campo Cadena
width Porcentaje sugerido del ancho total disponible que debe ocupar el campo en un diseño de tabla. número No
alignment La alineación del valor dentro de una columna de tabla. La alineación por defecto es right. "left", "center" y "right" No
Nota

En la versión 23.06 de Oracle Digital Assistant, los campos de solo lectura no se presentan en los formularios de entrada, incluso si se reciben en la carga útil del mensaje.

Campo de Texto

El campo de texto hereda todas las propiedades de campo de solo lectura. El valor displayType para este campo es "text".

Campo de Enlace

El campo de enlace hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "link"
linkLabel Etiqueta utilizada para el hiperenlace Cadena No
imageUrl URL de la imagen que abre un enlace al hacer clic. Cadena No

Campo de medios

El campo de medios hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "medio"
mediaType Tipo de medios de campo "video", "audio", "image"

Campo de acción

El campo de acción hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "action"
action Acción que se debe realizar cuando el usuario hace clic en el botón de acción. Acción

Campo Editable

Representa un campo editable. Todos los campos editables heredan las propiedades de campo genérico y tienen las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
id ID de campo Cadena
placeholder Descripción de la entrada que se espera del usuario. Este texto se muestra cuando el usuario aún no ha realizado una selección o introducido un valor. Cadena No
required Si esta entrada es necesaria para enviar el formulario booleano No
clientErrorMessage Mensaje de error de nivel de campo que se muestra debajo del campo cuando se produce un error de validación del lado del cliente. Si no se proporciona, el SDK se define por defecto en editFieldErrorMessage. Cadena No
serverErrorMessage Mensaje de error de nivel de campo que se muestra debajo del campo cuando se produce un error de validación del servidor. Este mensaje de error se debe incluir en la carga útil enviada por la aptitud. Cadena No
autoSubmit Si se define en true, el formulario se envía parcialmente cuando el usuario ha introducido un valor para el campo.   No

Selección Única

El campo de selección única hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "singleSelect"
defaultValue Selección por defecto Tipos de dato primitivos (cadena, número, booleano, etc.) No
options Matriz de opciones presentadas al usuario. Una Array<SelectFieldOption>
layoutStyle Estilo de diseño utilizado para representar las opciones de selección única. El diseño por defecto es list. "list", "radioGroup" No

Selección Múltiple

El campo de selección múltiple hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "multiSelect"
defaultValue Selección por defecto Una matriz<objeto> de tipos de dato primitivos (una cadena, un número, un valor booleano, etc.) No
options Matriz de opciones presentadas al usuario Array<SelectFieldOption>
layoutStyle Estilo de diseño utilizado para representar las opciones. "list", "checkboxes"

list no está soportado en la versión 23.06, por lo que las opciones no se pueden presentar como una lista de opciones, solo se pueden presentar como casillas de control.

No

DatePicker

El campo de selector de fecha hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "datePicker"
defaultValue El valor inicial de este campo. El formato debe ser YYYY-MM-DD. Cadena No
minDate La fecha mínima o más temprana permitida. El formato debe ser YYYY-MM-DD. Cadena No
maxDate Fecha máxima o última permitida. El formato debe ser YYYY-MM-DD. Cadena No

TimePicker

El campo de selector de tiempo hereda las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "timePicker"
defaultValue El valor inicial de este campo, introducido como HH:mm en formato de 24 horas. Cadena No
minTime El tiempo mínimo o más temprano permitido, introducido como HH:mm en formato de 24 horas. Por ejemplo, 00:00. Cadena No
maxTime El tiempo máximo o el último permitido, introducido como HH:mm, en formato de 24 horas. Por ejemplo, 13:00. Cadena No

Alternar

El campo de alternancia hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "toggle"
defaultValue El valor seleccionado inicial. Si desea que el conmutador esté activado inicialmente, defina el valor por defecto en el mismo valor que valueOn. Cadena No
valueOff El valor cuando el conmutador está desactivado Cadena
valueOn El valor cuando el conmutador está activado Cadena
labelOff Etiqueta para el valor "off" Cadena No
labelOn Etiqueta para el valor "on" Cadena No

TextInput

El campo de entrada de texto hereda todos los campos editables y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "textInput"
defaultValue El valor inicial de este campo Cadena no
validationRegularExpression Expresión regular que indica el formato necesario para esta entrada de texto Cadena no
multiline Indicador que determina si se deben representar varias líneas de entrada booleano no
minLength Longitud mínima de entrada que el usuario debe proporcionar entero no
maxLength Número máximo de caracteres permitidos en el campo de entrada de texto entero no
inputStyle Estilo de entrada utilizado por el cliente. Los valores permitidos son: "text", "tel", "url","email", y "password". Cadena no

NumberInput

El campo de entrada de número hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de campo "numberInput"
defaultValue El valor inicial de este campo Entero No
minValue Un número mínimo permitido Entero No
maxValue El mayor número permitido. Entero No

Fila

Representa una matriz de campos.
Nombre Descripción Tipo ¿Obligatoria?
fields Matriz de campos <campo de matriz>
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Formulario

Representa una matriz de campos junto con un título. Se utiliza en mensajes Table-Form para formas anidadas de una fila de tabla.
Nombre Descripción Tipo ¿Obligatoria?
title El título del formulario Cadena No
field Matriz de campos <campo de matriz>
actions Matriz de acciones Matriz <BotsAction> No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

PaginationInfo

Representa la información de paginación de los resultados en los objetos Table, Form y Table-Form.

Nombre Descripción Tipo ¿Obligatoria?
totalCount Recuento total de resultados número
rangeSize El tamaño de rango de los resultados por página número
status El mensaje de estado de paginación Cadena
currentRangeSize El tamaño del rango de resultados actual número
rangeStart Desplazamiento inicial del intervalo de resultados actual número
nextRangeSize El tamaño del siguiente rango de resultados número
hasPrevious Indica si hay un juego de resultados anterior booleano
hasNext Indica si hay un siguiente juego de resultados booleano

Mensaje de Conversación

Todos los mensajes que forman parte de una conversación tienen la siguiente estructura:
Nombre Descripción Tipo ¿Obligatoria?
messagePayload Carga útil del mensaje Mensaje
userId ID de usuario Cadena
Por ejemplo:
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

Mensaje de usuario

Representa un mensaje enviado del usuario a la aptitud.

Mensaje de texto de usuario

Mensaje de texto simple que se envía al servidor.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "text"
text Texto del mensaje Cadena
Por ejemplo:
{
    "messagePayload": {
        "text": "Order Pizza",
        "type": "text"
    },
    "userId": "guest"
}

Mensaje de devolución del usuario

Mensaje de respuesta de devolución enviado al servidor.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "postback"
text Texto de la devolución Cadena No
postback Devolución de la acción seleccionada Una cadena o JSONObject
Por ejemplo:
{
    "messagePayload": {
        "postback": {
            "variables": {
                "pizza": "Small"
            },
            "system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
            "system.state": "orderPizza"
        },
        "text": "Small",
        "type": "postback"
    },
    "userId": "guest"
}

Mensaje adjunto de usuario

Mensaje de respuesta del anexo enviado al servidor.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "attachment"
attachment Metadatos del anexo Asociación
Por ejemplo:
{
    "messagePayload": {
        "attachment": {
            "type": "image",
            "url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
        },
        "type": "attachment"
    },
    "userId": "guest"
}

Mensaje de la ubicación del usuario

Mensaje de respuesta de la ubicación enviado al servidor.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "location"
location Información de ubicación del usuario Ubicación
Por ejemplo:
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

Mensaje de envío de formulario de usuario

Representa el mensaje de envío de formulario que se envía después de que el usuario haya enviado un formulario a SubmitFormAction. Tiene las siguientes propiedades:
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje. "formSubmission"
submittedFields Pares clave-valor de los valores de campo enviados. La clave es el nombre (ID) del campo. JSONObject
postback La carga útil de devolución, que puede incluir una propiedad de acción para disparar la navegación. El valor de esta propiedad se debe tomar de SubmitFormAction. JSONObject No
partialSubmitField ID del campo que dispara un envío de formulario parcial. Los campos con la propiedad autoSubmit definida en true pueden disparar un envío de formulario parcial. Cadena No
JSON de ejemplo
{
    "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"
}

Mensaje de aptitud

Representa el mensaje enviado de la aptitud al usuario.

El mensaje es un tipo base abstracto para todos los demás mensajes. Todos los mensajes lo amplían para proporcionar información.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje Cadena

Mensaje raw de aptitud

Se utiliza cuando un componente crea la carga útil específica del canal.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "raw"
payload Carga útil específica del canal JSONObject
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Mensaje de texto de aptitud

Representa un mensaje de texto.
Nombre Descripción Tipo Obligatoria
type Tipo de mensaje "text"
text Texto del mensaje Cadena
headerText Texto de cabecera para las tarjetas Cadena No
footerText Texto del pie de página para las tarjetas Cadena No
actions Matriz de acciones relacionadas con el texto. matriz No
globalActions Matriz de acciones globales relacionadas con el texto. matriz No
channelExtensions Propiedades de extensión específicas del canal asociadas al mensaje. "displayType" : "stars" identifica el componente de comentarios. JSONObject No
Por ejemplo:
{
    "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"
}

Mensaje de anexo de aptitud

Representa un mensaje de anexo.
Nombre Descripción Tipo Obligatoria
type Tipo de mensaje "attachment"
attachment Anexo enviado Asociación
headerText Texto de cabecera de la tarjeta Cadena No
footerText el texto del pie de página de la tarjeta Cadena No
actions Matriz de acciones relacionadas con el texto. matriz No
globalActions Matriz de acciones globales relacionadas con el texto. matriz No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Mensaje de tarjeta de conocimientos

Representa un juego de opciones que se muestran al usuario, en sentido horizontal como carrusel o verticalmente como listas.
Nombre Descripción Tipo Obligatoria
type Tipo de mensaje "card"
layout Si se va a mostrar los mensajes en sentido horizontal o vertical. cadena (valor: horizontal, vertical)
cards Matriz de tarjetas que se va a presentar. matriz
headerText Texto de cabecera de las tarjetas Cadena No
actions Matriz de acciones relacionadas con el texto. matriz No
globalActions Matriz de acciones globales relacionadas con el texto. matriz No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje 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"
}

Mensaje de tabla de aptitudes

Representa un mensaje que devuelve los resultados de una consulta en forma de tabla. El mensaje consta de una matriz de cabeceras y una matriz de filas. Las propias filas contienen una matriz fields que representa celdas individuales.
Nota

Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "table"
headings Matriz de cabeceras de tabla Matriz<Cabecera>
rows Matriz de filas de tablas. Cada fila contiene una matriz fields que representa las celdas de la tabla. Matriz<Fila>
paginationInfo Información de paginación de los resultados de la tabla PaginationInfo No
actions Matriz de acciones relacionadas con la tabla Matriz<Acción> No
globalActions Matriz de acciones globales Matriz<Acción> No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje 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"
    }
}

Mensaje de formulario de conocimientos

Representa un mensaje que devuelve los resultados de una consulta en un formulario de solo lectura. El mensaje consta de una matriz de resultados de formulario. Cada resultado de formulario contiene una matriz fields con pares clave-valor que representan un campo.
Nota

Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "form"
forms Matriz de resultados de formulario. Cada resultado contiene una matriz fields que representa los campos del formulario. Matriz<Fila>
formColumns Número de columnas en las que se deben agrupar los campos del formulario. 1 2
paginationInfo Información de paginación de los resultados del formulario PaginationInfo No
actions Matriz de acciones relacionadas con el formulario Matriz<Acción> No
globalActions Matriz de acciones globales Matriz<Acción> No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje 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"
        }
    ]
}

Tabla de aptitudes - Mensaje de formulario

Este mensaje combina los tipos de mensaje Table y Form. Representa un mensaje que devuelve los resultados de una consulta en forma de tabla. Cada fila de la tabla tiene un formulario de solo lectura además de la información de fila.
Nota

Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "tableForm"
headings Matriz de cabeceras de tabla Matriz<Cabecera>
rows Matriz de filas de tablas. Cada fila contiene una matriz de campos que representan las celdas de la tabla. Matriz<Fila>
forms Matriz de resultados de formulario que se corresponden con cada fila de tabla. Cada formulario contiene una matriz fields que representa los campos del formulario. Matriz<Formulario>
formColumns Número de columnas en las que se deben agrupar los campos del formulario. 1 2
paginationInfo Matriz de acciones globales relacionadas con el texto Matriz<Acción> No
actions Matriz de acciones relacionadas con el formulario de tabla Matriz<Acción> No
globalActions Matriz de acciones globales Matriz<Acción> No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje 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"
}

Mensaje de formulario de edición de aptitud

Representa un mensaje de formulario editable (formulario de entrada). El mensaje consta de una matriz Field. Tiene las siguientes propiedades
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje. En este caso, es "editForm". "editForm"
fields Lista de campos que pueden incluir campos editables y de solo lectura. Campo<de matriz>
title Título de representante del formulario de edición Cadena No
formColumns Número de columnas en las que se deben agrupar los campos del formulario. Integer (1)

El SDK solo soporta una columna para la versión 23.06.

No
errorMessage Mensaje de error de nivel de formulario que se muestra cuando el usuario ha enviado datos no válidos pero el error no se puede enlazar a un campo individual. Cadena No
actions Matriz de acciones relacionadas con el formulario de edición. Esta matriz debe incluir un SubmitFormAction. Se muestra un error en la consola del explorador cuando SubmitFormAction no está incluido en la matriz actions. Matriz<Acción> No
globalActions Matriz de acciones globales Matriz<Acción> No
channelExtensions Juego de propiedades de extensión específicas del canal

El objeto channelExtensions puede incluir una propiedad replaceMessage que se utiliza para sustituir el mensaje de formulario de entrada anterior.

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