El constructor de expresiones de flujo de trabajo

El constructor de expresiones permite que un flujo inserte datos dinámicos en cualquier campo de texto mediante marcadores de posición entre llaves dobles, con filtros opcionales para dar forma al resultado. Los marcadores de posición funcionan en configuraciones de acciones, asignaciones de campos, condiciones de ramificación y de activación, y asignaciones de entrada de subflujos. El constructor guiado te ayuda a componerlos sin memorizar la sintaxis, y siempre puedes escribirlos directamente.

Formas de marcador de posición

  • Campo del disparador: {{trigger.field}} lee un campo del registro del disparador.
  • Campo relacionado: {{trigger.relation.field}} sigue una relación permitida hasta un valor de un registro relacionado.
  • Campo de objeto personalizado: {{trigger.data.<field_id>}} lee un campo de una entrada de objeto personalizado por su id de campo.
  • Salida de paso: {{steps.<step_name>.output.<key>}} reutiliza la salida de una acción anterior con nombre.
  • Elemento de bucle: {{loop.item}}, {{loop.item.<field>}} y {{loop.index}} referencian el elemento actual dentro de un for-each.
  • Conjunto de cambios: {{change_set.<field>}} contiene un campo modificado, y {{change_set.<field>|from}} y {{change_set.<field>|to}} dan el valor anterior y el nuevo en un disparador de cambio de campo.
  • Hora actual: {{now}} es la hora de ejecución, y una forma relativa como {{now -7d}} la desplaza un número de minutos, horas, días, semanas o meses.

Pipelines de filtros

Añade un filtro a un marcador de posición con una barra vertical y encadena varios filtros de izquierda a derecha. Los filtros compatibles son:

  • upper, lower, title: cambian las mayúsculas y minúsculas del texto.
  • default: default:'value' aporta un valor de reserva cuando la entrada está vacía.
  • date: date:'Y-m-d' formatea una fecha y hora con tokens de fecha estándar.
  • truncate: truncate:100 acorta el texto a una longitud máxima.
  • json: codifica el valor como JSON.
  • map: map:'field' proyecta un campo de cada elemento de una colección.
  • take: take:5 conserva los primeros elementos de una colección.
  • join: join:', ' une una colección en una cadena con un separador.

Un ejemplo de encadenamiento

Los filtros se combinan de forma natural. Por ejemplo, {{trigger.title | truncate:60 | upper}} acorta un título y lo pone en mayúsculas, mientras que {{steps.list_items.output.items | map:'title' | join:', '}} convierte una colección de elementos en una lista de títulos separada por comas. Como las cadenas se leen de izquierda a derecha, el orden importa, así que da forma a los datos antes de formatearlos.

Dónde se aplican los marcadores de posición

Usa marcadores de posición donde un flujo acepte un valor de texto: el asunto y el cuerpo de un correo, las asignaciones de campos de una acción de crear o actualizar, las condiciones de una ramificación, los valores comparados en una condición de activación y las asignaciones de entrada que se pasan a un subflujo. Para ver las acciones que consumen estos valores, lee Acciones de flujo de trabajo, y para elegir los datos con los que empieza un flujo, consulta Disparadores de flujo de trabajo. Para el contexto más amplio, lee la Introducción a la automatización de flujos de trabajo.

¿Quieres probar flujos dinámicos con tus propios datos? Comienza tu prueba gratuita de 14 días.

¿Le resultó útil este artículo?