How to automatically enter MVP timesheets with Microsoft Flow

The Microsoft MVP Summit is next week.  I'm here at 6AM slaving away cracking on this Swagger API file so that we can all have the awesomeness of automatically submitting MVP timesheets with Microsoft Flow.

But really, who doesn't want automatic?! 

Flow, Make It So

Flow, Make It So

Plan

  • The MVP Contributions "timesheet"
  • MVP Production API
  • Custom Connection via Swagger
  • Set up the Flow
  • Future ideas

The MVP Contributions "timesheet"

The Microsoft MVP award is a recognition of our various activities throughout the previous year, and it is measured with both "reach" and "impact".  So, at a minimum, we have to do timesheets.  I really really don't like doing timesheets.

We really should be able to do this automatically.

Write a blog?  Made a podcast?  RSS -> Automatic.
Wrote a tweet?  Automatic.  (your MVP lead will probably have a chat with you about this)
IoT senses temperature change?  What better time to log an entry!
 

MVP Production API and the MVP PowerShell module

The MVP program with contribution from several MVPs created a set of APIs for querying and posting our profiles, contributions and details.  The starting point is here:

https://mvp.microsoft.com/en-us/Opportunities/my-opportunities-api-getting-started

To call this API, we need two pieces of authentication - we need OAuth to Windows Live Account, and we need an API key from the MVP API.  Follow the steps in the post and you'll end up with:

  • an MVP Production API subscription, which gives you a primary and secondary Api-Key
  • a MSA application with ClientID and ClientSecret

I want to note that there are existing work in a MVP PowerShell module

https://github.com/lazywinadmin/MVP

It works the same way, but because it doesn't remember your tokens, every time you run the PowerShell you need to login via a Live, get a token, then make the submissions and then when the PowerShell session finishes you lose everything.  So while this helps with entering the details, but doesn't help you manage your OAuth token, it certainly isn't "hands free / automatic".

So we will do this, automatically, with Flow

Custom Connection via Swagger

I frequently sing praises for Jan Vidar Elven's blog post on custom connector.

https://gotoguy.blog/2017/12/17/access-microsoft-graph-api-using-custom-connector-in-powerapps-and-flows/

I'm connecting a Custom Connection to Flow to help me manage the MSA account.  This is an extension of his detailed blog post.

To be able to call the MVP API we will need a Swagger (OpenAPI file) to create a custom connection.  After some struggling - I've got a working version of the swagger file here:

https://github.com/johnnliu/flow/blob/master/MVP%20Production.swagger.json

You can read this, but to use it - you need to replace line 35: 

"default": "ae2edf7-YOURKEYHERE",

With your real subscription key from the API.  You can use either the primary or the secondary.
Save the swagger file.  We go into Flow.

Set up the Flow

Start in Flow - create a custom connector by Importing an OpenAPI file

flow-security-1.png

For OAuth to work - the redirect URL from Flow must be allowed by this App

Return back to Flow Custom Connection

Create a connection

Setup the Flow to make your MVP Lead happy because now all your contributions are going to be automatically entered.

Results

I'm triggering this but clicking a button - you can hook this up to HTTP Request, Schedule Timer, RSS Feed... etc etc

The entry in the MVP tool.

Disclaimer

Running this Flow does not guarantee an MVP award.  But it will keep your lead happy.

 

Future Ideas

1. The Swagger File is generated from the MVP API tool, but underwent heavy modification.  For the curious you can compare the original vs my modified version.

2. As far as I can tell, the Swagger file defines two security definitions (for MSA and ApiKey), but Flow's Custom Connection UI can only handle 1 security setup.

Which is why I moved the ApiKey into an internal parameter within the Swagger File.

If Flow Custom Connection can handle multiple Authentication settings, then we can improve this part of the Swagger.

3. In Posting new Contributions - there are several settings are are ref objects.  ContributionType, ContributionTechnology (ContributionArea), and Visibility.  These should be connected to a dynamic lookup value, so within Flow UI, we will see a friendly dropdown menu that allows us to select one of the friendly names.

There's always more to do, but there's also a time to stop, and publish this blog post.

 

Thank you MS for MVP 2016

As I still see myself a newcomer in the SharePoint community compared to our many elders, I still hold my breath every year come Jan 02 when my MVP gets renewed.  I'm told "if they weren't going to renew you they'll break it to you early" I hope so.  I'm still holding my breath anyways.

I received my Microsoft MVP award for the 3rd year on the morning of the 2nd.  I wanted to say a big thank you to the community and Microsoft.  Cheers for Team Office and Friends!

2016 is the year where Microsoft tweaks the MVP award system - for IT Pros and Developer MVPs, it is no longer based directly on specific product, but on the product group.  Instead of SharePoint, I am now Office Servers and Services.  I think this is a good thing, in that I was already contributing in different areas - I love Sway, and love love Power BI, at the same time I want to see SharePoint's Sites even more embedded within Office Add-Ins.  Where will SharePoint go in 2016?  Will it end up on HoloLens?  Wow who knows.

But know this, SharePoint is not going away not by a long shot.  This is the year where I think we will see that MS is serious about SharePoint, and not just a service, but also a platform.  Trust me, I'm a dev...  A hopeful dev.

And as Microsoft moves forward with single purpose: unifying Azure, Windows, Office and Bing engine, as well as advancing the devices with IOT, Xbox, Surface and Band, I have this uncanny grin as I imagine what we could build, not in 5 years' time, but this year, in 2016!

Loving the ecosystem, loving the possibilities and loving the community.

/omg2016gonnabeawesome

The Microsoft MVP Community Camp is happening next Saturday March 22. What is it?

 

Microsoft APAC is hosting a simultaneous event in multiple cities around Asia and Oceania. 

It is named the Microsoft MVP Community Camp.

http://mvp.microsoft.com/en-us/ComCamp2014.aspx

 

There are two parts to this event.  All the events are free.  But you need to register.

Firstly it is a week of streaming sessions from March 17~21

 

The various sessions are in different languages targeting the different markets in Asia Pacific.  There's usually one English session in every time slot.

Different regions have a specific 'theme' to the streaming sessions, in Australia (and New Zealand), the focus is on

Running Small and Mid-Business with Microsoft technologies

This includes lots of discussions on SharePoint, Office 365, One Drive (for Business) and Azure. 

Some sessions are very timely.  A number of sessions in Japan focuses on Azure - since they got their Azure datacenter earlier this month.

 

Concluding on a Saturday of local "in person" sessions on March 22

 

Now this one is important.  Because even though this is free, you need to register.  Also, there's not much time left.  So you really need to register now.

For Sydney, our schedule and registration link is here.

For other cities in Australia

 

There are several sessions on Azure, Web Development, OneDrive as well as other related technologies such as Dynamics CRM.

Links for other cities - not just the ones in Australia, but also around Asia are available from the main event link at the top of this post.

 

I am not presenting at the event, but I'll be attending and attempting to field any SharePoint or Office 365 related questions.

I hope to see you guys there.

2014 begins with a SharePoint Server MVP Award

Sometime in the early hours of the 2nd of January (I live in Australia time), I received a confirmation email from Microsoft that I've been awarded MVP for 2014. The award is for contribution in SharePoint Server technical communities.

I am extremely honoured to be counted with many long time MVP that are the faces in the community.

Thank You

There is a long list of people I need to thank:

Ivan Wilson - boss and long time SharePoint veteran in Sydney. Runs the Sydney SharePoint user group. Ex-5yr-MVP but just got too busy after our company started growing (a certain trouble-maker, me, joined the company). Dear leader, I'm glad to finally return an MVP Award to the shelf!

Jonathan - boss, appearing briefly in the user groups, but understood and supported Ivan and my adventures in the community. Lets me fly or travel to all the events. May be its because he likes flying as well.

