Una de las posibilidades interesantes dentro de la plataforma de Power Automate es enviar posts directamente a un canal de Teams basado en un evento predeterminado según nuestras necesidades, por ejemplo, utilizando el módulo HTTP para enviar un POST a una URL predeterminada y poder así enviar esto a Teams.
Sin embargo, hace poco uno de nuestros clientes requería integrar un sistema propio para que de forma periódica actualizara dentro del canal información actualizada respecto al estado de un proceso específico.
Si bien podríamos tener alguien haciendo esto de forma manual, es una operación que no agrega valor a la compañía o podríamos enviar la información a través de Power Automate, el problema es que el iniciador (Trigger) de HTTP es Premium, por lo que algunos clientes no pueden utilizarlos.
La solución
Para poder automatizar la publicación de mensajes desde una REST API, utilizaremos los conectores Webhooks Entrantes de Microsoft Teams.
Paso 1
Procedemos a seleccionar Conectores en el menú del canal de Teams donde deseemos integrarlo:
Allí encontraremos el conector llamado Webhook Entrante, hacemos clic en Agregar y luego de nuevo en Agregar.
Paso 2
Procedemos a configurar el conector con la información solicitada, el nombre del conector es obligatorio, podemos escribir algo que nos facilite reconocer el Webhook más adelante.
Procedemos a dar clic en Crear.
Veremos que se ha creado la URL a la que enviaremos nuestros POST para publicar. Acto seguido, haremos clic en Listo.
El URL luce similar este:
https://outlook.office.com/webhook/a98f2885-a409-4093-9153-edc913724344@08257c73-9f33-4c9c-be00-ae8a5d25b6f2/IncomingWebhook/.....
Veremos la confirmación de la creación en el canal.
Paso 3
Crearemos una tarjeta de Teams utilizando la herramienta para generar tarjetas de Teams Play Ground (https://messagecardplayground.azurewebsites.net/).
Las tarjetas de acción de Teams permiten incluir texto, imágenes, menús para selección, entre otra variedad de elementos que nos permiten tener interacción con los participantes del grupo.
En la herramienta hemos creado un mensaje que luce así:
Lo que nos interesa, sin embargo, es el texto en formato JSON, el cual se puede copiar desde la herramienta, para nuestro caso luce así:
{
"@context": "https://schema.org/extensions",
"@type": "MessageCard",
"themeColor": "0072C6",
"title": "Mensaje de prueba de **DATTICS** para Teams",
"text": "Haga clic en **dattics.com** para visitar nuestro sitio web!",
"potentialAction": [
{
"@type": "ActionCard",
"name": "Enviar comentarios",
"inputs": [
{
"@type": "TextInput",
"id": "feedback",
"isMultiline": true,
"title": "Cómo le parece esta solución?"
}
],
"actions": [
{
"@type": "HttpPOST",
"name": "Enviar",
"isPrimary": true,
"target": "http://..."
}
]
},
{
"@type": "OpenUri",
"name": "dattics.com",
"targets": [
{
"os": "default",
"uri": "https://www.dattics.com/"
}
]
}
]
}
Paso 4
Procederemos a probar el Webhook con Postman, es claro que cada desarrollador utilizará el Webhook y los payloads JSON de acuerdo con el requerimiento propio de cada empresa.
Si todo está en el formato correcto de acuerdo con los lineamientos de Microsoft (https://docs.microsoft.com/en-us/outlook/actionable-messages/message-card-reference), podremos ver nuestro mensaje en el canal de Teams.
Las respuestas podemos igualmente vincularlas a acciones REST para integrarlas con Power Automate, soluciones de terceros o soluciones personalizadas.