#MicrosoftTeams + #MicrosoftFlow Parte 5

Que tal,

Gracias por todo el feedback que me han dado, y obviamente voy a hacerle caso a la comunidad y vamos a hacer ejemplos del día a día. Una vez dicho esto vamos a comenzar con la parte numero cinco de nuestra serie de interacción entre Microsoft Teams y Microsoft Flow.

Hoy vamos a ver un caso común, cuando tenemos que avisar que estamos enfermos a nuestro equipo y manager.

Que les parecería que con solo entrar a Teams y mencionar “@estoyenfermo” se haga un proceso automático con lo siguiente

  • Enviar correo electrónico a su manager
  • Enviar mensaje en Teams a su equipo de trabajo
  • Crear un evento en el calendario mostrando que no se encuentra laborando

Estaría excelente no? Obviamente ustedes pueden modificarlo y adaptarlo a sus necesidades, pero la idea es esa. Suena divertido no? Pues vamos a ver como podemos lograrlo.

Para que tengan una idea mas clara, así es como quedaría a grandes rasgos nuestro flujo.

  1. Se recibe un HTTP request (la mención a @estoyenfermo lanza el webhook para desencadenar todo)
  2. Obtiene la información de mi perfil
  3. Obtiene quien es mi manager
  4. Le envía un correo
  5. Se crea un evento
  6. Se envía un Mensaje en Teams.

image

El día de hoy vamos a hacer uso de Outgoing Webhook y Functions Apps para que todo esto funcione, así que apunten que viene algo interesante.

Primero vamos a crear nuestro Flow.

Vamos a crear uno nuevo desde cero, si, otra vez no haremos uso de plantillas.!

clip_image001

Y vamos a escribir “HTTP” en la barra de búsqueda.

clip_image001[5]

Y seleccionamos “When a HTTP request is received”

clip_image001[7]

Nos indicara que la URL para este request será creada después de que salvemos el Flujo, así que no nos preocupemos por eso (por ahora) y damos clic en “+New step”

clip_image001[9]

Escribimos “get my profile” en la barra de búsqueda, y seleccionamos la acción con el mismo nombre.

clip_image001[11]

Damos clic en “+New Step” y ahora escribimos “get my manager” en la barra de búsqueda y seleccionamos la acción con el mismo nombre

 clip_image001[13]

Para las acciones anteriores no necesitábamos modificar nada, pero para esta si, vamos a las opciones y donde dice User (UPN) y en contenido dinamico, buscamos la que nos dice “User Principal Name”.

Con esto estamos diciendo que busque con la informacion anterior (get my profile) quien en mi manager de acuerdo a mi UPN.

clip_image001[15]

Damos clic en el botón de + para agregar una nueva acción, escribimos en la barra de busqueda “Send an email” y seleccionamos la acción con el mismo nombre.

clip_image001[17]

Abrimos la acción, y ponemos los valores que nos pide.

En To, agregamos el atributo Mail de la búsqueda anterior (get my manager).

En subject, podemos agregar algo como “Me encuentro Enfermo”

Y en el body, escribí algo muy genérico. Ustedes pueden modificarlo a placer.

clip_image001[19]

Nuevamente agregamos una acción mas, esta vez vamos a poner en la barra de búsqueda “create a event” y seleccionamos. Luego vamos a configurarlo como se muestra.

Calendar ID. El calendario donde quieres que se cree el evento. Calendar es el calendario por defecto de Outlook 365.

Subject. El titulo del evento

Para start time y End Time , usaremos las expresiones. utcnow –  que es el tiempo de ese instante, y para endtime addhours, y ya podremos agregar cuantas horas durara el evento.

clip_image001[21]

Podemos crear una nueva acción o una paralela, yo seleccione que sea paralela.

clip_image001[23]

Y ahora vamos a crear el flujo para el mensaje de Microsoft Teams

clip_image001[25]

Seleccionamos “Post a Message” y llenamos los campos de acuerdo al Team y Canal donde queremos que el mensaje sea enviado, y tambien podemos configurar el mensaje a nuestro gusto.

clip_image001[27]

En este punto ya podemos salvar el flujo. Y regresamos al inicio para guardar la URL.

clip_image001[29]

Outgoing webhook

Ahora vamos a Teams para crear el Outgoing webhoook. Para ello vamos al Teams donde queremos que se llame a este flujo, damos clic en los 3 puntos para mas opciones y seleccionamos, Manage Team

image

Despues nos vamos al tab Apps, y en la parte inferior derecha vamos a ver “Create an outgoing webhook” damos clic

clip_image001[33]

clip_image001[31]

Vamos a llenarlo con las opciones que nos pide. (Call Back URL por el momento pongan la URL de Flow, pero OJO se cambiara en un paso posterior)

clip_image001[56]

IMPORTANTE:Cuando terminen de crearla , les enviara un mensaje con el token de seguridad, será la única vez que se los muestre, así que no lo cierren sin antes guardarlo. Además que es necesario para un paso posterior.

Les avisara que se ha agregado al Team.

clip_image001[46]

Crear Function App.

Nos vamos a nuestro portal de Azure. Y seleccionamos crear un nuevo recurso y buscamos Function App, vamos a crearla como Java Script.

clip_image001[37]

Ya que esta creada, y la abrimos. Vamos a elegir una plantilla. en este caso será un HTTP Trigger (igual que se hizo en Teams)

clip_image001[39]

Aquí vamos a hacer uso de GitHub (Agradecimiento y créditos totales de esta funciona a su creador Wictor Willen)

(https://gist.github.com/wictorwilen/8ac6f9c167d70e4774e20f3c39a47a55)

Tomamos su código como base, y hacemos unas modificaciones en lo siguiente.

Linea 4. Donde muestra ‘OUTGOING-WEBHOOK-SECRET’ vamos a reemplazarlo con el Token del Webhook. (aquel que les mencione no olvidaran guardar!)

Linea 5. Donde muestra ‘MICROSOFT-FLOW-URL’ vamos a reemplazarlo con la URL de HTTP de Flow.

Linea 22. El texto que se enviara como respuesta en Teams.

clip_image001[41]

Ya que copiaron el código, vamos a ejecutar en la consola lo siguiente.

npm install request –save

clip_image001[50]

y guardamos nuestra Function App. Cuando la guardemos no olvidemos obtener la direccion URL de la funcion.

clip_image001[52]

Editar Outgoing WebHook.

Recuerdan que les mencione que se modificaria el Callback URL del Webhook, entonces ya que tenemos la URL de la Function App, vamos a agregarla a nuestro Webhook.

clip_image001[54]

Ya que la guardamos, abrimos nuestro cliente de Microsoft Teams, y vamos al Team donde fue instalada.

Llamamos al webhook @estoyenfermo. Y nos regresara el siguiente mensaje.

clip_image001[58]

El Evento también se ha creado en el Calendario.

clip_image001[60]

Así como el mensaje en el canal de Teams.

clip_image001[62]

Y el correo a nuestro manager.

image

Espero que todo esto les sea de ayuda.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s