Cómo manejar enlaces con espacios y caracteres especiales en Approvals

Si trabajas con Power Automate y usas la acción de Approvals, seguramente te has topado con este problema: incluyes un enlace en Markdown, pero al tener espacios en blanco o ciertos caracteres especiales, el enlace simplemente no funciona. ¿La solución? Codificar correctamente la URL.

¿Por qué falla el enlace?

Markdown espera que las URLs estén codificadas según el estándar URL encoding. Esto significa que ciertos caracteres deben ser reemplazados por su equivalente en formato %XX, donde XX es el valor hexadecimal del carácter.

Por ejemplo:

  • Espacio en blanco → %20
  • Ampersand (&) → %26
  • Comilla simple (') → %27
  • Slash (/) → %2F
  • Coma (,) → %2C
  • Dos puntos (:) → %3A
  • Signo de interrogación (?) → %3F
  • Igual (=) → %3D

¿Cómo codificar enlaces en Power Automate?

Si estás generando enlaces dinámicos en Power Automate, puedes usar la función replace() para sustituir los caracteres problemáticos. Aquí tienes un ejemplo para espacios:

replace(triggerOutputs()?['body/NombreDelCampo'], ' ', '%20')

Pero si quieres ir más allá y codificar múltiples caracteres, puedes encadenar varias funciones replace():

replace(
  replace(
    replace(
      replace(triggerOutputs()?['body/NombreDelCampo'], ' ', '%20'),
    '&', '%26'),
  "'", '%27'),
'/', '%2F')

Consejo: Si el enlace contiene muchos caracteres especiales, considera usar una función personalizada o una expresión más robusta en Azure Functions o una acción HTTP con codificación automática.

Ejemplo práctico en Markdown para Approvals

Supongamos que tienes este enlace:

https://miempresa.com/documentos/Plan de acción & seguimiento

Si lo colocas directamente en Markdown, fallará. Pero si lo codificas correctamente:

[Ver documento](https://miempresa.com/documentos/Plan%20de%20acción%20%26%20seguimiento)

¡Funciona perfecto!

Tabla de codificación rápida

CarácterCodificación
Espacio%20
&%26
%27
/%2F
,%2C
:%3A
?%3F
=%3D

Función personalizada para codificar URLs en Power Automate

replace(
  replace(
    replace(
      replace(
        replace(
          replace(
            replace(
              replace(
                replace(
                  replace(
                    replace(
                      replace(
                        replace(
                          replace(
                            replace(
                              [TuTextoAquí],
                              ' ', '%20'),
                            '&', '%26'),
                          '''', '%27'),
                        '/', '%2F'),
                      ',', '%2C'),
                    ':', '%3A'),
                  '?', '%3F'),
                '=', '%3D'),
              '#', '%23'),
            '+', '%2B'),
          '"', '%22'),
        '<', '%3C'),
      '>', '%3E'),
    '[', '%5B'),
  ']', '%5D')

¿Cómo usarla?

  1. Reemplaza [TuTextoAquí] por el campo que contiene tu URL o texto dinámico.
  2. Puedes usar esta expresión dentro de una acción Compose, Set variable, o directamente en el cuerpo de Markdown en Approvals.
  3. Si tu enlace está construido con varios fragmentos, aplica esta función a cada parte antes de unirlos.

¿Por qué es útil?

  • Evita errores de renderizado en Markdown.
  • Asegura que los enlaces funcionen correctamente en correos, aprobaciones y notificaciones.
  • Compatible con nombres de archivos, rutas, parámetros de búsqueda y más.

Post asistido por IA

Deja un comentario