Power Automate y el truco para compartir enlaces dinámicos

Javier Ferreiro
Anyone can Automate
7 min readOct 4, 2021

--

Hoy en AnyoneCanAutomate vamos a poner el foco en un caso de uso muy particular: alguien comparte un archivo en un canal en Microsoft Teams del que formamos parte, y queremos automáticamente recibir una notificación (también por Teams) con un enlace a ese mismo archivo. Un enlace que podamos pulsar y que nos dé acceso al archivo en cuestión, se entiende.

Designed by Dooder / Freepik

¿Cuáles serán nuestros principales retos? Que en tiempo de diseño de nuestro Flow no conocemos todavía el enlace que notificaremos… y que para lograr que el enlace se pueda pulsar deberemos familiarizarnos con el lenguaje de programación de las páginas web: el HTML.

Este caso de uso nos servirá además de excusa para reflexionar en torno a las sutiles diferencias que presenta Microsoft Teams a la hora de compartir archivos en Chats y Canales, en especial en lo que se refiere al repositorio donde permanecerá almacenado el archivo.

No nos enredamos más, ¡al lío!

Archivos en Teams, Onedrive y Sharepoint

Cada vez que compartes un archivo en un chat de Teams, ya sea un chat 1–1, un chat de grupo o un chat asociado a la convocatoria de una reunión, ese archivo se almacena automáticamente en tu cuenta de OneDrive4Business corporativa, y por defecto se le asignan permisos para que el resto de participantes en el chat puedan acceder a él. Insisto en lo de por defecto… recordad que en cualquier momento podemos modificar la política de permisos que aplica a cada archivo de OneDrive.

Sin embargo, cuando publicas un archivo en el canal estándar de un equipo Teams (me refiero a aquellos canales que no son privados), el archivo se alojará automáticamente en el sitio Sharepoint vinculado a ese equipo Teams. Y es que, cada vez que se da de alta un equipo en Teams, se crea un sitio Sharepoint asociado y exclusivo para ese equipo.

¡Recuerda! Existe un sitio de Sharepoint dedicado por cada equipo de Microsoft Teams

Es importante recalcar que:

  • en un sitio Sharepoint pueden existir un número de Bibliotecas indeterminado; algunas de ellas se crean por defecto en el momento de su creación, tal es el caso de la biblioteca ‘Documentos’ -Shared Documents-; y
  • cada vez que se crea un canal estándar en un equipo de Teams, automáticamente se crea una ‘carpeta’ -folder- con el mismo nombre del nuevo canal, carpeta que se ubicará en la citada biblioteca ‘Documentos’ -Shared Documents-. Los archivos compartidos en un canal se almacenarán automáticamente en la ‘carpeta’ -folder- de ese canal.

Los permisos que aplicarán por defecto a ese nuevo archivo permitirán el acceso al mismo a todos los componentes del equipo de Teams con diferentes privilegios de acceso (administración, edición, vista)… pero si lo juzgan necesario, los administradores de la biblioteca podrán modificar esa política en cualquier momento.

Desencadenando un Flow al publicar nuevos archivos en Teams

A la fecha de publicación de este artículo, desaconsejamos tratar de automatizar tareas con Power Automate cuando otro participante comparte un archivo en un chat de Teams: los desencadenadores del conector ‘OneDrive4Business’ únicamente permiten monitorizar la creación de archivos en nuestro propio OneDrive… y el archivo en cuestión se alojará en el OneDrive del participante que lo publicó.

ESta limitación no existe si trabajamos con canales en equipos Teams de los que formemos parte: el conector de Sharepoint nos ofrecerá varios desencadenadores que nos alerten de nuevos archivos en el canal, no importa quién los haya compartido.

¿Varios? Tras revisar concienzudamente las salidas proporcionadas por las distintas alternativas, aconsejamos utilizar el desencadenador ‘Cuando se crea un archivo (sólo propiedades)’ -When a file is created (properties only)-.

Para configurar las entradas de este desencadenador, necesitaremos seleccionar:

  • la ‘Dirección del sitio’ (que coincide con el nombre del equipo de Microsoft Teams al que pertenece el Canal),
  • el ‘Nombre de la biblioteca’, que recordemos es ‘Documentos’ -Shared documents-, y
  • la ‘Carpeta’ que queremos monitorizar, que podremos localizar pulsando en el icono a la izquierda, y cuyo nombre coincide con el nombre del canal donde esperamos que otros componentes del equipo publiquen archivos.

En nuestro ejemplo, monitorizaremos los archivos compartidos en el canal ‘General’ de un equipo.

