Webview
Last updated
Was this helpful?
Last updated
Was this helpful?
Para mejorar la interacción del usuario, usamos el Webview, que es responsable de recoger o mostrar información de manera más eficiente durante el flujo de la conversación. La idea aquí es que el usuario tenga la experiencia de estar en una conversación con el bot y al mismo tiempo utilizando las características de una aplicación web o móvil.
WebView se puede desencadenar durante el flujo de conversación a través del botón de un mensaje de tipo tarjeta.
Actualmente estamos poniendo a disposición 3 tipos de webviews: campos de formulario, Avanzada e URL Externa.
Aquí tenemos la opción de presentar un formulario con los campos del objeto de usuario que se rellenará. Todo el comportamiento es controlado por la plataforma Cosmobots.
La Altura de WebView define el porcentaje de la pantalla que ocupará WebView. Es interesante utilizar una altura que no cubra 100% de la pantalla, por lo que el usuario se dará cuenta de que todavía está en el Chatbot.
A continuación, se muestra un ejemplo de cómo esta vista Web es para el usuario:
Tras la finalización de WebView todos los datos del formulario se guardarán en la base de datos de Cosmobots.
Este tipo de WebView tiene más características. Y se basa en diferentes diseños para presentar la información al usuario.
Los diseños deben rellenarse y colocarse en la variable denominada webview. Los siguientes son los atributos disponibles para todos los diseños:
Atributo
Tipo
Descrição
id
String
Identificador del diseño (layout). Puede establecer cualquier String. Obligatorio.
header
String
Cabecera de diseño (layout). Obligatorio.
buttons
Array
Conjunto de botones para la navegación que aparecen al final de la presentación. Obligatorio.
Los campos son:
label: Etiqueta de botón
next_id: Si se encuentra dentro de un conjunto de diseños (layouts), aquí se define el ID del siguiente diseño (layout)
go_back: Si se encuentra dentro de un conjunto de diseños (layouts), establece si la acción del botón es volver al diseño (layout) anterior
required: Indica si es necesario seleccionar un elemento antes de seguir adelante
save_record: Indica si se debe guardar el registro de los datos de diseño (layout) actuales.
options
Object (JSON)
Opciones de diseño (layout) adicionales:
min_select: Mínimo de elementos a seleccionar (número)
max_select: Máximo de elementos a seleccionar (número)
min_item_quantity: Cantidad mínima de cada item (número)
max_item_quantity: Cantidad máxima de cada item (número)
show_limit_select: Muestra el mensaje sobre el límite de los elementos que se seleccionarán (Boolean)
show_limit_quantity: Muestra el mensaje sobre el límite de cantidad de cada elemento que se seleccionará Booleana
Y ahora vamos a los detalles de cada diseño, que contiene ejemplos de uso:
A continuación, se detallan los atributos adicionales para este tipo de diseño:
Atributo
Tipo
Descripción
type
String
Tipo de layout: select. Obligatorio.
data
Array
Datos que se utilizarán para armar la lista. Obligatorio.
selected
Array
Elementos ya seleccionados.
response
String
Nombre de la variable que tendrá los elementos seleccionados después de que se complete WebView. Obligatorio.
fields
Object (JSON)
Nombre de los campos utilizados para mostrar información sobre cada elemento. Obligatorio. Las opciones son: title, subtitle, price, currency.
Aquí tenemos un ejemplo de cómo rellenar este diseño (layout):
Los siguientes son atributos adicionales para este tipo de diseño:
Atributo
Tipo
Descripción
type
String
Tipo de layout: select_product_quantity. Obligatorio.
data
Array
Datos que se utilizarán para armar la lista. Obligatorio.
selected
Array
Elementos ya seleccionados.
response
String
Nombre de la variable que tendrá los elementos con las cantidades seleccionadas al finalizar la vista Web. Obligatorio.
fields
Object (JSON)
Nombre de los campos utilizados para mostrar información sobre cada elemento. Obligatorio. Las opciones son: title, subtitle, quantity, price, currency.
Aquí tenemos un ejemplo de cómo rellenar este diseño:
Los siguientes son atributos adicionales para este tipo de diseño:
Atributo
Tipo
Descripción
type
String
Tipo de layout: select_address. Obligatorio.
data
Array
Datos que se utilizarán para montar la lista. Obligatorio.
selected
Array
Registro de dirección ya seleccionado.
response
String
Nombre de la variable que tendrá el registro de dirección seleccionado al finalizar WebView. Obligatorio.
fields
Object (JSON)
Nombre de los campos utilizados para mostrar información sobre cada registro de dirección. Obligatorio. Las opciones son: street, number, complement, neighborhood, city, state, zipcode.
Aquí tenemos un ejemplo de cómo rellenar este diseño:
Los siguientes son atributos adicionales para este tipo de diseño (layout):
Atributo
Tipo
Descripción
type
String
Tipo do layout: list_orders. Obrigatório.
data
Array
Datos que se utilizarán para armar la lista. Obrigatório.
fields
Object (JSON)
Nombre de los campos utilizados para mostrar información sobre cada elemento de la lista. Obligatorio. Las opciones son: order_number, status, confirmation_date, payment_method, subtotal, freight, total, currency.
A continuación, se muestra un ejemplo de cómo rellenar este diseño:
Los siguientes son atributos adicionales para este tipo de diseño (layout):
Atributo
Tipo
Descrição
type
String
Tipo de layout: show_total. Obligatorio.
response
String
Nombre de la variable que tendrá la información sobre los valores totales al finalizar la Webview. Obligatorio.
fields
Object (JSON)
Nombre de los campos de los elementos seleccionados que se utilizarán para calcular los valores totales. Obligatorio. Las opciones son: freight, price, quantity, currency.
A continuación se muestra un ejemplo de cómo rellenar este diseño (layout):
Los siguientes son atributos adicionales para este tipo de diseño (layout):
Atributo
Tipo
Descripción
type
String
Tipo de layout: new_record. Obligatorio.
response
String
Nombre de la variable que tendrá la nueva información de registro al finalizar la Webview. Obrigatório.
fields
Object (JSON)
Nombre de los campos del nuevo registro que se creará. Obligatorio. Las opciones dependen de los campos que desea que el usuario rellene. Como ejemplo de creación de una nueva dirección, los campos serían: street, number, complement, neighborhood, city, state, zipcode.
Aquí tenemos un ejemplo de cómo rellenar este diseño (layout):
Y finalmente, tenemos la opción de definir un conjunto de layouts. Sería como un paso a paso que el usuario debe seguir para completar la Webview. Para esto basta adicionar cada layout dentro de la variable webview el orden que desea que aparezcan al usuario.
Siguiendo un ejemplo, donde el escenario aquí sería para finalizar una compra:
También existe la opción de WebView para tener su origen en alguna URL externa a los cosmobots. Por lo tanto, el control no estaría en la plataforma de Cosmobots, pero podrías utilizar un paso después de esto para, por ejemplo, llamar a una API para consultar o actualizar la información de contexto de conversación.