Power Automate: Microsoft Teams, una guía completa sobre aprobaciones

Cuando trabajamos con Power Automate y Microsoft Teams llega a surgir la duda de dónde deberían ocurrir las aprobaciones. ¿En un canal de equipo? ¿Deberían los miembros del equipo poder responder o solo los dueños? ¿Sería mejor optar por un mensaje privado? Son el tipo de cosas que deberemos preguntarnos cuando empezamos a planear el proceso de aprobación y una vez sepamos las respuestas a esas preguntas podremos elegir el método correcto para implementar las aprobaciones.

Si bien podemos encontrar formas en que podemos implementar aprobaciones para ordenes en Teams, en realidad hay muchas más opciones a considerar respecto al manejo de información y la forma de implementar aprobaciones basadas en Teams, por lo que una entrada de dos partes sobre el tema nos será más útil.

El día de hoy veremos algunas de las opciones disponibles, mas adelante hablaremos de qué tipo de problemas podemos encontrar y qué hacer para solucionarlos (haz click aquí para verlos). Para darnos una mejor idea, esto será lo que cubriremos:

  •  1. Dos formas de implementar aprobaciones de ámbito de equipo en Power Automate
    •   Crear una aprobación, enviar la carta adaptativa y esperar por una aprobación; todo por separado
    •   Publicar una carta adaptativa en un canal de Teams y esperar por una respuesta; todo en uno

Cuando digo «aprobaciones de ámbito de equipo» me refiero a aprobaciones que son visibles para todos los miembros del equipo en un canal de equipo. Power Automate nos ofrece dos formas de enviar cartas de aprobación adaptativas a canales de Teams:

  1.  Crear una aprobación primero, enviar la carta adaptativa generada de manera automática a Teams usando la acción «Send your own adaptive card as the Flow bot to a channel» y detenernos a esperar por una aprobación
  2.  Usar la acción «Post an adaptive card to a Teams channel and wait for an approval» para hacer todos los pasos a la vez

Hay algunas diferencias individuales entre estos métodos. Primero echemos un vistazo a crear, enviar y esperar por la aprobación por separado y después de eso lo vamos a comparar con la acción «post and wait for a response».

CREAR UNA APROBACIÓN, ENVIAR LA CARTA ADAPTATIVA Y ESPERAR POR UNA RESPUESTA; POR SEPARADO

Este método consiste en tres acciones fundamentales separadas:

  • Crear una aprobación,
  • Enviar nuestra propia carta adaptativa como el Flow bot a un canal, y
  • Esperar por una aprobación.

Una de las cosas buenas sobre poder hacer todos estos pasos por separado es que nos permite hacer otras acciones en medio de estas si así lo requerimos.

Crear una aprobacion

A continuación tenemos una imagen de la acción «Create an approval«. Aquí definiremos cómo es que se verá la carta de aprobación adaptativa y por quién y cómo es que la aprobación será manejada.

Power Automate Teams aprobaciones 1

La información introducida en los campos estarán disponibles en la carta adaptativa. Cuando se trata de los detalles de campo, existe una sintaxis específica que podemos usar para darle estilo al contenido. Es la misma sintaxis que usaríamos para estilizar control de contenido TextBlock en nuestras cartas adaptativas personalizadas.

Por lo general tendemos a usar la opción «first response applies». El propósito de tener varias personas como los aprobadores es el de tener un respaldo en caso de que alguien no pueda responder. En este caso, cualquiera de los aprobadores puede decidir por cuenta propia, aunque pueden haber situaciones en las cuales es necesario que todos estén de acuerdo antes de que una petición sea aprobada.

Solo las personas de quienes sus direcciones de correo sean incluidas en el campo «Assigned to» pueden manejar las aprobaciones. Cuando queremos que el equipo entero pueda hacer esto, es algo directo e intuitivo definir a los aprobadores. Simplemente necesitamos guardar las direcciones de correo de todos los miembros del equipo a una variable, separada por un punto y coma (;). Entonces podemos usar esa variable en el campo «Assigned to» como vimos en la imagen de arriba.

ENVIAR LA CARTA ADAPTATIVA

La acción «Create an approval» automáticamente nos genera la carta adaptativa JSON con base en la información que hemos usado en las configuraciones de la acción. Para enviar la carta adaptativa a Teams necesitamos especificar la ID del equipo, la ID del canal y la carta adaptativa generada en la acción «Send your own adaptive card as the Flow bot to a channel».

NOTA: Es recomendable tener las configuraciones específicas de entorno (como las IDs de canal y equipo) en variables al inicio de nuestro flujo. De esta forma será fácil configurar ajustes cuando movemos el flujo entre entornos.

Power Automate Teams aprobaciones 2

ESPERAR POR UNA RESPUESTA

