One of the things that brings Microsoft MVPs together each year is complaining about the pains of reporting community contributions to Microsoft.

This is a typical first world problem, but with a history of reporting tools ranging from temperamental Infopath forms to websites where you painstakingly click here and there for hours, there have been reasons for the complaints.

First time ever, I didn’t wait until the last minute to start thinking about my annual contributions. Instead, I took a little time to learn about how this works — and now I’ll keep my contributions in a spreadsheet and then upload them right before the deadline.

Here are my notes on what I found, and why I’ll still wait to upload.

Some setup is required

One note: in the docs it mentions that your request will be reviewed and accepted by an administrator within a couple of business days. Mine appeared to be auto-approved and I didn’t have to wait at all, I was able to start using my subscription right away.

Caching sounds great, until it’s not

There are only two hard things in Computer Science: cache invalidation and naming things.

Workaround: export all your contributions to a .csv file from the API and review them that way

I’m no scripting genius, but I came up with a simple command to export all my contributions for review:

Get-MVPContribution -Limit 500 | export-csv exportedcontributions.csv

This also gives you the ContributionId for each of your contributions, in case you want to delete any.

Inserts are easy, updates are hard

One of the main questions I had when starting out was whether re-running New-MVPContribution would be smart enough to identify matching existing contributions with the same date and description, and update other information, such as the ‘AnnualReach’.

Why this matters: Microsoft doesn’t publish the criteria they use to select MVPs, but if I was them, I’d pay a lot of attention to those reach numbers.

So when it comes to items like videos, I want to report the reach at the end of the review cycle, not just after I post the video.

Finding: New-MVPContribution does not find and update contributions. If you rerun an import for a .csv file with contributions, it’s very easy to create duplicates.

A couple of weeks before contributions are due, I’ll update the reach numbers for the videos in the spreadsheet. I’ll also add in entries for aggregate information where helpful — for example, I add a single line for all my blog posts with reach information, instead of a line for each post. Then I’ll do a single upload for the year from the .csv file.

After upload, I’ll manually edit a contribution in the GUI and see if this triggers a cache clear to validate display of the contributions (I’ve had mixed results). Setting a reminder to see how they display the next day isn’t a bad idea, either.

It’s certainly not perfect, but it’s waaaaaaay better than an old infopath form, so I’m happy to have it.