Para declarar una variable se utiliza @ y el nombre que se le quiera dar. Por ejemplo @name.
En el caso de los elementos tipo , , y las variables se declararán en el apartado variables utilizando @ para definir el nombre y & para vincular la variable con el valor del input. A su vez es posible declarar variables y asignarle un valor manualmente
"variables": {
"@name": "&input_text",
"@new_var": "Valor definido por el usuario"
}
Los elementos del tipo , y permiten almacenar tanto el label como el payload del boton. También es posible declarar variables en sus botones. Estas variables solo se guardarán una vez el usuario pulse el botón
{
"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"
]
}
Variables de entorno
En el apartado ENVIRONMENT_VARIABLES es posible definir variables que estarán disponibles desde el primer step del bot.
Hay valores pre definidos para todos los bots:
@user_id: Número de identificación del usuario.
@bot_id: Número de identificación del bot.
@conversation_id: Número de identificación de la conversación.
@__day: Día del mes en número.
@__month: Mes de año en número.
@__year: Año en formato xxxx
"ENVIRONMENT_VARIABLES": {
"@counter": "0",
"@max_attemps": "3"
"@new_var" : "Valor definido por el usuario"
}
Operaciones con variables
Es posible realizar operaciones aritméticas con variables para, por ejemplo, limitar la cantidad de veces que un usuario puede pasar por un step.
En este ejemplo a la variable @counter se le suma su valor actual + 1.