PowerAutomate, APIs y la receta para obtener información en Internet (y 1)

Javier Ferreiro
Anyone can Automate
5 min readOct 27, 2021

--

Hoy en AnyoneCanAutomate vamos a hablar de APIs, de qué son, para qué sirven… y lo más importante, cómo diseñar nuestros propios conectores personalizados para consumir desde nuestros flujos de Power Automate y a través de esas APIs información pública en Internet.

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

Designed by Dooder / Freepik

¿Que es una API?

Cada vez somos más las personas que nos estamos acostumbrando a acceder a servicios web para realizar todo tipo de gestiones, ¿verdad? Empezamos accediendo a nuestro correo, disfrutando de nuestra red social favorita, hasta completar trámites con la administración publica… Cuando el contenido es de índole privada, debemos introducir nuestras credenciales; si por el contrario accedemos a información pública, este paso no es necesario.

Bien, pues una API es un servicio web. Sucede que la interfaz de los servicios web que habitualmente consumimos (bing.com, wheather.com, nba.com) está diseñada para que accedamos personas, aunque a veces también lo logren robots como los que podemos crear con Power Automate Desktop. Mientras, las APIs son interfaces diseñadas específicamente para que accedan programas, como por ejemplo, flujos de Power Automate en su variante Cloud.

APIs de servicios Microsoft

Buena parte de los servicios Microsoft pueden invocarse a través de la denominada Graph API. Y esa es una de los grandes activos de Microsoft Power Automate: ofrecer a Citizen Developers la posibilidad de consumir de forma sencilla las funcionalidades más demandadas de la Graph API. Citizen Developers en su gran mayoría sin experiencia previa con lenguajes de programación tradicionales ni acceso a sus entornos de desarrollo.

A la izquierda, documentación del conector Microsoft Planner, con sus desencadenadores y acciones. A la derecha, documentación del API REST que el citado conector invoca por debajo

Fijaos que no hemos dicho: “Con Power Automate es más fácil consumir todas las funcionalidades que expone la Graph API”, pues esto sólo sucede con las funcionalidades más demandadas. Buscando un símil, la Graph API es como un restaurante que dispone en su carta de centenares de platos. Pero si en vez de estudiar la carta preguntamos al camarero, por muy buena que sea su memoria, apenas será capaz de recomendarnos una docena de ellos. Pues bien, el menú del restaurante sería la Graph API, y las recomendaciones del camarero los desencadenadores y acciones disponibles con Microsoft Power Automate.

¿Todos los conectores de Power Automate invocan un API por debajo?

Volviendo a los símiles culinarios, podemos comparar a las acciones de un conector que por debajo invoca un servicio vía API, con el conjunto de ingredientes más característicos de una tradición culinaria: así, el vinagre de Módena o la pasta; el jamón ibérico o el fuet; el wassabi; las tortas de maíz… los encuadraremos enseguida con tradiciones culinarias como la cocina italiana; española; japonesa o mexicana.

Pero en Power Automate no todos los conectores invocan servicios a través de APIs. El conector ‘Control’ (con acciones como ‘Condición’ -Condition-, o ‘Aplicar a cada uno’- Apply to each-), el conector ‘Operación de datos’ (con acciones como ‘Filtrar matriz’ -Filter array- o ‘Redactar’ -Compose-) son una suerte de ‘conectores ficticios’ que no invocan servicios vía API. Continuando con el símil, podríamos comparar las acciones encuadradas en este otro tipo de conectores con familias de utensilios de cocina.

Pero volvamos al tema de hoy. Las APIs.

APIs públicas

Veamos un ejemplo (creo) sencillo. Gender API es una API accesible públicamente, que podemos invocar de forma gratuita y sin necesidad de credenciales. Cada vez que le facilitemos un nombre de pila, Gender API nos devolverá:

  • el nombre facilitado,
  • una predicción del género: ‘masculino’ -male-, ‘femenino’ -female- pero también ‘desconocido’ -null- cuando no logra reconocer el nombre de pila,
  • una probabilidad de acierto de la predicción anterior, representada con valores numéricos en la horquilla entre 0.5 (máxima incertidumbre) y 1 (máxima fiabilidad),
  • un valor numérico que representa el número de registros que ha identificado en su corpus o base de datos de conocimiento (KDB) para predecir el resultado: a mayor es esta cifra, más confianza nos inspirará la predicción

¿Cómo la invocamos? En la infografía anterior veréis que podemos hacerlo desde nuestro navegador, nos basta con teclear una URL añadiendo el nombre de pila al final de ésta. En la imagen veréis cómo el resultado difiere si realizamos la prueba con los patrones ‘peter’ y ‘edurne’.

Estaréis de acuerdo conmigo en que la forma de introducir datos y de mostrar el resultado no parece diseñada por un equipo de Experiencia de Cliente (CX), pues lo normal sería incluir el nombre de pila en una caja de búsqueda, pulsar un botón y que se nos muestre el resultado de forma más visual.

¿Ahora entendéis por qué comparábamos las APIs con los servicios web? ¿Y a qué nos referíamos al afirmar que las interfaces de las APIs están pensadas para ser consumidas por programas, y no por personas?

Pues bien, a día de hoy el servicio proporcionado por la Gender API no cuenta con un conector de Power Automate. Sucede además que el directorio corporativo de nuestra organización (accesible a través del conector ‘Usuarios de Office 365’) no dispone de información de género, y en un caso de uso en el que estamos trabajando nos resultaría muy útil poder integrar ambas fuentes de datos.

Qué bien nos vendría poder contar con una acción que tome el siguiente aspecto…

… pero, ¿cómo?

Construyendo nuestro propio conector personalizado

Microsoft Power Automate permite construir nuestros propios conectores personalizados y dotarlos de cuantos desencadenadores y acciones consideremos oportuno. Al tratarse de nuestra primera experiencia, hemos escogido un servicio muy sencillo como el proporcionado por la Gender API, pues como hemos visto no precisa de autenticación y apenas necesitamos definir una acción.

La magia correrá por cuenta de una de las opciones del menú a nuestra derecha: ‘Datos’. Al pulsarlo, se abrirá un submenú en el que encontraremos la funcionalidad que andábamos buscando: ‘Conectores personalizados’ -Custom connectors-.

Llegados a este punto, y como suele ser habitual en este blog, tenemos una buena y una mala noticia.

¿La mala? Que esta artículo ya resulta demasiado extenso. ¿La buena? Que en nuestra cuenta @PowerNautas en Twitter continuamos compartiendo pequeños trucos con Power Automate. Y que tenemos ya casi lista la segunda entrega de esta miniserie, donde explicaremos paso a paso cómo hemos logrado diseñar nuestro primer conector personalizado.

¡Saludos, PowerNautas!

Lecturas recomendadas

--

--