Saltar al contenido principal
Usas el contexto para guardar variables que persisten únicamente durante la ejecución actual, es decir, solo viven dentro del flujo específico donde las creas. Si necesitas guardar datos que duren hasta 24 horas, usa la Memoria. Piensa en el contexto como una pizarra temporal: cada vez que un usuario inicia una conversación, obtienes una pizarra nueva y limpia. Todo lo que escribas en ella está disponible para todos los nodos del flujo, pero cuando la conversación termina, la pizarra se borra.

Variables del sistema

Al iniciar una ejecución, Brain Studio inyecta automáticamente variables del sistema en el contexto. Puedes acceder a ellas en todos los nodos sin necesidad de declararlas.

executionId

Cada ejecución de un workflow recibe un identificador único llamado executionId. Brain Studio lo genera automáticamente al iniciar el flujo y permanece constante durante toda la ejecución, incluyendo derivaciones entre Skills y llamadas a Tools.
{{$context.executionId}}
El executionId es de solo lectura. Brain Studio lo genera automáticamente al iniciar cada ejecución; no necesitas crearlo ni modificarlo.

Para qué sirve

El executionId te permite identificar de forma única cada ejecución de tu flujo. Esto es útil cuando necesitas:
  • Conectar sistemas externos: Enviar el ID a tu backend para que pueda rastrear o correlacionar la conversación con tus registros internos.
  • Reanudar ejecuciones pausadas: Cuando un AI Agent se pausa esperando una respuesta externa (por ejemplo, una aprobación), el sistema externo necesita el executionId para reanudar la ejecución correcta.
  • Auditoría y trazabilidad: Registrar en tus bases de datos qué ejecución generó cada acción, facilitando el seguimiento y la resolución de problemas.

Ejemplo: Enviar a una API externa

Supongamos que tu flujo consulta un servicio externo y necesitas que ese servicio sepa a qué ejecución responder. En un nodo API, puedes incluir el executionId en el cuerpo de la petición:
{
  "orderId": "{{$context.orderId}}",
  "callbackExecutionId": "{{$context.executionId}}",
  "action": "procesar_pago"
}
Tu servicio externo recibe el callbackExecutionId y lo usa para enviar la respuesta de vuelta a la ejecución correcta.

Ejemplo: Reanudar un AI Agent pausado

Cuando configuras un AI Agent con pausa por reanudación externa, el payload de reanudación requiere el executionId para identificar qué ejecución continuar:
{
  "executionId": "{{$context.executionId}}",
  "message": "Pago aprobado exitosamente",
  "pauseInteraction": false
}

Ejemplo: Guardar en Datum para auditoría

En un nodo Datum, puedes guardar el executionId junto con los datos de la operación para tener trazabilidad completa:
{
  "usuario": "{{$user.name}}",
  "accion": "solicitud_credito",
  "executionId": "{{$context.executionId}}",
  "fecha": "{{$context.currentDate}}"
}
Así, si necesitas investigar qué pasó en una conversación específica, puedes buscar por executionId en tu base de datos y ver exactamente los pasos que se ejecutaron.

En nodos de código

Dentro de un nodo Código, accedes al executionId igual que a cualquier otra variable de contexto:
const executionId = $context.get('executionId')

$output.set('log', `Procesando ejecución: ${executionId}`)

Variables personalizadas

Además de las variables del sistema, puedes crear tus propias variables de contexto usando nodos de Variable, nodos de Código, o cualquier nodo que guarde datos en contexto (como las respuestas de nodos interactivos).

Leer variables

Dentro de cualquier nodo puedes acceder al contexto con la sintaxis {{$context.nombreVariable}}. Por ejemplo, si las variables en contexto son:
{
  "nombre": "Juan",
  "ultimoPedido": { "id": "PED-123", "estado": "en camino" }
}
Entonces:
  • {{$context.nombre}} muestra Juan.
  • {{$context.ultimoPedido.estado}} muestra en camino.

Contexto en nodos de código

En los nodos de código, usas los métodos de contexto de forma diferente:
  • $context.get(key, [defaultValue]) — Obtiene un valor del contexto
  • $context.set(key, value) — Guarda o actualiza un valor en el contexto
  • $context.getHttpResponse(key) — Obtiene la respuesta completa de un nodo HTTP
  • $context.getHttpRequest(key) — Obtiene la petición enviada por un nodo HTTP
Para obtener variables de contexto:
const nombre = $context.get('nombre')

const nombre = $context.get('nombre', 'Juan')
Para guardar variables dentro de un nodo código:
$context.set('ultimoPedido.estado', 'entregado')

const usuario = { nombre: 'Juan', plan: 'gold' }
$context.set('usuario', usuario)

const pedidos = ['PED-123', 'PED-456']
$context.set('pedidos', pedidos)
Puedes usar la sintaxis de objetos con el punto para acceder a llaves internas del contexto. Por ejemplo, $context.get('ultimoPedido.estado') devuelve "en camino" sin necesidad de obtener todo el objeto.

Contexto vs Memoria

CaracterísticaContexto ($context)Memoria ($memory)
DuraciónSolo la ejecución actualHasta 24 horas
AlcanceTodos los nodos del flujoTodos los flujos del usuario
Uso típicoDatos temporales de la conversaciónDatos que persisten entre conversaciones
Variables del sistemaexecutionId (inyectado automáticamente)No tiene
Si dudas entre contexto y memoria, hazte esta pregunta: ¿necesito este dato después de que termine la conversación? Si la respuesta es sí, usa Memoria. Si solo lo necesitas durante la conversación actual, usa Contexto.