Una variable establecida con Set Variable, Run Equation on Variable, o leída después con {{variableName}} en cualquier campo de texto, puede tener dos alcances distintos.
Alcance global frente a alcance de usuario
Las variables Global se comparten entre todos los usuarios que hablan con tu bot, un total acumulado, un ajuste compartido. Las variables de Usuario están limitadas a quien esté en la conversación en ese momento, cada usuario obtiene su propio valor independiente, útil para cualquier cosa personal: su nombre, una preferencia, en qué punto está de un proceso de varios pasos.
Variables integradas, sin necesidad del bloque Set Variable
Toda ejecución de un flujo ya tiene disponibles {{message}} (el texto entrante, o el subtítulo de una foto/documento), {{userId}}, y {{chatId}} desde el momento en que empieza. Una ejecución desencadenada por una foto o documento entrante también obtiene {{incomingPhotoUrl}}/{{incomingDocumentUrl}}, un enlace estable a lo que se envió, tu bot lo vuelve a alojar para que el enlace nunca caduque, úsalo en un bloque posterior (Call API Request, o envíalo de vuelta con Send Photo/Send Document) igual que cualquier otra variable. Ambos están vacíos cuando la actualización entrante no fue ese tipo de mensaje.
Construir una conversación con Wait for User Input
La mayoría de los bloques se ejecutan al instante y continúan, pero Wait for User Input pausa el flujo por completo hasta que ese mismo usuario envíe su siguiente mensaje, guardándolo en una variable que tú nombras, y luego continúa desde ahí. Encadena varios de estos (haz una pregunta, espera, haz la siguiente) para construir una conversación real de varios pasos, como recoger los datos de un pedido campo por campo. Toma la ruta de Timeout si no responden a tiempo, conecta eso a un recordatorio amable o a una salida elegante en lugar de dejarlo sin conectar.
Un ejemplo trabajado
Un flujo de soporte podría: enviar un mensaje pidiendo un número de pedido, Wait for User Input en orderNumber, usar Send API Request para buscarlo, y luego responder con el resultado, todo dentro de un flujo desencadenado por un comando como /order.
Consejo: Usa Condition para ramificar según lo que escribió un usuario después de un bloque Wait for User Input, comparar {{variableName}} con las respuestas esperadas es cómo conviertes una respuesta de texto libre en una lógica de ramificación real.