Intermediate | Flow of the Week: Using Flow to create internal Microsoft solutions

Hello Flow Fans!

Today for the Flow of the week I am going to bring you something a little bit different!

Not only is this an instructional Flow, The Flow i am going to share with you today is a Flow that is being used in Microsoft internal, currently. This Flow powers a pilot program partnership between Microsoft and UpWork to bring Freelance designers into the Microsoft ecosystem to help us get projects done more quickly and efficiently. This may not be your use case, BUT this same application of technology can be used in TONS of other situations.

So to start framing the story a bit, I receive an email from my boss asking the team, "Does anyone want to help on this project?" I dive into the email a bit more and learn that Microsoft and UpWork have reached a partnership and they need a workflow to power a good portion of the user experience - the problem being.. We have people who complete a training over here... and we have this request form over here.. with no idea how to connect the two. Oh and one Minor detail.. We need this solution built in 10 days, as we have a major press event to talk about all of this.

Myself and my coworker Kent Weare volunteered to help the internal Microsoft team out! 

We met with the team and learned of a few more problems we were to face... And this is where it really became interesting... 

Problem 1 - The only way to get access to the list of who completed the training was a daily email report... no

Problem 2 - The Daily email report, wasn't a report of the new people that joined since yesterday... oh no, it was the entire list, every single day, with new participants pasted to the bottom... no  no

Really?!

Ok, so we get an email report that we can have emailed to us daily but doesn't give us new responses.. it gives them all to us every time. "How the heck are we supposed to get data out of the attached report and do something meaningful with it?" we asked ourselves.

Suddenly an email we had received from a Microsoft Flow Partner came to mind! PARSERR had joined our platform a few weeks prior and this is exactly what they do!

And - That's where we jump into this tutorial!

1st - Head on over to www.parserr.com with me and go ahead and start a free trial account and then make note of the email inbox that they assign to you, we will need this soon.

2nd - Forward the email with the report attached to the email inbox you were assigned when you signed up. I am not going to show you any images of mine, i don't want any rogue emails messing up my process!

3rd - I am going to assume you completed steps 1 and 2 successfully. Now lets open up Parserr and choose +Add a new Rule and then choose Attachments

4th - Add a filter that removes the rows you don't need until you have the data you want. As you can see below, I remove rows 1,2 and then once that's filtered I remove the new row 1

5th - Now that we have our data being parsed properly, lets go over to Flow.Microsoft.com and click on My Flows and then +Create From Blank

6th - Choose Parserr and then choose When an Email is received  and then choose the email inbox from step 1 and step 3

7th - Choose +Add an action  and type in Initialize Variable  and select it. Im using this variable to get the user UPN so we can do a check to see if the member is already in our approved list or not.

8th -  Choose +Add an action and type in Search for Users  and select it - Choose the column from your Grab Columns dynamic outputs - For me it happens to be Column 2

9th - Choose More and then Add an Apply to Each and then add the body output from the search for users step above to the apply to each selection box.

10th -  Inside of the Apply to Each add the action Set Variable. Set the name as UserUPN and select the User Principle Name (UPN) From the Dynamic content for the value.

11th - Add an action Type Get Items and select SharePoint Get Items  and choose the SharePoint list where all of the user information should be held.

12th -  Add a condition and use the expression - "@greater(length(body('Get_items')?['value']), 0) " to check if the user exists on our list already, if they do, we dont want them to get the welcome email twice!

Curse the Blimy email system that cant do a delta!

13th - On the IF NO side of the condition Add an action choose SharePoint then Create Item  This way, if the user wasn't on the list yesterday they WILL get the welcome email and be added to our group like you will see below

14th -  Choose Add an action and then Office 365 Groups and then Add user to Group.  Select the proper group and then add the User UPN

15th -  Last but not least, Lets add our final action to Send An Email (hopefully not covered in red smudges like mine) welcoming the user to the group with a bunch of helpful links for them to use!

And that's that! A real life Flow powering Process inside of Microsoft, for Microsoft FTE's to be more productive and to not have to go and code native solutions to accomplish every day tasks.

Here is the email from Liane Scult and Lora White after we completed the project for them:

“Hi, this is Liane Scult from the Office Products Group (OPG)  and Lora White from Microsoft Procurement.  We are business partners co-managing the launch of a new enterprise program that allows Microsoft employees to participate in the Gig Economy by leveraging our first-ever agreement with a freelance platform called Upwork.  It’s a really exciting new opportunity that allows Microsoft employees access to over 12 million freelancers around the world who can be engaged on-demand to complete projects large and small. 

 

We discovered Microsoft Flow when we were struggling to figure to manage process-triggered actions and communications needed to support the program.  In a dynamic process with many requirements that prompt certain actions and messages once completed, we thought we would need to hire a contractor just to facilitate communications.  What contradiction:  We were launching a state-of-the art platform that would digitally transform how we source external talent, yet we couldn’t scale our internal, manual processes to support it.

 

With Flow, and help from Kent Weare and Jon Levesque on the Flow team, we were able to automate all of the steps in our process.  When a new user completes the required training, Flow consumes the data from Learning Central and then triggers a series of events that would have been done manually otherwise.  For example, the flow adds users to our list of approved participants,  joins them to our program MS Teams site, and then sends a personalized congratulatory email.  Next, Flow lets us know when we have a project application to review and sends the applicant a status update in a customized email informed by fields populated by the applicant and the reviewer.  It even sends an email to our supplier advising them when an application has been approved and instructs them to set up the new user account. 
 

Seamlessly and instantaneously, Flow enabled process steps and communications between our program office, our end users, and our supplier.  With very little effort, we have delivered an unparalleled response time – and ultimately, an exceptional customer experience.  What’s more?  It’s efficient and it scales.  Problem solved.  Thank you, Flow!”

If you get emails like this, i bet your boss would LOVE you! Have you created a Flow that your business absolutely depends on? We WANT to hear about it!  Send me an email at Jolevesq@microsoft.com

And as always, if you have questions or comments, please leave them in the comments below, on our Twitter or the best place to talk - The Flow Community!

P.S - I want to make a special shout out to Courtenay from Parserr.com for providing us access to the Parserr service at no cost. Without the Parserr service, this Flow wouldnt be possible!

 

Until next time!

- Jon Levesque, Senior Program Manager