🟢 Introducción

Dentro de Power Automate, la acción Compose es una de las herramientas más útiles y versátiles para manipular y visualizar datos intermedios dentro de un flujo.
Aunque parece sencilla, Compose te permite crear expresiones, combinar texto, formatear información y depurar valores sin tener que usar variables adicionales.

🧠 Qué es / para qué sirve

Compose sirve para guardar temporalmente un valor (texto, número, JSON, arreglo, fecha, etc.) y reutilizarlo en pasos posteriores del flujo.
Se usa comúnmente para:

  • Probar expresiones sin modificar datos.
  • Transformar contenido antes de enviarlo o almacenarlo.
  • Simplificar flujos complejos dividiendo cálculos intermedios.
  • Inspeccionar valores durante la depuración (usando “Ejecutar prueba”).

📘 En resumen: Compose = “Crea, transforma o combina un valor sin necesidad de variables.”

🧩 Sintaxis

No tiene sintaxis propia dentro del editor: se usa directamente en el campo “Inputs” de la acción.

Ejemplo básico:

Hello, @{triggerBody()?['Nombre']}!

Ejemplo de una expresión:

concat('Hola ', triggerOutputs()?['body/Nombre'], ', tu solicitud fue recibida el ', utcNow())

También puedes usar funciones de Power Automate como:

  • addDays()formatDateTime()json()first()last()length()if()coalesce(), etc.

💻 Ejemplos con código

Nota: Crea inputs de tipo «Text» para estos ejercicios al inicio de tu flujo (el trigger) que tenga los valores de «Nombre» y de valor tu nombre, el segundo input que tenga el titulo de «Id» y el valor puede ser el que tu decidas.

1️⃣ Concatenar texto y valores dinámicos

concat('Hola ',triggerOutputs()?['body/Nombre'],
', tu ID es ', triggerOutputs()?['body/ID'])

2️⃣ Crear estructura JSON personalizada

{
"Nombre": "@{triggerOutputs()?['body/Nombres']}",
"Correo": "@{triggerOutputs()?['body/Correo']}",
"Fecha": "@{utcNow()}"
}

3️⃣ Calcular fechas relativas

addDays(utcNow(), 7)

Devuelve una fecha 7 días después de la actual, útil para automatizar vencimientos o recordatorios.

4️⃣ Transformar datos para Power Apps o Power BI
Puedes usar Compose para generar un texto formateado o un objeto JSON que luego otra herramienta consuma:

{
"Cliente": "@{triggerOutputs()?['body/Cliente']}",
"Monto": "@{triggerOutputs()?['body/Monto']}"
}

🧱 Buenas prácticas

✅ Usa nombres descriptivos (por ejemplo: Compose_FechaFormateadaCompose_JSONCliente).
✅ Agrupa acciones Compose cerca de donde se usan, para mantener legibilidad.
✅ Aprovecha Peek code (Ver código) para copiar expresiones complejas.
✅ Usa Compose para depurar valores intermedios antes de enviar un correo o escribir en Dataverse.
✅ Reemplaza Set variable con Compose cuando el valor no necesite cambiar.

⚠️ Errores comunes

🚫 Escribir @ dentro de cadenas sin escapar correctamente (usa comillas simples).
🚫 Intentar modificar el valor de un Compose (no es posible; es de solo lectura).
🚫 No renombrar acciones → difícil identificar qué Compose es cuál en flujos grandes.
🚫 Abusar de Compose sin limpiar los no usados → afecta legibilidad y mantenimiento.

🔄 Variantes o alternativas

  • “Initialize variable” → cuando el valor debe cambiar en pasos posteriores.
  • “Append to string array variable” → para listas o concatenaciones acumulativas.
  • “Expression editor” → Compose usa las mismas expresiones que las funciones de flujo, útil para probar antes.
  • “Data Operations” → Parse JSON → si necesitas descomponer datos estructurados, no sólo mostrarlos.

📚 Recursos oficiales (verificados)

🧩 Mini práctica

Objetivo: Crear un flujo que use Compose para mostrar un mensaje formateado con fecha y nombre del usuario.

1️⃣ Crea un flujo instantáneo “Manualmente desde un botón”.
2️⃣ Agrega una acción Compose con esta expresión:

concat('Hola ', user().displayName, ', hoy es ', formatDateTime(utcNow(), 'dddd, dd MMMM yyyy'))

3️⃣ Agrega una acción Enviar correo (V2) → en el cuerpo inserta la salida del Compose.
4️⃣ Ejecuta el flujo y revisa el correo: verás el texto con el nombre y la fecha formateada. 🎉

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo