El constructor de expresiones de flujo de trabajo

El constructor de expresiones de flujo de trabajo

El constructor de expresiones es un diálogo guiado que compone marcadores de posición y filtros para cualquier campo de texto dentro de un flujo de trabajo. Ábralo desde el icono del sufijo del campo en cualquier configuración de acción, condición de ramificación o asignación de entrada.

Por qué usar marcadores de posición

Los marcadores de posición extraen datos dinámicos del registro disparador, entidades relacionadas, salidas de pasos previos, elementos de bucle y conjuntos de cambios. Permiten que un único flujo maneje cada registro coincidente sin valores codificados.

Formas de marcadores

  • {{trigger.field}}: un campo directo del registro disparador (por ejemplo, {{trigger.title}}).
  • {{trigger.relation.field}}: un campo de un registro relacionado permitido (por ejemplo, {{trigger.owner.email}}).
  • {{steps.<step_name>.output.<key>}}: la salida de una acción con nombre ejecutada previamente.
  • {{loop.item}}, {{loop.item.<field>}}, {{loop.index}}: la iteración actual del bucle dentro de un cuerpo for-each.
  • {{change_set.<field>}}, {{change_set.<field>|from}}, {{change_set.<field>|to}}: los valores antiguos y nuevos de un campo cambiado, disponibles para disparadores de cambio de campo.
  • {{now}}, {{now -7d}}, {{now +1h}}: la fecha y hora UTC actual en el momento de la ejecución, opcionalmente desfasada. Las unidades son m (minutos), h (horas), d (días), w (semanas) y M (meses).

Selectores de campo

El diálogo ofrece un selector para cada forma de marcador. El selector de campos del disparador muestra cada campo de la entidad disparadora. El selector de relaciones recorre las relaciones permitidas con un solo clic, así no tiene que adivinar los nombres de ruta. El selector de salida de paso lista cada paso nombrado anterior del flujo. El selector de elementos del bucle integra el esquema de la entidad origen en los diálogos anidados cuando está dentro de un cuerpo for-each.

Cadena de filtros

Añada filtros a cualquier marcador con | para transformar la salida. Los filtros se encadenan de izquierda a derecha:

  • upper, lower, title: cambiar mayúsculas/minúsculas.
  • default:'value': devuelve el valor por defecto cuando la entrada está vacía o es nula.
  • date:'Y-m-d': formatea una fecha y hora con tokens de formato de PHP.
  • truncate:100: acorta la entrada a como máximo N caracteres.
  • json: codifica la entrada como JSON.
  • map:'field': proyecta un campo de cada elemento de una colección.
  • take:N: conserva los primeros N elementos de una colección.
  • join:', ': une una colección en una cadena con el separador indicado.

Ejemplo práctico

{{trigger.tasks | map:'title' | take:5 | join:', '}} proyecta el título de las primeras cinco tareas del registro disparador y las une con comas. {{trigger.due_date | date:'Y-m-d'}} formatea una fecha de vencimiento como fecha ISO.

Condiciones de ramificación

Dentro de una ramificación, el constructor de expresiones rellena el lado izquierdo (el campo) y el operador de comparación, y ofrece un selector de marcadores para el lado derecho. Así es fácil comparar campos del disparador, salidas de pasos y conjuntos de cambios sin escribir expresiones en bruto.

Validación

El diálogo valida cada marcador contra el esquema de la entidad elegida antes de guardar. Las rutas inválidas se resaltan con un mensaje de error claro para que pueda corregirlas en su sitio.

Consejos

  • Nombre sus pasos. Los nombres descriptivos (incident_summary, ticket_response) hacen que los marcadores posteriores se expliquen solos.
  • Use los desfases de {{now}} para construir ventanas móviles en fuentes de consulta for-each, por ejemplo “created_at mayor que {{now -7d}}“.
  • Encadene map, take y join para resumir colecciones en una única línea legible.
  • Use default:'Sin asignar' para evitar cadenas vacías en los cuerpos de las notificaciones.

¿Le resultó útil este artículo?