Cuando la carta adaptativa haya sido enviada al canal de equipo, necesitamos usar la acción «Wait for an approval» para parar y esperar por una respuesta. Para eso, solo necesitamos proveer la ID de aprobación generada por la acción «Create an approval».

La última pieza fundamental que necesitamos en nuestro flujo de aprobación es una condición que dirige la ejecución a la rama correcta en base a la respuesta. Nosotros decidimos lo que queremos hacer en base al resultado de la aprobación. Las opciones de resultado son Aprobar y Rechazar

PUBLICAR UNA CARTA ADAPTATIVA A UN CANAL DE TEAMS Y ESPERAR POR UNA RESPUESTA; TODO EN UNO

El método que usamos arriba solía ser la única opción en el pasado. Hoy también tenemos la acción «Post an adaptive card to a Teams channel and wait for a response». Pero entonces, «¿por qué tener dos formas distintas de hacer la misma cosa?» Y «¿en qué difieren estos métodos el uno del otro?»

Post an adaptive card to a Teams channel and wait for a responseSend your own adaptive card as the Flow bot to a channel
no especificamos quién tiene los permisos para manejar la aprobación. Cualquiera que tenga acceso al canal de equipo puede aprobar la petición.especificamos un subconjunto de miembros del equipo para que puedan aprobar las peticiones
necesitamos crear una carta adaptativa completamente desarrollada para enviarsolo necesitamos especificar contenido de marcado simple y entonces la acción generará la carta adaptativa por ti. Requiere más trabajo de nuestra parte, pero a la vez nos da más control
se nos recomienda especificar un mensaje de actualización para mostrar luego de que alguien dé click en los botones. De otro modo, la carta continuará mostrando los botones incluso si el aprobador ya se ha hecho cargola carta será actualizada automáticamente con la información de quien responde, la salida y comentarios
no tenemos una opción para esperar a que todos respondan o para mostrar notificaciones sobre nuevas peticiones de aprobacióntenemos una opción para esperar a que todos respondan o para mostrar notificaciones sobre nuevas peticiones de aprobación
Tener más control sobre las cartas adaptativas que queramos mostrar.Nos ofrece más control sobre las otras funciones relacionadas a la aprobación

Como mencionamos anteriormente, la acción nos ofrece más control sobre la carta adaptativa y qué tipo de mensaje queremos mostrar luego de que alguien envíe una respuesta. Aun así, esto requiere más trabajo de nuestra parte. Necesitamos crear el JSON de la carta adaptativa por nuestra cuenta mediante, por ejemplo, el uso del Diseñador y definir el mensaje de actualización en vez de que la acción «Crear an approval» haga todo por nosotros.

Power Automate Teams aprobaciones 3

Si no especificas el mensaje de actualización, solo el mensaje de quien responde será mostrado en la carta, y si no optamos por actualizar la carta en lo absoluto, esta seguirá viéndose igual incluso si alguien ha manejado la aprobación, lo cual no es una opción real ya que esto puede llevar a confundir la experiencia del usuario.

Un JSON de ejemplo se ve así:

{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Large",
            "weight": "Bolder",
            "text": "Approval for team "@{variables('DisplayName')}""
        },
        {
            "type": "TextBlock",
            "text": "Requested by @{triggerBody()?['Author']?['DisplayName']} <@{triggerBody()?['Author']?['Email']}>"
        },
        {
            "type": "FactSet",
            "facts": [
                {
                    "title": "Date created",
                    "value": "@{triggerBody()?['Created']}"
                },
                {
                    "title": "Link",
                    "value": "[View order](@{triggerBody()?['{Link}']})"
                }
            ]
        },
        {
            "type": "TextBlock",
            "text": "- **Requestor**: @{triggerBody()?['Author']?['DisplayName']}n- **Team name**: @{variables('DisplayName')}n- **Description**: @{triggerBody()?['Description']}n- **Category**: @{triggerBody()?['Category']?['Value']}n- **Visibility**: @{triggerBody()?['Visibility']?['Value']}n- **Allow external users**: @{if(triggerBody()?['Allowexternaluserstogetinvitedto'],'Yes','No')}n- **Co-owner(s)**: @{join(variables('Owners'),', ')}"
        },
        {
            "type": "Input.Text",
            "placeholder": "Enter comments",
            "isMultiline": true,
            "id": "Comments"
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.Submit",
                    "title": "Approve",
                    "id": "Approve"
                },
                {
                    "type": "Action.Submit",
                    "title": "Reject",
                    "id": "Reject"
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

Si así lo deseamos, es posible auto-crear una carta de apariencia muy similar a la que la acción «Create an approval» crea por nosotros, pero esta puede hacerse mucho más compacta sin el logo de Power Automate en la parte superior y requerir menos clics para enviar una respuesta con comentarios.

Cualquier duda, nos leemos abajo.

Power Automate: Microsoft Teams, una guía completa sobre aprobaciones
Scroll hacia arriba