Preguntar a la IA
Español ES
Ir a CleverApp

Variables

Las variables del contacto guardan los datos de una persona: la ciudad, el ramo elegido, el total del pedido. Las variables globales las comparte todo el bot: la dirección de la tienda, un tipo de cambio, un contador de pedidos. Dónde se muestran y cómo insertarlas en un mensaje se describe en Datos que puedes insertar.

Lo que escriben las funciones se guarda cuando el código termina sin error. Dentro del código, la lectura ya ve lo escrito.

getContactVariable

getContactVariable(name)

Devuelve el valor de una variable del contacto.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable, como en la ficha del contacto. Se admiten espacios y letras no latinas

Devuelve el valor como cadena, o undefined si el contacto no tiene esa variable. Envuelve el valor en Number() para hacer cálculos.

var count = Number(getContactVariable('roses_count') || 0);

if (count >= 11) {
    setContactVariable('discount', 10);
}

Si la variable la escribió este mismo código, la función devuelve el valor en la forma en que se escribió: un número sigue siendo un número.

setContactVariable

setContactVariable(name, value)

Escribe una variable del contacto. Si la variable no existe, se crea.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable
value Cadena, número, true o false El valor

No devuelve nada.

Un objeto, un array, null y undefined no se guardan tal cual: la variable recibe un valor vacío. Para guardar un objeto o un array, conviértelo en cadena y vuelve a interpretarlo al leerlo:

setContactVariable('cart', JSON.stringify(['Rosas', 'Tulipanes']));

var cart = JSON.parse(getContactVariable('cart') || '[]');

Es mejor guardar los booleanos como cadenas, como 'sí' y 'no': true y false vuelven como las cadenas '1' y '' la próxima vez que otro bloque los lee.

deleteContactVariable

deleteContactVariable(name)

Elimina una variable del contacto.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable

No devuelve nada. Después de eliminarla, getContactVariable con ese nombre devuelve undefined.

deleteContactVariable('promo_code');

getGlobalVariable

getGlobalVariable(name)

Devuelve el valor de una variable global del bot.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable global

Devuelve el valor como cadena, o undefined si no existe esa variable.

var freeDelivery = Number(getGlobalVariable('free_delivery_from') || 0);
var sum = Number(getContactVariable('order_total') || 0);

if (sum >= freeDelivery) {
    sendMessage('Para ti, el envío es gratis.');
}

setGlobalVariable

setGlobalVariable(name, value)

Escribe una variable global del bot. Si la variable no existe, se crea. El valor es visible de inmediato para todos los contactos del bot.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable global
value Cualquiera El valor. Se guarda como cadena: el número 5 pasa a ser '5', y un objeto, '[object Object]', así que convierte los objetos en cadena con JSON.stringify

No devuelve nada.

var orders = Number(getGlobalVariable('orders_today') || 0);
setGlobalVariable('orders_today', orders + 1);

Advertencia

Si un código con una escritura así se ejecuta para varios contactos a la vez, cada uno lee el mismo valor antiguo y parte de los incrementos se pierde. Un contador así no sirve para contar con exactitud.

deleteGlobalVariable

deleteGlobalVariable(name)

Elimina una variable global del bot.

Parámetro Tipo Qué pasar
name Cadena El nombre de la variable global

No devuelve nada.

deleteGlobalVariable('deal_of_the_day');