#Flow – Ahora con edición en equipo, sharing y mas !

Hola !

Hace un par de días se anunció una funcionalidad muy interesante para Microsoft Flow: “Teams Flows”. Ahora cuando creamos o editamos un Flow tenemos la capacidad de compartir el mismo con otras personas o con grupos de usuarios. En la siguiente imagen podemos ver que tenemos una nueva acción de Teams en la lista de Flows.

clipboard03

Al momento de editar el Flow, podemos agregar nuevas personas en formato de Owners. Esto les permite editar y colaborar con el Flow. Además de poder ver las ejecuciones del mismo.

clipboard05

Supongo que aquí sería ideal tener un nuevo nivel de grupos para un grupo que solo pudiese ver la ejecución de los Flows pero no editar los mismos.

Con respecto a la edición compartida hay un escenario que es importante tener en cuenta. Supongamos que yo creo un Flow en el que uso una conexión a un repositorio de Sharepoint, en una acción posterior necesito interactuar con información de Dynamics CRM, pero mi cuenta no posee permisos para esta acción. En este punto puedo invitar a colaborar a una persona con permisos, y esa persona podrá utilizar sus credenciales para crear la conexión con CRM. En este momento el Flow utiliza 2 cuentas de usuarios diferentes para 2 acciones diferentes. Lo importante a tener en cuenta, es que cada editor solo puede utilizar y modificar las conexiones que estan asociadas a su cuenta. De esta forma, se abre un nuevo abanico de posibilidades donde personas con diferentes roles pueden crear Flows más complejos y colaborativos.

Finalmente, esta feature solo está disponible para las versiones de pago de MS Flow.

Saludos @ Vancouver

El Bruno

References

Advertisements

#Flow – Calling a Flow from a #CSharp ConsoleApp

Hello!

A couple of days ago I wrote a post where I shared how to use a Http Request as a trigger to be able to invoke a Flow definition from an external App (link). Today I´ll share an example with a bit of C# code to launch a Flow.

Let’s start with the definition of the Flow with 4 steps

  • Request
  • Create a file in OneDrive for Business with the contents of the Body that is received
  • Send a Push Notification
  • Return a code HTTP 200 in the Response

Clipboard06.jpg

Remember to copy the Url to invoke the flow. A sample C# source code may be similar the following image:

clipboard08

A couple of notes

  • Lines 10 to 15, create a JSON message from a C# class
  • With the body converted to JSON, I use JsonSchema.Net to create the Schema that I then add to the definition of the Flow
  • Lines 17 to 22, made the call to the Flow using RestSharp (link)

Ready! Our Flow Console App is complete and now we can run the app to call the Flow. Once the Flow is invoked we can see how the process triggers a notification to our device, with the link for access to the Url of the message!

clipboard01clipboard02

The sample code can be downloaded from here (link)

Greetings @ Toronto

El Bruno

References

#Flow – Invocando un Flow desde una ConsoleApp en #CSharp

Hola !

Hace un par de días escribí un post donde comenté como utilizar un trigger del tipo Http Request para poder invocar una definición de Flow desde apps externas (link). Hoy completaré el ejemplo con un poco de código C# para lanzar una instancia del Flow.

Comencemos con la definición del Flow. En este caso son 4 pasos

  1. Request
  2. Crear un archivo en OneDrive for Business con el contenido del Body que se recibe
  3. Enviar una Push Notification
  4. Retornar un código HTTP 200 en el Response

Clipboard06.jpg

Una vez apuntada la Url para invocar este flow, el código C# a utilizar puede ser similar el siguiente

clipboard08

Y un par de notas

  • Líneas 10 a 15, creo un mensaje Json a partir de unas clases C#
  • Con el body convertido a Json, utilizo JsonSchema.Net para crear el Schema que luego agrego a la definición del Flow.
  • Líneas 17 a 22, realizo la llamada al Flow utilizando RestSharp (link)

Listo ! Nuestro flow está completo y además ya podemos lanzar el mismo. Una vez invocado podremos ver cómo nos llega una notificacion a nuestro device, con el link para acceder a la Url del mensaje !

clipboard01clipboard02

El código de ejemplo se puede descargar desde aquí (link)

Saludos @ Toronto

El Bruno

References

#Flow – Push Notification support

hI !

One of the bet features in Microsoft Flow is the Push Notification support. To receive notifications in our device, we only need to have the Flow app installed, that’s it.  And then, we can add notification capabilities in any of our Flows.

Let’s see a simple flow, with 2 steps:

  • The flow will be triggered using a button in the Flow App
  • Then a notification will be sent to the user device with some user information

The real time execution of the flow will be similar to this one

