Las variables en los procesos de negocio de Bitrix24 son las celdas en las que el proceso guarda valores intermedios: el resultado de una acción, una fecha calculada, la respuesta de un sistema externo. Junto con los parámetros de inicio y las constantes, convierten una plantilla de un guion rígido en algo configurable. La mayoría de los «el proceso no funciona» son, en la práctica, errores precisamente en las variables: el tipo equivocado, un valor vacío, una sustitución mal hecha. Veamos cómo funcionan y las técnicas típicas de tratamiento.

¿En qué se diferencia una variable de un parámetro y de una constante?

Hay tres entidades en la configuración de la plantilla. Los parámetros se rellenan en el momento del inicio, por quien arranca el proceso (por ejemplo, «motivo del descuento»); dentro del proceso solo se leen. Las variables viven dentro: el proceso las escribe y las relee sobre la marcha, aquí se guardan los resultados de las acciones. Las constantes se definen una vez en la plantilla (un umbral de importe, el ID de un departamento) y se cambian sin tocar la lógica. Regla práctica: todo lo que le preguntas a una persona es un parámetro; todo lo que calculas sobre la marcha es una variable; todos los «números mágicos» son constantes, porque si no, al cambiar un umbral tendrías que buscarlo por todas las condiciones.

¿Cómo insertar valores en las acciones?

En cualquier campo de una acción funciona «Insertar valor»: una selección desde un árbol con campos del documento (la negociación, el prospecto), parámetros, variables, constantes, resultados de acciones anteriores y valores del sistema. Por debajo, son plantillas del tipo {=Document:TITLE} o {=Variable:total}. Dos escollos: los campos múltiples se insertan como una lista separada por comas —para trabajar elemento a elemento, primero hay que descomponerla—; y un valor vacío se inserta como una cadena vacía, no como «nada»: la condición «igual a vacío» e «igual a ""» no siempre son lo mismo en Bitrix24, compruébalo en un registro de prueba.

¿Cómo tratar cadenas y elegir valores según una condición?

El diseñador trae pocas funciones de cadena, y aquí salvan la situación los robots de una sola línea. Elección según condición sin partir el «Condición» en dos bloques: el operador ternario devuelve uno de dos valores según una comparación; «si el descuento está vacío, toma 0» se resuelve con una sola acción. Sacar un fragmento de un texto —un teléfono de un comentario, el número de una factura de un correo—: «Extraer mediante expresión regular». Descomponer una lista en elementos —etiquetas separadas por comas, un nombre completo en partes—: «Dividir cadena por separador» devuelve un array y el número de partes, y después los elementos quedan accesibles por índice.

¿Cómo sacar un valor de una respuesta JSON?

Si el proceso accede a sistemas externos mediante una petición HTTP, la respuesta llega como una cadena JSON, y necesitas un solo campo de una estructura anidada. El robot «Extraer valor de un JSON por ruta» recibe la cadena y una ruta del tipo data.items.0.price y devuelve el valor en una variable. La combinación «petición HTTP → JSON por ruta → escribir en el campo» es el patrón estándar de integración sin código: el tipo de cambio desde una API externa, el estado del pedido desde un sistema de gestión, las existencias del almacén.

Por qué una variable está vacía: lista de comprobación

Hay cuatro causas frecuentes. La acción que debía rellenar la variable no se ejecutó: mira el registro del proceso, la rama pudo evitarla. El tipo no coincidió: en una variable de tipo «número» se escribió una cadena con un espacio y el valor se perdió en silencio. El resultado de la acción se tomó de otro bloque: al copiar bloques, la sustitución sigue apuntando al antiguo. Un valor múltiple se lee como único: en lugar de un elemento se insertó toda la lista. Regla de depuración: tras cada acción importante, escribe temporalmente la variable en un comentario de la ficha y verás el valor real en cada paso.

Conclusión

Las variables son la memoria del proceso, y la disciplina con ellas compensa: parámetros para la entrada, constantes para los umbrales, variables para los resultados. Y el tratamiento de valores —elección por condición, descomposición de cadenas y JSON— lo cubren los robots de una sola línea del catálogo de Roboteka, para no montar ramificaciones sin necesidad.