Novedades Power Platform

Para la Transformación Digital e Innovación Tecnológica

Novedades Power Platform

Para la Transformación Digital e Innovación Tecnológica

Power AppsPower Platform

Enlaces Profundos (deep linking) en Power Apps

Abre la app de manera predeterminada en la pantalla correcta y con el registro correcto (desde un Email o Teams)

¿Te gustaría que un usuario haga clic en un enlace y tu Power App se abra directamente en el registro que debe revisar (sin navegar por menús)? 💡
Eso se logra con enlaces profundos (deep links) usando parámetros en la URL y leyéndolos dentro de la app con Param(). [learn.microsoft.com], [learn.microsoft.com]

1) ✨ ¿Qué es un “enlace profundo” (deep lining) en Power Apps?

Un enlace profundo te permite compartir una URL con esta forma:

https://apps.powerapps.com/play/{AppID}?{Query} [learn.microsoft.com]

Donde el Query incluye parámetros como parametro01=..., para que la app se abra con datos específicos en lugar de la pantalla inicial “por defecto”. [learn.microsoft.com]


2) 🔗 Estructura de URL (simple y múltiple)

✅ Un parámetro

https://apps.powerapps.com/play/{AppID}?parametroID=12

La app recibe parametroID al arrancar y puede abrir directamente la pantalla de detalle del registro. [learn.microsoft.com]

✅ Varios parámetros

Solo separa con & :

https://apps.powerapps.com/play/{AppID}?parametroID=12&screen=ventanaRegistro


Los parámetros se leen con Param() dentro de la app. [learn.microsoft.com], [learn.microsoft.com]

📌 Nota importante: Param distingue mayúsculas/minúsculas en el nombre del parámetro (debe coincidir exactamente). [learn.microsoft.com]


3) 🧠 ¿Cómo leer parámetros dentro de la app? (Param())

La función Param(«NombreParametro») obtiene el valor enviado en la URL y, si no existe, devuelve Blank(). [learn.microsoft.com]

Ejemplo (capturar parametroID):

If(
    Not(IsBlank(Param("parametroID"))),
    Set(parametroID, Param("parametroID"))

Esto permite guardar el parámetro en una variable y usarlo en la aplicación en Filter, LookUp, Navigate, etc. [learn.microsoft.com], [learn.microsoft.com]


4) 🎯 Controlar qué pantalla abrir (recomendado: StartScreen + OnVisible)

Microsoft muestra un patrón práctico para deep linking:

  1. En App.OnStart: guardar el parámetro en una variable. [learn.microsoft.com]
  2. En App.StartScreen: elegir la pantalla inicial según si el parámetro viene o no. [learn.microsoft.com], [learn.microsoft.com]
  3. En la pantalla de destino (OnVisible): cargar el registro con LookUp() usando el ID. [learn.microsoft.com]

Ejemplo basado en el patrón oficial:

App.OnStart

If(
    Not(IsBlank(Param("parametroID"))),
    Set(parametroID, Param("parametroID"))
);

[learn.microsoft.com], [learn.microsoft.com]

App.StartScreen

If(
    Not(IsBlank(Param("parametroID"))),
    ventanaRegistro,
    ventanaInicio
)

[learn.microsoft.com], [learn.microsoft.com]

DetailScreen1.OnVisible

If(
    Not(IsBlank(parametroID)),
    UpdateContext({varCuenta: LookUp(Cuentas, ID= parametroID)})
)

[learn.microsoft.com]

✅ Resultado: si llega parametroID, abres la ventana de registro y muestras el registro exacto. [learn.microsoft.com]


5) ⚙️ Detalles técnicos que te ahorran errores

  • Los valores de Param siempre llegan como texto, aunque el valor sea numérico; conviértelo si lo necesitas (ej.: Value() o GUID()). [learn.microsoft.com]
  • Si el parámetro tiene espacios o caracteres especiales, debe ir EncodeUrl (la documentación lo resalta). [learn.microsoft.com]
  • Los parámetros no cambian durante la ejecución: solo se actualizan si la app se recarga. [learn.microsoft.com]
  • Si abres la app desde móvil y ya estaba abierta, los parámetros podrían no refrescarse sin recarga. [learn.microsoft.com]
  • Hay palabras reservadas que no conviene usar como nombres de parámetros (por ejemplo tenantId, source, locale, etc.). [learn.microsoft.com]

✅ Casos de uso (rápidos y reales)

1) 📩 Envio de Email con el Link de la Aplicacion desde Power Automate → para abrir el registro correcto

  • Flujo detecta un cambio (SharePoint/Dataverse).
  • Envía un correo con link: ...?parametroID=20
  • El usuario entra directo a ventanaRegistro con el registro cargado. [learn.microsoft.com]

2) 💬 Envio de Link dentro de Mensaje de Teams → para abrir pantalla de aprobación

3) 🧭 Navegación guiada (modo “crear” o “editar”)

  • Parámetro mode=editar o mode=nuevo.
  • La app ajusta comportamiento (mostrar formulario en modo edición vs. creación). [learn.microsoft.com]

🧾 Conclusiones y recomendaciones

Deep links mejoran la experiencia y la adopción: menos clics, más contexto, más productividad.
✅ Para implementarlo con orden: [learn.microsoft.com]

  1. Define 1–3 parámetros estándar (ej.: screen, registroID/parametroID, mode). [learn.microsoft.com]
  2. Lee parámetros con Param() en el arranque y controla la entrada con StartScreen. [learn.microsoft.com], [learn.microsoft.com]
  3. Carga el registro en OnVisible de la pantalla destino. [learn.microsoft.com]
  4. Asegura consistencia: nombres exactos (case-sensitive) y valores codificados si corresponde. [learn.microsoft.com]

📚 Referencias oficiales

  • Create a canvas app with deep link to a specific screen — Microsoft Learn: https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/how-to/deep-linking [learn.microsoft.com]
  • Launch and Param functions (Power Fx) — Microsoft Learn: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-param [learn.microsoft.com]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

advanced-floating-content-close-btnBoton