Cuando desarrollamos aplicaciones canvas en Power Apps, muchas veces necesitamos pasar información externa a la aplicación. Puede ser un identificador de un registro, un código de cliente, un nombre de usuario o incluso un token. La forma más sencilla de hacerlo es utilizando parámetros en la URL.

🇬🇧Read in english

Este post está orientado a explicarte:

  • Cómo funcionan los parámetros de URL en Power Apps
  • Qué limitaciones presentan en términos de seguridad o estética
  • Cómo puedes codificar y decodificar los parámetros usando Power Automate
  • Y cómo aplicarlo en un caso real

¿Qué son los parámetros de URL en Power Apps?

Power Apps permite recibir valores directamente desde la URL de acceso a la app. Por ejemplo, si publicas tu app con una URL como esta:

https://apps.powerapps.com/play/e/(...)&invoice_id=234

Puedes acceder a este valor (234) dentro de la app mediante:

Param("invoice_id")

Esto permite, por ejemplo, navegar directamente a una pantalla que muestra los datos de esa factura.

¿Cuál es el problema?

Aunque esta funcionalidad es muy útil, tiene una desventaja: el valor del parámetro queda completamente expuesto en la URL.

Esto puede ser problemático por:

  • Seguridad (mostrar identificadores sensibles)
  • Privacidad (por ejemplo, datos personales)
  • Estética (URLs poco limpias o profesionales)
  • Posibles manipulaciones manuales del parámetro

La solución: Codificar el valor con base64

Una forma sencilla de ocultar el valor real es codificarlo usando base64. No se trata de una técnica de seguridad avanzada, pero sirve como una capa de ofuscación que evita mostrar directamente datos críticos.

En este enfoque haremos:

  1. Un primer flujo codifica el valor que se quiere pasar como parámetro
  2. La app de Power Apps lee ese valor codificado desde la URL.
  3. Se invoca un segundo flujo que decodifica el valor base64 y devuelve el dato original a Power Apps.

Paso a paso de la solución

Paso 1: Codificar el valor

Creamos un flujo de Power Automate que reciba el valor original y devuelva su versión codificada en base64.

En el flujo:

  1. Añadimos un trigger manual que tenga como parámetro el valor original.
  2. Usamos la acción “Compose” con la expresión:
base64(outputs('Original'))
  1. Devolvemos el valor como respuesta

Este enfoque devolverá la cadena “MjM0” para el id de factura “234”.

Este flujo de Power Automate será al que llamemos para generar la url de la aplicación.

Paso 2: Enlace con parámetro codificado

Una vez codificado, puedes generar una url como esta:

https://apps.powerapps.com/play/e/(...)&invoice_id=MjM0

En lugar de pasar invoice_id=234, ahora pasamos invoice_id=MjM0.

Paso 3: Leer parámetro desde Power Apps

Dentro de la aplicación, leeremos el parámetro “invoice_id” usando:

Set(InvoiceParameter,Param("invoice_id"))

Este valor contiene “MjM0” para nuestro ejemplo, que por sí solo no sirve, así que habrá que decodificarlo en el siguiente paso:

Paso 4: Decodificar el parámetro en Power Automate

Creamos un segundo flujo de Power Automate, que reciba la cadena codificada y devuelva su versión original.

En el flujo:

  1. Añadimos un trigger manual que tenga como parámetro el valor codificado.
  2. Usamos la acción “Compose” con la expresión:
base64ToString(outputs('Original'))
  1. Devolvemos el valor con una acción “Respond to Power Apps”
  1. Por último, desde Power Apps llamaremos al flujo de Power Automate de la siguiente manera:
Set(InvoiceParameter,Param("invoice_id"))
;
Set(InvoiceId; DecoderFlow.Run(InvoiceParameter))

De esta manera, ya hemos guardado en la variable InvoiceId el valor real de la factua.

Resultado final

Al final del proceso:

  • El usuario accede a la app con una URL que no expone directamente lo datos
  • PowerApps recibe el valor codificado, llama a un flujo para decodificarlo
  • se obtiene el invoice_id y se utiliza dentro de la app como si se hubiera pasado en claro

¿Dónde aplicarlo?

Este patrón es muy útil en:

  • Navegación directa desde correos electrónicos automáticos
  • Apps compartidas entre usuarios con visibilidad parcial
  • Integraciones con sistemas externos que solo pueden pasar parámetros por URL
  • Cualquier otra situación donde no quieras exponer IDs internos o valores lógicos

Conclusión

Trabajar con parámetros de URL en Power Apps es potente, pero como todo, puede mejorarse. Este pequeño patrón basado en base64 y Power Automate te permite proteger mejor tu aplicación y mantener una experiencia más profesional.

Leave a comment

Autor

👋Soy Eugenio Peraza, consultor y desarrollador de soluciones con Power Platform.

Entusiasta de la tecnología con enfoque al negocio🚀

🔗 LinkedIn
📺 YouTube

©️2025 Power Tower