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.

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 Se debe incluir al menos uno de estos elementos: label o imageUrl.
imageUrl Imagen para la acción Cadena Se debe incluir al menos una sola propiedad label o imageUrl.
style El estilo de representación del botón "primary", "danger", "default" No
displayType Representación del tipo de elemento de acción (botón, enlace o icono) "button", "link", "icon" No
channelExtensions Propiedades de extensión específicas del canal asociadas a la acción JSONObject No

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 "devolución"
postback Devolución que se obtiene cuando el usuario selecciona una acción. Cadena u objeto JSON
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 "llamar"
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

ShareAction

Solicita al cliente que abra un cuadro de diálogo de uso compartido para el usuario.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "share"

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

PopupAction

Esta acción abre una ventana emergente después de que los usuarios realicen una acción de clic en un elemento. PopupAction utiliza las propiedades Action junto con sus propias:
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de acción "popup"
popupContent El contenido que se muestra en la ventana emergente. Carga útil del mensaje (consulte el siguiente ejemplo de JSON)
{
    "type": "popup",
    "label": "Give Feedback",
    "popupContent": {
        "formRows": [
            {
                "columns": [
                    {
                        "width": "stretch",
                        "fields": [
                            {
                                "displayType": "text",
                                "label": "What was the issue with this response?"
                            },
                            {
                                "displayType": "multiSelect",
                                "options": [
                                    {
                                        "label": "Inaccurate",
                                        "value": "inaccurate"
                                    },
                                    {
                                        "label": "Inappropriate",
                                        "value": "inappropriate"
                                    }
                                ],
                                "id": "system_feedback_reasons",
                                "required": true
                            },
                            {
                                "displayType": "textInput",
                                "id": "system_feedback_comments",
                                "placeholder": "Additional feedback"
                            }
                        ]
                    }
                ]
            },
            {
                "columns": [
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "action": "cancel",
                                    },
                                    "label": "Cancel",
                                    "type": "postback"
                                },
                            }
                        ]
                    },
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "system.state": "invokeLLM"
                                    },
                                    "label": "Submit Feedback",
                                    "type": "submitForm"
                                },
                            }
                        ]
                    }
                ]
            }
        ],
        "type": "editForm",
        "title": "Give your feedback",
        "formColumns": 1,
    }
}

SubmitFormAction

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

Asociación

Representa un anexo enviado por el usuario.
Nombre Descripción Tipo ¿Obligatoria?
title Título del anexo Cadena No
type Tipo de anexo cadena (valores válidos: audio, archivo, imagen, vídeo)
url URL de descarga del anexo Cadena
Por ejemplo:
{
    "title": "Oracle Open World Promotion",
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.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

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
}

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

FormRow

Nombre Descripción Tipo ¿Obligatoria?
id ID de la fila del formulario Cadena No
columns Lista de columnas mostradas en la fila del formulario. Matriz <Columna>
selectAction Acciones que se ejecutan cuando se selecciona el formulario. Cuando los usuarios pasan el mouse sobre el formulario, la etiqueta de la acción se muestra como una sugerencia de herramienta (cuando está soportada por el canal). Acción No
separator Si se define esta propiedad en true, se inserta una línea de separador sobre el contenido de la fila del formulario. Boolean No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Columna

Nombre Descripción Tipo ¿Obligatoria?
id ID de la columna Cadena No
fields Lista de campos que se muestran verticalmente en la columna. Estos campos deben ser instancias ReadOnlyField cuando la columna se utiliza en FormRow dentro de Form. Los campos pueden ser campos de solo lectura y editables cuando se utiliza FormRow en EditFormMessagePayload. <Campo> de matriz
verticalAlignment La alineación vertical de la columna con respecto a las otras columnas de la misma fila de formulario. Cadena No
width Determina el ancho de la columna dentro de la fila del formulario. Los valores permitidos son auto (valor por defecto) y stretch. Cuando se define en stretch, la columna toma todo el ancho restante después de presentar cualquier columna de ancho automático. Si hay varias columnas definidas en stretch, dividen de forma uniforme el ancho restante. Cadena No
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?
id ID del formulario Cadena No
title El título del formulario Cadena No
fields Matriz de campos Matriz <Campo>
actions Matriz de acciones Matriz <BotsAction> No
formRows Lista de filas que puede incluir campos editables y de solo lectura. Puede definir la lista de campos (con las propiedades fields y, opcionalmente, formColumns) o una lista de filas que utilizan esta propiedad. fields y formRows son mutuamente exlusivos. Acción No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Fila

Representa una matriz de campos.
Nombre Descripción Tipo ¿Obligatoria?
fields Matriz de campos <Campo>>
selectAction Acción que se ejecuta cuando se selecciona la fila. La etiqueta de la acción se muestra como pista cuando los usuarios pasan el mouse sobre la fila. Acción No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Encabezado

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 Cadena
label La clave de campo Cadena
marginTop Cantidad de espacio vertical entre este campo y el campo anterior dentro de la misma columna "none", "medium","large" No
labelFontSize Tamaño de fuente utilizado para la etiqueta de campo "small", "medium", "large" No
labelFontWeight Posicionamiento de la etiqueta dentro de su celda "light", "medium", "bold" 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 campo 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 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
onHoverPopupContent Contenido que se muestra cuando los usuarios pasan el mouse sobre un campo. Carga Útil de Mensaje No

Campo de Texto

El campo de texto hereda todas las propiedades de campo de solo lectura.
Nombre Descripción Tipo ¿Obligatoria?
displayType Tipo de elemento. text (un valor de cadena)
truncateAt Se muestra la posición en la que se trunca el texto largo y donde se muestra una marca de puntos suspensivos (que indica que el valor se ha truncado). Número No
fontSize Tamaño de fuente utilizado para el valor de campo "small", "medium", "large" No
fontWeight El grosor de fuente utilizado para el valor de campo "light", "medium", "bold" No
.

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 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 Cuando se establece en true, el formulario se envía automáticamente 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 matriz 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
layoutDirection Dirección de diseño (horizontal o vertical) de los botones de radio cuando layoutStyle está definido en radioGroup. Por defecto, la dirección de diseño se define como vertical,, pero puede definirla como horizontal. Cadena 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 Una matriz selectFieldOption
layoutStyle Estilo de diseño utilizado para representar las opciones. "list", "checkboxes" No
layoutDirection Dirección de diseño (horizontal o vertical) de las casillas de control cuando layoutStyle está definido en checkboxes. Por defecto, la dirección de diseño se define como vertical, pero también se puede definir como horizontal. Cadena No

DatePicker

El campo de selector de fecha hereda 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 las propiedades de Campo editable 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 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

EventContextProperties

Las propiedades de contexto de evento representan las propiedades de contexto CloudEvent.
Nombre Descripción Tipo ¿Obligatoria? Ejemplo
dataschema Identifica el esquema al que se adhieren los datos. URI No "/dw/approval_payload.json"
datacontenttype Tipo de contenido de los datos incluidos en el atributo de datos. Cadena No "application/json"
source Recurso que produjo el evento. URI No "objectstorage"
time Hora a la que se ha expresado el evento en formato de marca de tiempo RFC 3339. Registro de Hora No "2021-01-10T21:19:24Z"
specversion Versión de la especificación CloudEvents. Cadena No "1.0"
id ID de la especificación CloudEvents. Cadena No "123e4567-e89b-12d3-a456-426614174000"
subject Asunto del evento en el contexto del productor del evento y/o tipo de evento. Cadena No "mynewfile.jpg"

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

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 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 inboundEvent de usuario

Representa los mensajes de eventos salientes que se pueden enviar al servidor. Aplica las siguientes propiedades a Message.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "inboundEvent"
eventType Tipo de evento (definido en el catálogo de eventos) Cadena
eventVersion Versión de tipo de evento (definida en el catálogo de eventos) Cadena
eventData Los datos de negocio JSONObject
contextProperties Propiedades de contexto de evento Propiedades de Contexto de Eventos No
Por ejemplo:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.orderserved",
        "type": "inboundEvent",
        "contextProperties": {
            "id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
            "source": "pizza/service",
        }
    },
    "userId": "guest"
}

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 autoSumbit 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 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 aptitud

