Variables
Una variable es como una casilla con nombre donde guardas un dato del cliente para usarlo después. Por ejemplo: le preguntas su correo, lo guardas en una variable y más tarde lo metes dentro de un mensaje o lo usas para decidir qué hacer.
¿Qué es una variable?
Imagínate un post-it pegado al perfil de un cliente. Cada vez que el bot conversa con esa persona, puede leer el post-it y escribir cosas nuevas en él. Eso es una variable: un espacio para guardar información que después se reutiliza.
Ejemplo concreto: tu flujo le pregunta al cliente cuál es su correo electrónico. Cuando responde, el bot guarda el correo en una variable llamada email_cliente. Más adelante, en otro paso del flujo, usas ese correo para enviarle un mensaje personalizado: «Te enviamos la confirmación a {{conv.email_cliente}}».
¿Dónde se guarda? (los 3 lugares)
Cuando creas una variable tienes que decidir dónde se guarda. Hay tres opciones y la diferencia importa: define cuánto dura el dato y a quién pertenece.
Conversación
El dato se guarda en el hilo de conversación de ese cliente en ese canal. Úsalo para datos del momento: en qué paso del embudo está, qué producto está consultando o si ya vio cierto aviso.
Ojo con esto: el valor no se borra solo. Marcar la conversación como resuelta o archivarla no limpia nada, y como cada cliente tiene un único hilo por canal, cuando te vuelva a escribir dentro de un mes seguirá arrastrando los valores viejos. Si tu flujo depende de arrancar limpio (por ejemplo una variable etapa o carrito), agrega un paso «Limpiar variable» al principio o al final del flujo.
Cuándo usarla: intención actual, paso del flujo, una opción que eligió ahora.
Contacto
El dato se guarda en la ficha del contacto, así que lo ves en todas sus conversaciones y sigue ahí la próxima vez que te escriba, aunque pase un mes. Úsalo para información del cliente que persiste en el tiempo: su correo, dirección, talla, plan contratado o preferencias.
Cuándo usarla: email, teléfono alternativo, dirección de envío, preferencias.
Bot (organización)
El dato se guarda a nivel de toda tu organización y es el mismo para todos los contactos. Úsalo para constantes del negocio que no cambian de cliente a cliente, como el teléfono de soporte, el link de pago, el horario de atención o el nombre de tu marca.
Cuándo usarla: teléfono de soporte, link de pago, horarios, mensajes default.
Consejo: si dudas dónde guardar algo, pregúntate: «¿esto sigue siendo verdad la próxima vez que el cliente me escriba?». Si la respuesta es sí, va en Contacto. Si es algo del momento, va en Conversación y lo limpias cuando el flujo termina.
Crear una variable
Las variables se administran dentro del editor de una automatización. No hay una sección aparte en el menú lateral: primero abres (o creas) la automatización y desde ahí entras a su pestaña de variables.
- Ve a Automatizar en el menú lateral y abre una de tus automatizaciones.
- En la barra de pestañas del editor (Workflow · Agentes · Conocimiento · Variables · General · Registro) entra a Variables.
- Haz clic en Crear variable, arriba a la derecha.
- Llena el formulario Nueva variable:
- Scope: dónde se guarda — Conversación, Contacto o Bot (ver sección anterior).
- Tipo: qué clase de información va adentro. Ver más abajo.
- Identificador (slug): el nombre técnico con el que la referencias dentro de los mensajes (ej.
email_cliente). Escríbelo tú: no se autorrellena del título. Solo admite minúsculas, números y guión bajo, y debe empezar con una letra — el campo corrige lo que escribas mientras tecleas. - Título visible: el nombre legible que verás en las listas (ej. «Email del cliente»).
- Descripción (opcional): una nota para tu equipo explicando para qué se usa.
- Haz clic en Crear. Arriba del formulario ves en todo momento cómo quedará la referencia, por ejemplo
{{conv.email_cliente}}.
Las variables son de toda la organización, no de esa automatización. La pestaña las agrupa según quién las usa: De este agente (las que algún paso de este flujo referencia), Compartidas (las que este flujo y otras automatizaciones usan, con el nombre de las otras) y Disponibles (existen en tu organización pero este flujo todavía no las toca; ese bloque viene plegado, ábrelo con Mostrar). Una variable recién creada aparece en Disponibles hasta que algún paso la use. Y si la borras con el ícono de papelera, desaparece para toda la organización: los pasos de cualquier flujo que la referencien fallarán al ejecutarse. Las marcadas como Sistema no se pueden borrar.
Guardar, actualizar y limpiar valores
Declarar la variable solo reserva el nombre. Para que tenga un valor, tu flujo necesita un paso que la escriba. Los pasos disponibles son:
- Guardar variable — escribe un valor. Eliges Conversación o Contacto (este paso no escribe variables de Bot), la variable y el valor, que puede ser texto fijo o una referencia como
{{message.content}}. - Consultar variable — lee el valor actual y lo deja disponible para los pasos siguientes. Puedes definir un valor por defecto para cuando esté vacía.
- Actualizar variable — cambia el valor a partir del que ya tenía: incrementar, decrementar, multiplicar, concatenar al inicio o al final, y agregar o quitar elementos de una lista. Acepta los tres lugares, incluido Bot.
- Limpiar variable — la deja vacía, o la devuelve a su valor por defecto si marcas esa casilla. Es la única forma de resetear un dato: nada lo hace por ti.
- Esperar respuesta — hace una pregunta y guarda lo que responda el cliente en una variable de conversación.
En el paso Guardar variable puedes elegir la variable de la lista o escribir un nombre directamente. Escribirlo a mano funciona, pero esa variable no aparecerá en las listas ni tendrá título ni descripción para el resto del equipo.
Cómo usarla en un mensaje
Para insertar el valor de una variable dentro de un mensaje, escribes su referencia entre llaves dobles. La sintaxis depende de dónde se guarda:
- Variables de Conversación:
{{conv.identificador}} - Variables de Contacto:
{{contact.identificador}} - Variables del Bot:
{{bot.identificador}}(también funciona{{org.identificador}})
Ejemplo de mensaje con tres variables:
Si el contacto se llama María, el mensaje se enviará así:
Si la variable no tiene valor, el hueco queda vacío y el resto del mensaje se envía igual. Si escribiste mal el nombre, puede llegarle al cliente el texto crudo con las llaves — por eso conviene probar el flujo antes de activarlo.
Consejo: dentro del editor de flujos no hace falta escribir las llaves a mano. En los campos que aceptan variables hay un botón con un ícono de variable («Insertar variable») que abre un buscador con tres grupos: Sistema, De la organización (las tuyas) y Salidas de pasos anteriores. Al elegir una, la pega por ti.
En el paso de respuesta con mensaje personalizado, no mezcles los dos métodos. Ese editor tiene su propio bloque «Insertar variable» que inserta chips azules con el nombre legible del dato. Si el mensaje tiene al menos un chip, las referencias que hayas escrito a mano con llaves no se reemplazan y salen tal cual. Usa chips para todo, o escribe todo a mano.
Referencias que ya existen
Antes de crear una variable, revisa si el dato ya está disponible. Estas referencias funcionan sin declarar nada y son las que te ofrece el grupo Sistema del botón «Insertar variable»:
{{contact.name}}— nombre del contacto.{{contact.phone}}— teléfono del contacto.{{contact.email}}— correo del contacto.{{agent.name}}— nombre del agente humano asignado a la conversación. Queda vacío si no hay nadie asignado.{{message.content}}— el texto del mensaje que acaba de enviar el cliente y disparó el flujo.{{org.name}}— nombre de tu organización.{{org.phone}}— teléfono de tu organización.
En los campos de configuración de los pasos (condiciones, consultas, mapeos de contactos y citas) también resuelven {{org.email}}, {{org.address}}, {{org.website}} y {{message.mediaUrl}}, que es el enlace del archivo cuando el cliente manda una imagen, un audio o un video. Todos estos datos salen de la ficha del contacto y de los datos de tu negocio en Ajustes, así que no necesitas duplicarlos en variables.
Usar el resultado de un paso anterior
Muchos pasos dejan un resultado que los pasos siguientes pueden leer sin guardarlo en ninguna variable. Es lo que hace útil un paso de Solicitud HTTP o un disparador de tipo Webhook: la respuesta que llega se puede meter directo en el mensaje que le envías al cliente.
La referencia tiene esta forma, donde lo que va después de node: es el identificador interno del paso:
No lo escribas a mano. Abre el botón «Insertar variable» del campo donde lo quieres usar y busca el grupo Salidas de pasos anteriores: ahí aparecen, con el nombre del paso y del dato, solo las salidas de los pasos que están antes en el flujo. Al elegir una, se pega la referencia completa con el identificador correcto.
Algunos ejemplos de lo que deja cada paso:
- Solicitud HTTP — código de estado, cuerpo de respuesta y encabezados. Para llegar a un campo puntual dentro de una respuesta JSON, primero toca Probar solicitud en la configuración del paso: con eso el sistema descubre los campos y te los ofrece por nombre en el selector.
- Disparador Webhook — método, cuerpo, encabezados y parámetros de la llamada que recibió el flujo, más los campos del cuerpo que hayas descubierto con Escuchar evento de prueba.
- Agente de IA — la respuesta que generó.
- Consultar base de conocimiento — si encontró respuesta y el texto encontrado.
- Ruteo por botón — el texto y el identificador del botón que eligió el cliente.
- Esperar mensajes — el texto acumulado de la ráfaga y cuántos mensajes llegaron.
- Pasos de tablas, contactos y citas — el registro creado o encontrado y sus campos.
Estos resultados viven solo durante la corrida del flujo. Si necesitas el dato más tarde (mañana, en otra conversación), guárdalo con un paso Guardar variable.
Tipos de dato
El tipo de una variable describe qué clase de información guarda. Elige el que mejor encaje:
- Texto — una palabra o frase. Es lo más común. Ejemplo: nombre, email, dirección.
- Número — cantidades, montos, edades. Ejemplo:
250(monto a pagar),3(cantidad de productos). - Booleano — una bandera con dos estados, sí o no. Ejemplo:
ya_pago. - Fecha — un día y hora. Ejemplo: fecha de cita, fecha de vencimiento.
- Opciones — una opción dentro de un set fijo. Ejemplo: talla = S/M/L/XL, color = rojo/verde/azul.
- JSON — datos complejos para usuarios avanzados (objetos, listas). Solo úsalo si sabes qué es.
Ver y editar las variables de una conversación
Abre una conversación y, en el panel derecho, entra a la pestaña «Variables» (junto a Información, Historial, Multimedia y Llamadas). Ahí ves el modo actual de la conversación y tres bloques con los valores reales de ese cliente:
- Conversación — editable.
- Contacto — editable.
- Bot (organización) — solo lectura desde aquí.
Para cambiar un valor, edítalo en su campo y toca el ícono de guardar que aparece al lado. La pestaña se actualiza sola cuando el flujo escribe algo, sin recargar la página.
Ten en cuenta dos cosas: solo se listan las variables que ya tienen un valor guardado (una variable declarada pero nunca escrita no aparece), y esta pestaña solo existe con una conversación abierta, porque los valores viven en ella.
Editar aquí no reanuda un flujo detenido. Si el flujo se quedó en un paso «Esperar respuesta», seguirá esperando: solo continúa cuando llega el próximo mensaje del cliente, y ese mensaje es el que se guarda en la variable. Rellenarla a mano sirve para corregir un dato mal capturado o preparar el terreno antes de que el cliente conteste, no para destrabar la espera. Si necesitas mover la conversación, cámbiala a modo humano y responde tú.
Glosario rápido
- Identificador (slug) — el nombre técnico de la variable, en minúsculas y sin espacios (ej.
email_cliente). Es lo que va dentro de las llaves cuando la referencias. - Scope (dónde se guarda) — el lugar donde vive la variable: Conversación, Contacto o Bot. Determina cuánto dura y a quién pertenece.
- Interpolación — el proceso por el cual el sistema reemplaza
{{conv.algo}}por su valor real cuando envía el mensaje. - Salida de un paso — el resultado que deja un paso del flujo (la respuesta de una solicitud HTTP, el botón elegido, el texto del agente de IA). Se referencia con
{{node:...}}y dura solo lo que dura la corrida. - Estado de la conversación — el conjunto de todas las variables guardadas más el modo actual de la conversación (Bot, Flujo, Humano, Pausado).