2017-02-02-flow-push-notification-01

When we click the button, the notification arrives. It’s very easy.  The Flow definition is also very simple, a trigger and an action.

clipboard02

And when we read the execution log, we realices that Flow only uses the information required by the Flow:displayName.

clipboard02

In future posts, I’ll show how to add some user input in a Flow definition, when we use a Button as a trigger.

Greetings @ Toronto

El Bruno

References

#Flow – How to review a flow process (including some errors with German description!)

Hello!

If you have a development background, and you are starting with Flow, one of the first questions that you ask yourself is: where is the execution log?. Flow is very committed to the idea of “keep it simple“, so let’s take a look at this:

  • We select our flow and click on the Info button.

clipboard03

  • Now we can see all process of our flow. This includes the succeess and the failures which have triggered an error.

clipboard05

  • If we select a process with an error, we will see the steps that were executed in the flow. In the next picture, we can see that the trigger of the Flow has been executed fine. Then the integration with Excel failed. This error has prevented from running the 3rd action.

clipboard07

  • If we expand any action, we will see a bit of contextual information about the execution of the action. For example, in the image below we can see that the Output of the execution message is in German.

clipboard09

I don’t know much German, small enough to understand that this message says something similar to:

It is necessary to specify a value for the element.

Note: Now we work with Cloud models, where the execution is done in a DataCenter’s somewhere around the world … that’s makes these scenarios at least very funny! 😀

This leads me to review the definition of the Flow, and indeed I find that one of the values in the Excel sheet was not well defined:

clipboard02

Once solved the problem, I may have to process the data on this flow. We can do this by review the log marked with an error.

Personally, expected a little more than information. However, by now knowing how to work the parts of integration of Flow, I got enough information to be able to take forward errors of definition in the Flows.

Greetings @ Toronto

El Bruno

#Flow – Analizando el proceso de un Flow (errores en alemán incluidos!)

Hola !

Si tienes un background de desarrollo, y comienzas con Flow, una de las primeras cuestiones que te planteas es, ¿dónde está el log de ejecución?. Siguiendo la línea de “keep it simple” de Flow, lo que podemos hacer para ver un log es lo siguiente:

  • Seleccionamos nuestro flow y presionamos sobre el botón de informacion.

clipboard03

  • Aquí podremos ver todo el estado de proceso de nuestro flow. Esto incluye los procesos ejecutados correctamente y los que han disparado un error.

clipboard05

  • Cuando seleccionamos un proceso con un error, podremos ver los pasos que se han ejecutado en el mismo. En la siguiente imagen, podemos ver que el trigger del Flow se ha ejecutado correctamente. Luego ha fallado una integración con Excel. Este error ha impedido que se ejecute la 3ra acción.

clipboard07

  • Si expandimos cualquier acción, podremos ver un poco de información de contexto sobre la ejecución de la misma. Por ejemplo, en la siguiente imagen podemos ver que el Output del mensaje de ejecución está en alemán.

clipboard09

Yo no sé mucho alemán, pero si lo suficiente para comprender que este mensaje dice algo similar a :

Es necesario especificar un valor para el elemento.

Nota: Ahora trabajando con modelos Cloud, donde la ejecución se realiza en el DataCenter de turno, hace que estos escenarios sean divertidos como poco ! 😀

Esto me lleva a revisar la definición del Flow, y efectivamente encuentro que uno de los valores a guardar en la hoja Excel no estaba bien definido

clipboard02

Una vez solucionado el problema, tengo la opción de volver a procesar los datos de este proceso, revisando la entrada que marcó el error.

Personalmente, esperaba un poco más de información. Sin embargo, por ahora conociendo cómo funcionan las partes de integración de Flow, me ha sido suficiente para poder sacar adelante los errores de definición en los Flows.

Saludos @ Toronto

El Bruno

#Flow – How to invoke a Flow from an external app using HTTP Request

Hello!

In addition to the Out-Of-The-Box triggers included in Flow, we also have the chance to invoke a flow using an HTTP POST call. There is a post on the Flow’s blog, “Calling Microsoft Flow from your application” (link), which explains this very weel. I’ll write some of the basic steps of a common scenario.

We need to start from a blank template, the first step we will add will be a trigger of type “Request / Response”.

clipboard01

This type of trigger allows us to define a JSON schema with the fields for our call. Then we can use it in the following step of the Flow. Using jsonschema.net, I will create a simple example with 2 fields: filename and filecontent.

clipboard03

Then we copy the generated schema in the request definition. In the next step, I will create a new file in OneDrive with part of the content of the Request. As we can see in the image below, Flow parser analyzes the schema and presents us with the possibility of using the filename and filecontent fields.