Representa el mensaje enviado de la aptitud al usuario.

Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje Cadena
headerText Texto del encabezado que se muestra encima del texto del mensaje. Cadena No
footerText Texto de pie de página que se muestra debajo del texto y las acciones del mensaje, pero antes de las acciones globales. Cadena No
actions Lista de acciones relacionadas con el mensaje Array<Action> No
footerForm Diseño de formulario que se muestra debajo del texto de pie de página del mensaje y encima de sus acciones globales. Mensaje de formulario de conocimientos No
globalActions Lista de acciones globales relacionadas con el texto Matriz<Acción> No
channelExtensions Las propiedades de extensión específicas del canal asociadas al mensaje JSONObject No

Mensaje de texto de bot

Representa un mensaje de texto. Aplica las siguientes propiedades al Mensaje de aptitud.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "text"
text Texto del mensaje Cadena
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"
                }
            }
        ]
    },
    "userId": "guest"
}

Mensaje de ubicación de aptitud

Representa un mensaje de ubicación. Aplica las siguientes propiedades al Mensaje de aptitud.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "location"
location Ubicación Ubicación

Mensaje de anexo de aptitud

Representa un mensaje de anexo. Aplica las siguientes propiedades al Mensaje de aptitud.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "attachment"
attachment Anexo enviado Asociación
Nota

Las cargas de archivos desde el sitio del host pueden fallar y devolver un error de consola similar al siguiente:
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
Esto se debe a que los valores de CORS ( uso compartido de recursos de origen cruzado) del sitio host, que bloquean todas las solicitudes HTTP de origen cruzado, también pueden bloquear las solicitudes de carga de la instancia de cliente en el servidor de anexos de Oracle Digital Assistant. Si se encuentra en este problema, actualice la política de seguridad del sitio host para permitir el dominio de la instancia de Digital Assistant. Debido a que la conversación utiliza conexiones de WebSocket, CORS no afecta a la conversación.

Transferencia de nombres de archivo

Utilice las siguientes cabeceras para recuperar el nombre de un archivo (incluidos los archivos de vídeo, audio o imagen) que está cargado en el servidor de archivos de ODA:
  • x-oda-meta-file-name
  • x-oda-meta-file-type
Puede devolver estas cabeceras con solicitudes GET o HEAD. Utilice HEAD si un componente personalizado no necesita el contenido del archivo.

Mensajes de comentarios

Representa un componente de calificación de comentarios, que toma los comentarios de un usuario mediante un indicador de calificación (normalmente un sistema de calificación por estrellas). Su carga útil es similar a un mensaje de texto, pero tiene un campo de objeto channelExtensions adicional que se define como { "displayType": "stars" }. Aplica las siguientes propiedades al Mensaje de aptitud.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "text"
text Texto del mensaje Cadena
channelExtensions Objeto que describe las extensiones de la carga útil. { “displayType”: “stars” }
Por ejemplo:
{
    "messagePayload":{
        "text":"How would you like to rate us?",
        "type":"text",
        "actions":[
            {
                "postback":{
                    "variables":{
                        "rating":"1"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"1",
                    "system.state":"giveFeedback"
                },
                "label":"1",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"2"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"2",
                    "system.state":"giveFeedback"
                },
                "label":"2",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"3"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"3",
                    "system.state":"giveFeedback"
                },
                "label":"3",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"4"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"4",
                    "system.state":"giveFeedback"
                },
                "label":"4",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"5"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"5",
                    "system.state":"giveFeedback"
                },
                "label":"5",
                "type":"postback"
            }
        ],
        "channelExtensions":{
            "displayType":"stars"
        }
    },
    "source":"BOT",
    "userId":"<userID>"
}

Mensaje de tarjeta de conocimientos