Notificándome a mí mismo por Teams

Como en un videojuego, tras resolver un reto y sin solución de continuidad se nos presenta otro ¿cómo puedo enviarme mensajes a mí mismo en Teams?

La magia correrá por cuenta del bot de Flow, al que pondremos a nuestro servicio a través de la acción ‘Publicar mensaje en un chat o canal’ -Post a message in a chat or channel’.

Según añadamos este nuevo paso al diseño de nuestro Flow, nuestro siguiente reto consistirá en elegir valor para la entrada ‘Publicar como’

Para implementar el escenario de hoy nos inclinaremos por la opción ‘Flow bot’. ¿La razón? Quiero notificarme sólo a mí, y tal y como podemos ver en la infografía anterior, a día de hoy sólo lo lograré mediante la opción ‘Chat with Flow bot’ de la entrada ‘Publicar en’.

Una vez asignado valor a estas dos entradas, nuestra acción se expanderá, mostrándonos dos entradas adicionales: ‘Recipient’ y ‘Message’

Para asignar valor a la entrada ‘Recipient’, basta con incluir una dirección de correo electrónico registrada en nuestro directorio de Azure AD: los emails de nuestra organización, y los de ‘invitados’ -guests- a equipos de Teams.

Fijaos que en el reto de hoy, me interesa incorporar mi propia dirección de correo, pues seré yo quien recibirá las notificaciones. Bastaría por tanto con que la teclee, pero… de forma alternativa también podría añadir un bloque de acción como paso inmediatamente anterior para recuperar la dirección de correo electrónico de quien ejecuta el Flow. Nosotros nos hemos inclinado por esta última opción, incorporando la acción ‘Obtener mi perfil’ -Get my profile- del conector ‘Usuarios de Offce 365’ -Office 365 users’.

¿Cómo? ¿Que es la primera vez que oyes hablar del conectos ‘Usuarios de Office 365’? En ese caso encontrarás más información sobre él en:

El enlace al nuevo archivo

Si escogimos el desencadenador a conciencia de entre diversas opciones, es porque nos facilita un sinfín de salidas, y al menos dos de ellas nos resultarán clave para resolver nuestro reto de hoy:

  • El nombre del archivo recién publicado, y
  • Un enlace al archivo válido para cualquier persona asignada al equipo Teams donde se publicó

¿Qué ocurre si añadimos ambas salidas al cuerpo de nuestra notificación, guardamos nuestro Flow, y a continuación publicamos un archivo de prueba en el canal que hemos escogido monitorizar?

Pues que ya tenemos casi resuelto nuestro caso de uso, a falta de un pequeño detalle.

Un enlace que sí podamos pulsar

Como se aprecia en la infografía anterior, el Flow de Bot me envía un mensaje de chat 1–1 con el nombre del nuevo archivo y la URL para acceder a él, solo que… no puedo pulsar ésta.

La magia en esta ocasión correrá a cargo del modo de edición HTML. ¡Atención a la infografía!

Si no estás familiarizad# con el formato HTML, es muy probable que lo que veas sea un galimatías. No te preocupes, porque dos sencillos cambios serán suficientes para resolver nuestro reto:

  • el primero, justo delante del contenido dinámico ‘Vínculo al elemento’ sustituiremos el patrón Enlace: por <a href=" , asegurándonos de no dejar ningún espacio en blanco entre el nuevo patrón y nuestro contenido dinámico
  • el segundo, justo a continuación del contenido dinámico ‘Vínculo al elemento’, sustituiremos el patrón </p> por este otro ">Enlace</a></p> asegurándonos también de no dejar ningún espacio en blanco entre el nuevo patrón y nuestro contenido dinámico

Guardamos nuestro nuevo diseño, repetimos la prueba y…

Como suele pasar en AnyoneCanAutomate, tenemos una buena y una mala noticia.

¿La buena? ¡Que si habéis seguido al pie de la letra los pasos, la notificación por fin incluirá un enlace que podemos pulsar!

¿La mala? Que si accedmos de vuelta a la consola de edición de Power Automate y en nuestra acción ‘Publicar mensaje en un chat o canal’ tratamos de regresar a la vista inicial, no podremos: el editor de Power Automate nos ha dejado encadenados a la vista HTML de por vida… sortilegio que sólo podremos romper eliminando los patrones <a href=" y ">Enlace</a> con los que hemos rodeado a nuestro enlace.

Y es que, como decía Oswood, nadie es perfecto

¡Saludos, PowerNautas!

--

--