Clipboard04.jpg

Finally, we add a Response action to complete the flow call. Here we also use the dynamic properties to select Headers and Body. If we want return a custom Body, the dynamic properties can be used to create it.

clipboard06

When we save the Flow definition, in the trigger Request we will find the URL we well use to make the calls. This is the time of copying this URL.

clipboard29

Finally, to emulate calls will use a classic app: Google, Postman Chrome App. Using the URL and the schema JSON make a request and we can see the result of it.

clipboard32

And, if we are to OneDrive, we can see the file created with the content that we have used in the request.

clipboard34

This is a very simple way to create and invoke flows!

Greetings @ Toronto

El Bruno

References

#Flow – Cómo invocar un Flow desde una app externa via HTTP Request

Hola !

Una de las ventajas que posee Flow, es que además de los triggers que vienen Out-Of-The-Box, también tenemos la capacidad de invocar al mismo utilizando una llamada HTTP POST. En el blog de Flow, hay un post “Calling Microsoft Flow from your application” (link), donde se comenta cómo realizar esto de manera completa. Yo partiendo de ese escenario comentaré los pasos más importantes.

Partiendo de un template en blanco, el primer paso que agregaremos será un trigger de tipo “Request / Response”.

clipboard01

Este tipo de trigger nos permite definir un schema JSON con los campos para nuestra llamada. Luego podremos utilizar el mismo en los siguientes paso del Flow. Utilizando jsonschema.net, crearé un ejemplo simple con 2 campos: filename y filecontent.

clipboard03

El schema generado, es el que copiaré en la definición del request. En el siguiente paso crearé un nuevo archivo en OneDrive con parte del contenido del Request. Como podemos ver en la siguiente imagen, el parser de Flow analiza el schema y nos presenta la posibilidad de utilizar los campos filename y filecontent.

Clipboard04.jpg

Finalmente, añadimos una acción de tipo Response para completar la llamada.Aquí también utilizamos las dynamic properties para seleccionar Headers y Body. En el caso que querramos retornar un Body especial, podemos utilizar la dynamic properties para crear el mismo.

clipboard06

Cuando grabamos la definición de este Flow, el trigger Request, completará la url donde tendremos que realizar las llamadas. Este es el momento de copiar esta URL.

clipboard29

Finalmente para emular las llamadas utilizaremos una app clásica: Google, Postman Chrome App. Utilizando la URL y el schema JSON realizamos una petición y podemos ver el resultado de la misma.

clipboard32

Y, si vamos a OneDrive, podremos ver el archivo creado con el contenido que le hemos pasado en la petición.

clipboard34

La verdad es que es una forma muy simple de realizar pequeños flujos que luego podremos llamar de nuestras Apps.

Saludos @ Toronto

El Bruno

References

#Flow – Email Sentiment Analysis on a #PowerBI dashboard, and Flow

Hello!

A few minutes ago, Gisela wrote a post where she shared how to create a Streaming Dataset in Power BI (link). This feature opens up a new way of using Power BI, and I thought that a good way is to integrate it with the Microsoft Flow.

So I created a Flow with the next steps

  1. The flow will start everytime when you receive a new email
  2. Using Cognitive Services Text Analytics API we will analyze the sentiment of the email subject
  3. The result of the analysis will be sent to a Power BI streaming dataset

Power BI

The first thing to do is create the Streaming Dataset definition in PowerBI. Let’s access the Streaming Analytics collection and add a new streaming dataset.

clipboard04

The type of the dataset will be API

Clipboard07.jpg

And we define the dataset fields. For this example we will use

  • time, DateTime
  • sentiment, Number
  • subject, String (optional)

clipboard02

This is a good time to copy in a notepad the dataset Schema, we will use it later in our Flow. Once created the streaming dataset, we can now create a dashboard view.

  • Create a new dashboard or select an existing one and select the option Add Title of RealTime Data type.
  • Select the streaming dataset that we created in the step above.
  • We define the values to be displayed in a line chart, for example:

clipboard05

And ready, we have created the visualization dashboard in Power BI. It is time to create our Flow.

Microsoft Flow

In Flow we will create a new flow from a blank template. The trigger that we will use for this flow will be the arrival of a new email. Select the option “Office 365 Outlook / / when a new email arrives”

clipboard07

We will see that we have the trigger already configured, verifying new emails received in the Inbox.

clipboard10

The next thing we will do is create a new action to analyze the feelings of the subject of the received email. Add a new action and search for “text analytics” until you find the action “Text Analytics / / Detect sentiment”.

clipboard12

In the configuration of this action, select the Subject of the email as the text to be analyzed.

clipboard15