My colleagues Justin, Jumpei and Bart for being my test audience for some really rough presentations. On the positive side, they have seen presentations that has never made it out of the office door - too geeky or just too crazy.

My lovely wife Lina who has to deal with my flying everywhere and now also handle two kids like a PRO. She knows this award made me really happy, but let me tell you: Behind every great man, is a wife who isn't impressed (and no, I'm not great - though she definitely remains not impressed).

Brian - from our first meeting in a Canberra pub where I try to sell an MVP the virtues of running reporting services integrated with SharePoint - not knowing who he was. It has been great to go to the numerous SharePoint Saturday events around Australia. There are too many shenanigans to list, and plenty of fun memories.

Elaine - the MCM that I know the most, and the MVP that I tried to follow. Friendly, relaxed knows everything. Seems to be everywhere, all the time. You realise as you attend the sessions that Elaine and other MVPs hold - there's so much experience and knowledge and they make it into a session that people can consume and learn from.

Adam Cogan - MS Regional Director and running the oldest user group in Sydney. Adam's SSW was the first user-group company that I worked in, and showed me the value of the communities that I've come to love. Even as I focus only on SharePoint and away from general .NET, I still get to see Adam in the communities rallying the crowd. I've always held Adam as a master magician. But I've realised that a magician is also a teacher, and Adam may be the best that I know.

Debbie Ireland - for running the SharePoint Conference in Australia and NZ. The premier event for SharePoint in the Oceanic Region and letting me present for the last few years!

So Young Lee - our MVP Lead, I missed a good opportunity to catch her in TechEd last year. So have only talked via email. Thank you for granting me the Award!

Mark Rhodes, Daniel Brown, Daniel McPherson, James Milne, Ishai, Sezai, so many other MVPs for being an inspiration to me, both with what you knew, and the efforts you put into the community. Thank you for being great examples, made it fun to be in the community and I look forward to more MVP in the future!

The Process

I don't believe there's a Rule about not talking about the MVP Award process. So here is how it works, as I understand it:

  • The MVP Award is given by Microsoft for contributions to the community in the previous year.
  • You need to be nominated - anyone could nominate, including self nomination, I personally think there's probably a filtering that happens. It may help if the MVP lead in your region knows at least your name, or if the nomination came from someone well known.
  • Then you fill out a really complicated score card of all the events and activities that you have participated in the last year. There seems to be a few different versions, Excel or web application. The end result is to quantify your community reach.
  • Finally, you are told which round your application is being considered, and you hold your breath on that day. Mine happens to be 1st of Jan.

I've been holding my breath the entire week.

Get Involved:

  • Go to your user group. Present. Lots of users groups around Australia also accepts remote presentations.
  • Present at the SharePoint Saturday events when they roll around your city. Or volunteer to visit another city!
  • SharePoint Conference in Australia and NZ
  • TechEd AU
  • Write a blog. Keep it fresh. My blog documents a number of interesting techniques with InfoPath and has been referenced continuously from the Microsoft forums - even long since I lessened my involvement in that community. Engage with people commenting on your blog.
  • Create a CodePlex or github project relating to SharePoint
  • Participate in SharePoint on StackOverflow
  • I'm told if you write a book or runs web series on SharePoint that would help.

Remember you'll need statistics from all these activities for the score cards.

Getting nominated:

  • Get to know the people in the SharePoint community around you.

This helps for your nomination. I personally don't know who nominated me. I wasn't sure whether to ask anyone or just wait. I decided to wait and someone did nominate. I have a few guesses but honestly I have no idea.

Keep a positive, can-do attitude with SharePoint

Finally, we work with SharePoint day in and out. We know it's got lots of quirks. I personally believe it's not good to dwell on the bad but focus on what you can do about it. It's all too easy to jump on the wagon complaining about what SharePoint does. It is far better value and more useful to the community when we explain why SharePoint does what it does, and what we can do to tell it to do something else that we wanted.

Happy New Year!  It's been awesome so far.