Representa un juego de opciones que se muestran al usuario, en sentido horizontal como carrusel o verticalmente como listas. Aplica las siguientes propiedades al Mensaje de aptitud.
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

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
Ejemplo:
{
    "messagePayload": {
        "type": "card",
        "layout": "horiztonal",
        "cards": [
            {
                "title": "Hawaiian Pizza",
                "description": "Ham and pineapple on thin crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            },
            {
                "title": "Cheese Pizza",
                "description": "Cheese pizza (i.e. pizza with NO toppings) on thick crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            }
        ],
        "globalActions": [
            {
                "type": "call",
                "label": "Call for Help",
                "phoneNumber": "123456789"
            }
        ]
    },
    "userId": "guest"
}

Mensaje de devolución de aptitud

Representa una devolución. Aplica las siguientes propiedades al Mensaje de aptitud.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "postback"
text Texto del mensaje Cadena No
postback Devolución Una cadena o JSONObject

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. Aplica las siguientes propiedades al Mensaje de aptitud.
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
{
    "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"
        }
    ]
}

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. Aplica las siguientes propiedades al Mensaje de aptitud.
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>
tableTitle El título de la tabla Cadena No
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
{
    "type":"table",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":20,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":20,
            "label":"Last Name",
            "alignment":"left"
        },
        {
            "width":35,
            "label":"Title",
            "alignment":"left"
        },
        {
            "width":25,
            "label":"Phone",
            "alignment":"right"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"David"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Davidson"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Machine Learning Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Eric"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Eastman Junior"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Docker Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        }
    ],
    "paginationInfo":{
        "currentRangeSize":5,
        "rangeStart":0,
        "nextRangeSize":-3,
        "hasPrevious":false,
        "hasNext":false,
        "totalCount":5,
        "rangeSize":8,
        "status":"Showing 1-5 of 5 items"
    }
}

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. Aplica las siguientes propiedades al Mensaje de aptitud.
Nota

Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "tableForm"
tableTitle El título de la tabla Cadena No
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
{
    "type":"tableForm",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":47,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":47,
            "label":"Last Name",
            "alignment":"left"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                }
            ]
        }
    ],
    "forms":[
        {
            "title":"View details Aaron Adams",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Aaron-adams-4862572"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "title":"View details Bob Brown",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "title":"View details Charlie Chase",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder Fanatic"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "actions":[
        {
            "postback":{
                "variables":{

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

Mensaje de evento de salida de aptitud

Representa los mensajes de eventos salientes que puede enviar el servidor. Aplica las siguientes propiedades a Message.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje "outboundEvent"
eventType Tipo de evento (definido en el catálogo de eventos) Cadena
eventVersion Versión de tipo de evento (definida en el catálogo de eventos) Cadena
eventData Los datos de negocio JSONObject
contextProperties Propiedades de contexto de evento Propiedades de Contexto de Eventos No
Por ejemplo:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.ordercreated",
        "type": "outboundEvent",
        "contextProperties": {
            "tenancy": "odaserviceinstance00",
            "specversion": "1.0",
            "id": "7a923f09-bff7-4369-8467-0c510e971aaf",
            "source": "hello/app",
            "time": 1659357000,
            "type": "com.pizzastore.pizza.ordercreated",
            "channelname": "System_Global_Test",
            "version": "1.0",
            "userid": "3910088",
            "contenttype": "application/json"
        }
    }
}

Mensaje de formulario de edición de aptitud

Representa un mensaje de formulario editable (formulario de entrada). El mensaje consta de una matriz Field.
Nombre Descripción Tipo ¿Obligatoria?
type Tipo de mensaje. En este caso, es "editForm". "editForm"
title Título de representante del formulario de edición Cadena No
fields Lista de campos que pueden incluir campos editables y de solo lectura. Campo<de matriz>
formColumns Número de columnas en las que se deben agrupar los campos del formulario. La propiedad solo se aplica cuando también se define la propiedad field. Entero No
formRows Lista de filas que puede incluir campos editables y de solo lectura. Debe definir la propiedad fields y formRows es necesario. Son mutuamente excluyentes. Matriz<FormRow>  
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 Número
actions Matriz de acciones relacionadas con el formulario de edición. Esta matriz incluye un SubmitFormAction. Se muestra un error en la consola del explorador cuando SubmitFormAction no está incluido en la matriz actions. Matriz<Acción> Número
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 un 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"
}

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 Objeto JSON