The final step is to send the information to the Streaming dataset that we created in the previous section. To do this, we add a new action of the type “Power BI / / Add rows to the dataset to”clipboard17

In the action configuration, select the Workspace, the dataset that we have created and “RealTimeData” table. RealTimeData is a fake data table used to display the data in real time.

Also in this step, we configure the message to send with the Schema of the DataSet, replacing the values in the Schema that we have processed in the Flow.clipboard19

That’s it! We already have a running flow which analyses the “subject sentiment” on each received emails and it send this information to a dataset in Power BI.

clipboard21

Power BI Dashboard

In a future post, I’ll show you as is the dashboard in operation. After a couple of “heavy tests” I just realize that I have consumed all my free calls in the Cognitive Services Text Analytics.

I found this response in the execution of the Flow

Body

{ “statusCode”: 401, “message”: “Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription.” }

And apparently, another test quickly consumed my 5000 free calls to make per month … 😀

clipboard02

 

Greetings @ Toronto

El Bruno

References

#Flow – Analizar el “sentimiento” de un email y visualizarlo con #PowerBI

Hola !

Hace unas horas, Gisela escribía un post donde comentaba como crear un Streaming Dataset en PowerBI (link). Esta funcionalidad abre una nueva forma de utilizar PowerBI, y yo he pensado que una buena forma es integrarlo con Microsoft Flow.

En este ejemplo de Flow realizaremos los siguientes pasos

  1. El flujo se disparará cuando se reciba un nuevo email
  2. Se procesará el Subject del mismo con Cognitive Services Text Analytics API
  3. Se enviará el resultado del análisis a un Streaming dataset en PowerBI

Power BI

Lo primero que debo hacer es crear la definición de un Streaming Dataset en PowerBI. Accedemos a la colección de Streaming Analytics y agregamos un nuevo streaming dataset.

clipboard04

El tipo del dataset será API

Clipboard07.jpg

Y definimos los campos del mismo. Para este ejemplo utilizaremos

  • time, tipo DateTime
  • sentiment, tipo Number
  • subject, tipo String (opcional)

clipboard02

Este es un buen momento para copiar el Schema que luego utilizaremos en nuestro Flow. Una vez creado el streaming dataset, ya podemos crear un dashboard donde visualizar el mismo.

  • Creamos un nuevo dashboard o seleccionamos uno existente y seleccionamos la opción Add Title  de tipo RealTime Data.
  • Seleccionamos el streaming dataset que creamos en el paso anterior.
  • Definimos los valores a mostrar en un gráfico de líneas, por ejemplo:

clipboard05

Y listo, ya tenemos creado el entorno de visualización en Power BI. Es momento de crear nuestro Flow.

Microsoft Flow

Una vez que hemos accedido a Flow, crearemos un nuevo flow desde un template en blanco. El trigger que utilizaremos para este flow será la llegada de un nuevo email. seleccionamos la opción “Office 365 Outlook // when a new email arrives”

clipboard07

Veremos que tenemos el trigger ya configurado, verificando los nuevos emails que se reciban en el Inbox.

clipboard10

Lo siguiente que haremos es crear una nueva acción para analizar el sentimiento del subject del email recibido. Agregamos una nueva acción y buscamos por “text analytics” hasta encontrar la acción “Text Analytics // Detect sentiment”.

clipboard12

En la configuración de esta acción, seleccionamos el Subject del email para el texto a analizar.

clipboard15

El paso final es enviar toda la información al Streaming dataset que creamos en la sección anterior. Para esto agregamos una nueva acción del tipo “Power BI // Add rows to a dataset”clipboard17

En la configuración de mismo, seleccionamos el Workspace, el dataset que hemos creado y la tabla “RealTimeData” que es una tabla fake que se utilizar para mostrar los datos en tiempo real.

Además en este paso configuramos el mensaje a enviar con el Schema del dataset, reemplazando los valores del Schema por los que hemos procesado en el Flow.clipboard19

Y listo ! Ya tenemos un flow en funcionamiento analizando el “sentiment” de los subject de los emails que recibimos y enviando esta información a un dataset en Power BI.

clipboard21

Power BI Dashboard

En un próximo post mostraré como queda el dashboard en funcionamiento. Después de un par de pruebas “pesadas” me acabo de dar cuenta de que he consumido las llamadas en modo Free que vienen para probar Coginitive Services Text Analytics.

Me he encontrado con este response en la ejecución del Flow

Body

{ “statusCode”: 401, “message”: “Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription.” }

Y al parecer, otra prueba en paralelo ha consumido en poco tiempo las 5000 llamadas que podemos hacer al mes … 😀

clipboard02

 

Saludos @ Toronto

El Bruno

References