msg: Mensaje que se quiera mostrar por pantalla. Debe ser del tipo string.
type: Tipo de elemento. Debe ser del tipo string.
buttons: Declaración de los botones que se mostrarán en pantalla. Debe ser del tipo array de diccionarios.
label: La etiqueta del botón que se mostrará en pantalla. Debe ser del tipo string.
payload: Es el valor asociado al botón. Este valor no se mostrará en pantalla. Debe ser del tipo string.
{
"msg": "Que valoracion le da a este servicio?",
"type": "buttonMessage",
"buttons": [
{
"label": "Regular",
"payload": "1_point"
},
{
"label": "Bien",
"payload": "2_point"
},
{
"label": "Excelente",
"payload": "3_point"
}
]
}
Guardado de variables
Este elemento permite guardar datos en variables que estarán disponibles en cualquier punto del flujo del bot. Es posible declarar variables en el apartado variables o en cada botón.
Para declarar una variable se utiliza @ como clave y el valor se referencia utilizando &. Es posible guardar tanto el payload como el label del botón. En el ejemplo se ve como se está guardando el label en la variable @variable_label y el payload en la variable @variable_payload. A su vez es posible declarar variables con un valor definido por el usuario, este valor debe ser del tipo string.
Las variables declaradas en los botones solo se guardarán una vez el usuario pulse el botón. Las variables declaradas en el apartado variables se guardaran sin considerar que botón haya sido pulsado.
{
"name": "rate_us",
"tags": null,
"actions": [
{
"msg": "Que valoracion le da a este servicio?",
"type": "buttonMessage",
"buttons": [
{
"label": "Regular",
"payload": "1_star",
"@review": "Hemos recibido una valoración de una estrella"
},
{
"label": "Bien",
"payload": "2_star",
"@review": "Hemos recibido una valoración de dos estrellas"
},
{
"label": "Excelente",
"payload": "3_star",
"@review": "Hemos recibido una valoración de tres estrellas"
}
]
}
],
"variables": {
"@variable_payload": "&payload",
"@variable_label": "&label",
"@variable_extra": "Valor definido por el usuario"
},
"next_step" : [
"if @variable_payload == '1_star': return bad_step",
"if @variable_payload == '2_star': return medium_step",
"if @variable_payload == '3_star': return good_step"
]
}
Los steps solo admiten un elemento de tipo buttonMessage por acción. Es decir, cada elemento de tipo buttonMessage tiene que tener su propio step.
Next step
El campo next_step es indispensable para el flujo del bot, en el caso de los elementos del tipo input, quickReplies, buttonMessage, carousel y webservice puede ser del tipo string o un array de strings con condicionales.
Si solo se indica un string el bot irá al próximo step sin importar el botón que se haya pulsado
"next_step": "your_step_name_here"
En cambio, es posible variar el flujo del bot dependiendo de la interacción del usuario. Para esto es necesario declarar el valor del next_step como un array de strings de uno o mas elementos. La estructura del condicional debe ser: if nombre_de_la_variable == 'valor_a_comparar' : return nombre_del_step