Skip to main content
El paso code.javascript ejecuta un script en un entorno aislado. Úsalo para transformar datos, validar, armar payloads o integrar fuentes que no cubre un HTTP simple.

Campos del paso

Contrato de ejecución

  1. La API resuelve plantillas en input.
  2. El sandbox recibe ese objeto como global input.
  3. Tu código debe asignar output = ....
  4. Ese output es la salida del paso (y response.body para capture).
Consulta Variables y contexto para armar input y pasar datos entre pasos.

Pasar variables desde un paso anterior

Declara en input lo que necesitas del trigger, de context o de steps.<n>.output. Luego léelo como input.* en el script.
Para publicar datos al siguiente paso:
  1. Asigna output = { ... }.
  2. En el paso siguiente usa {{steps.N.output.<campo>}}, o
  3. Declara capture y lee {{context.<clave>}}.

Objetos y APIs disponibles

Zona horaria

  • Trigger cron: DateTime.now() usa la timezone del trigger.
  • Otros triggers (p. ej. webhook): la zona efectiva es UTC.

Buen ejemplo: normalizar y validar

Script equivalente (más legible):

Buen ejemplo: llamar una API con fetch

Pasa token, referencia y monto por input con plantillas; no los incrustes en code.

Buen ejemplo: fechas con DateTime

Malos ejemplos

No asignar output

Sin output, el paso no deja un resultado útil para pasos siguientes ni para capture.

Usar require o APIs de sistema

El sandbox no expone require, process, ni acceso al sistema de archivos del runner. Usa input, fetch/axios, mysql o sftp.

Leer el trigger directo sin pasarlo por input

trigger no existe como global. Declara "referencia": "{{trigger.body.referencia}}" en input y usa input.referencia.

Mutar estado “global” entre pasos

Cada paso corre en un proceso aislado. Comparte datos con output + capture/context o con el input del siguiente paso.

MySQL (opcional)

Pasa host, usuario y contraseña por input (idealmente desde el body del webhook o un secreto que tú controles en tu integración). No hardcodees credenciales en code.

SFTP (opcional)

Límites prácticos

  • El script corre con "use strict".
  • Usa throw new Error("...") para fallar el paso con un mensaje claro.
  • Los console.* se recortan si son muy grandes; no uses logs para transportar el resultado final: usa output.
  • Prefiere pasos cortos y deterministas; deja esperas largas al paso Esperar.

Ejemplo de solicitud completo