Microsoft Flow

Cos’è Microsoft Flow e come funziona?

Microsoft Flow permette di collegare in modo semplice input, output ed azioni in applicazioni di base.

Non tutte le applicazioni che usiamo tutti i giorni risiedono sul nostro PC o smartphone. Un’applicazione può anche essere in esecuzione su un server e noi ci stiamo interfacciando attraverso un sito web.

Ci si riferisce, in questo caso, ad applicazioni che risiedono “nel cloud”. Ma non tutte le applicazioni cloud devono essere complesse, complicate o oscure come il cloud stesso. Spesso infatti sono semplici app che smistano o raggruppano dei dati da più fonti per poi presentarle all’utente in modo comprensibile o graficamente soddisfacente.

Certo la semplicità esterna di queste app non presuppone che siano semplici da fare. Spesso un microserver scritto in Node.js per automatizzare queste connessioni, può essere comunque piuttosto complicato da implementare o gestire.

Proprio su queste applicazioni di “smistamento” o “raccoglimento” di dati, possono tornare quindi utili degli strumenti già pronti all’uso come IFTTT e Microsoft Flow. Ora che quest’ultima piattaforma è diventata disponibile per tutti gli utenti (anche se in misura limitata), vediamo cosa sia e come funziona.

 

Cos’è Microsoft Flow

Presentato insieme a PowerApps (un tool di sviluppo visuale per app), Microsoft Flow è creato per aiutarci velocemente a mettere insieme input e output per costruire un’applicazione semplice. Queste app, chiamate Flow (flussi, in italiano), vengono avviate da un evento o da un input. Una volta avviate, eseguiranno delle basilari operazioni condizionali, di smistamento dati o di database, per poi restituire un output su uno o più servizi.

Ad esempio, potremo avviare un flow quando uno specifico utente su Twitter pubblica un tweet. Quindi elaborare il contenuto del tweet per vedere se contiene la parola “lover” e, in caso positivo, inviarci il tweet via mail.

Microsoft Flow template di base

Questo è un esempio piuttosto banale, e molto più simile al servizio IFTTT, di come può essere utilizzato un Flow.
Il principale servizio rivale, IFTTT, nel nome dice infatti “If This Then That” e cioè “Se si verifica una condizione, fai questa azione”. Uno a uno, molto semplice.

Tuttavia Microsoft Flow è un servizio più a tutto tondo, capace di potenti elaborazioni di questi input. Ad esempio prendendo e confrontando più input e gestendo molteplici azioni come output.

 

I servizi supportati

I servizi supportati da Microsoft Flow sono già numerosi, tra cui molti famosi come: Twitter, Facebook, Github, Salesforce, Office 365, Outlook, Dropbox, Slack, etc.
Ogni servizio ha il suo set di input e di azioni (output) che possiamo usare per creare i nostri Flow.

Input, ouput, condizionali

Non bisogna necessariamente saper programmare per usare Microsoft Flow. Anzi, Microsoft propone molti template di Flow già fatti soltanto da personalizzare, per ogni servizio integrato. Un ottimo modo per cominciare a prendere mano sul suo funzionamento, per poi andare oltre.

Microsoft Flow template gallery

Anche io ho iniziato personalizzando uno dei tanti template di base, prendendo le email che arrivano al nostro indirizzo del blog e segnalandole su Slack. Nel corpo del messaggio di Slack viene anche indicato (su mia scelta) il mittente e l’oggetto della mail appena arrivata.

In pratica ho collegato il servizio Outlook, sfruttando come azione “Quando arriva una mail”. Ho poi collegato il servizio Slack, dicendogli in quale canale scrivere e cosa scrivere nel messaggio. Semplice, no?

Microsoft Flow flussi personali

Come funziona

I flussi sono chiamati così proprio perché devono essere visti come un flusso di informazioni che parte dall’input e arriva all’output seguendo varie strade. Proprio per questo Microsoft propone un editor visuale di questi Flow, piuttosto semplice da usare ma anche avanzato per chi abbia necessità particolari.

Una delle fondamentali differenze con IFTTT risiede nella possibilità di inserire istruzioni condizionali tra gli input e l’output, che pur essendo un set piuttosto di base (IF o Swtich-Case) permette di fare già molte operazioni.

Proprio questo dà molta flessibilità in più a Flow rispetto a IFTTT, permettendo di incatenare più input, inserire condizioni e fare quindi diverse azioni (e diversi output). Il tutto è correlato da dei log sull’esecuzione (riuscita o meno) di ogni flusso, per investigare eventuali problemi.

 

Funzioni avanzate

Per i power user, vi sono poi delle funzioni avanzate che espandono il set di possibili scenari d’uso verso l’infinito e oltre.

In particolare, è possibile usare delle definizioni delle Swagger API per interfacciarsi in modo semplice con delle API REST in un flusso. Ci si può anche connettere con una chiamata HTTP, molto utile se vogliamo connetterci a un webhook. Oppure possiamo lavorare con dati inviati attraverso un form o JSON.

Insomma, questo è solo l’inizio! Tramite l’implementazione di Swagger API personalizzate possiamo sostanzialmente programmare le nostre API, interfacciarle con un flusso e, magari, crearci un interfaccia tramite l’utilizzo di PowerApps.

 

L’app Microsoft Flow

Un ottimo e utile output è proprio l’app di Microsoft Flow, per ricevere notifiche push a seconda dei nostri flow. Tuttavia l’app ancora non è presente sullo store di Windows 10: Microsoft andiamo su!!

In attesa dell’app, ci sono comunque molteplici output da utilizzare su Windows 10 o Windows 10 Mobile per ricevere notifiche pressoché istantenee.

 

Conclusioni

Microsoft Flow si pone come un valido strumento per un particolare scenario d’uso. Anche se non comprende azioni necessarie a tutti, è comunque un’ottima piattaforma in questo mondo di web-app, API e Big Data! La possibilità di interfacciarsi con ogni API è importante, così come il supporto a molti input diversi.

Con strumenti come Flow e PowerApps, Microsoft si conferma come leader nel campo degli strumenti di programmazione visuali e non. Proponendo, come in questo caso, una piattaforma dinamica e flessibile per la risoluzione di piccoli problemi, senza la necessità di mettere in operazione un complesso server aziendale o privato.

Alcuni servizi non sono disponibili nella versione gratuita, così come alcune funzionalità. Inoltre possiamo fare un massimo di 25 flussi (direi anche che sono sufficiente per un uso di base).

Cosa ne pensate? Date uno sguardo a Microsoft Flow seguendo questo link: https://flow.microsoft.com/.
E fate un salto nella sezione del commenti!