13 things I did in 1 hour with Microsoft Teams

Microsoft Teams went GA this week.  I took it for a test drive Wednesday night, and I couldn’t believe what I got done in just an hour (be forewarned: the screenshots were taken Friday when I wrote this blog!)…

1. Created a new Team

…And with it got a shiny new Office 365 Group, Exchange Distribution List, SharePoint Site, Exchange calendar, etc.

This is the typical case for Microsoft Teams: collaborate with a team (get it?) on a business process.

I work with our other directors, our partners and our sales team to collaborate on sales pursuits.  Our current process uses SharePoint document sets, but it’s a little cumbersome, so I built a new process in Teams.

We’re all on the team– the 4 other directors, the partners and the sales team.  Different sub-groups of us collaborate on different pursuits, so we create a channel for each pursuit.  This automatically creates a folder in the SharePoint Documents library on the Team site, accessible in the Files tab for each channel.


The same files appear in SharePoint when clicking the Open in SharePoint button.



2. Chatted with my team and @mentioned team members by name

Another cut-and-dry use case here, but it’s smooth as butter.  Anyone I @mention gets a notification.

I also downloaded Teams app for iOS.  Works as expected, and I get notifications when someone @mentions me.

3. Got silly

I can send images, gifs and smileys right inside the rich text message editor.  There’s even a handy meme generator for putting my coworkers in their place:

I saved the “Broke the build” sticker for my dev channel.

4. Pinned a document for quick access & chat

With a proposal due Friday, I decided it made sense to pin our roadmap presentation to our pursuit channel to make it easier for everyone to find.  Teams let me choose the document to pin and added the tab (which I renamed to “Roadmap Deck”).  Clicking the tab shows the presentation and allows me to edit it in PowerPoint or PowerPoint Online.

choose presentationdeck.png

The possibilities here speak for themselves: if you need to collaborate around a document for a short period of time, or you use something like an Excel workbook to manage a team process, pinning a document as a channel tab just makes too much sense.


You can even chat about the document right in the tab.



5. Created a Wiki to help the old fogies learn how to use Teams

This is one of those features I didn’t know I needed until I used it.  When I created my Sales Pursuits team, I noticed a Wiki tab was created in the General channel (in fact, a Wiki tab gets created for every channel by default).  I renamed the tab to “Using Teams for Sales Pursuits” and began filling it with how-to instructions to help some of my less-technically-inclined coworkers learn how to use Teams for collaborating on pursuits.

I created two pages, each of which appeared in the Wiki navigation with sections on the page listed beneath it for easy navigation. I imagine this being even more essential when Microsoft opens up Teams for external users.


6. Cut the clutter from my list of Teams and Channels

One.  Hour.

One hour is all it took for me and the other geeks at PSC to start creating teams an inviting everyone and their brother to join them.  So I favorited the teams and channels I cared about and hid the rest.

Favorite teams are shown at the top of the Teams list, with non-favorites hidden beneath the “More” button until it’s expanded.

Hiding a team channel is easy, too. Just remove it as a favorite (by default, channels you create are marked as favorites):

Manage clutter 1

Non-favorited channels are hidden in the “{n} more channels” button and can be opened or re-added as a favorite by clicking the “{n} more channel(s)” button.


7. Connected my team to a different SharePoint document library

I already mentioned that we had a document-set-based collaboration process for sales pursuits.  I know that introducing new technology without a change management plan is bad practice, so I added a tab to our General channel so my team can easily find all the documents in our “legacy” SharePoint site.

Adding a tab for a SharePoint site is easy: just paste the site URL, click Go, and select the site after Teams verifies that it’s actually a SharePoint site (hint: don’t hit Enter, because that triggers the back button :-O).

Add sharepoint site
Adding a SharePoint site as a tab in my channel is easy… unless I hit Enter on my keyboard.

Once the site is loaded, I picked the document library I wanted in my tab from the list of site libraries:

Pick library


I even got the option to rename my tab and post about it in the conversations for the channel:



8. Added a new Team on top of an existing Office 365 Group

We recently began using Office Groups for each of our client projects; when we start a project, we create a Project Group for the project team and our clients.

Of course, I wanted to spread the Teams love to my project teams using existing Office 365 Groups.  In Apple-like fashion, it just worked.

When creating a new team, I had the option to add a Team to an existing Office 365 Group:

add team


WARNING:  If you create a Team for an existing Office 365 Group and decide to delete the Team, doing so deletes the whole Office 365 Group! 


Sure, there’s a safety checkbox, but be careful.  You’ve been warned.

9. Created a Planner plan for my project Team

We’ve gotten in the habit of using Planner to handle PM for our small-to-midsize projects because Microsoft Project is just overkill unless the project is large and we’re managing 5+ resources.

After adding a new tab to the project team’s General channel and choosing Planner, I got to choose between creating a new plan or using an existing one (for Teams created from existing Office 365 Groups, chances are you already have a Planner plan created for your group).  This means that Teams opens up the ability to create multiple plans for a single Office 365 Group, which was not previously possible.

Choose a plan.png

Boom! My plan showed up in the Planner tab and I could immediately create and move cards and buckets.


10. Added Kanban board tabs to track features and user stories

This is where Teams’ potential to revolutionize our project collaboration flow really began to stand out.

We decided to use the project team’s General channel for PM work and handle all of our development conversation in a separate, nerdier Dev channel.  And you can’t spell modern development PM without “K-a-n-b-a-n”, right?

Enter the Visual Studio Team Services tab.  In seconds, I added the feature-level work board (you can choose to show epics, features or user stories when adding the tab) directly to  our PM channel.  Doing so was as simple as connecting to Visual Studio Team Services with my Azure AD account and choosing the team project (note: Microsoft Account VSTS boards are not yet accessible in the Visual Studio Team Services work board tab).

I chose to add a Visual Studio Team Services work board, but Jira tabs are supported, too.

And on our Dev channel, I added a Kanban board for user stories:


11. Pinged some code with Markdown

Speaking of our Dev channel, it turns out that Teams announced full support for Markdown (including pre-formatted code!) in chat:


12. Connected a Power BI dashboard

Still on the Dev thing, although the PM in me appreciates this one, too.

We already use Power BI to roll up bug, build, sprint and Git commit/pull request reports from our Visual Studio Team Services projects.  A couple weeks ago, I geeked out about the ability to embed these dashboards in modern SharePoint sites with the new Power BI SPFx web part.

Welp, you can do the same thing in Teams, now, and it’s awesome:


13. Joined a meeting

This next one makes the case for being able to stay in Teams for most of my work day.  The Meetings section in the Teams app showed me all my meetings for the day (and coming days) and let me join Skype meetings directly with a single button click.


This screenshot is from a different day, but you get the point.


What didn’t I do?

That’s the beauty… a lot.

In an hour, I did all this (not the blog, that took longer).  The sky is the limit for Teams, and I get the feeling that I haven’t even scratched the surface.  I played with connectors and some of the other tab apps, but the things I covered in this blog were so stupid simple that anyone can do them without training.

I’m looking forward to peeling back the layers and seeing what Microsoft has in store for extensibility…

Allow Office 365 Group Members to “Send As” the Group Email Address


At PSC, we are nerds.  Many of us are also big fantasy football fans.  Naturally, we use Office 365 Planner to manage the office fantasy league.


We run 2 leagues– an A and a B league– like the British Premier league.  Every year, the bottom two teams in the A league are relegated to the B league, and the B league champion and runner-up are given the option to join the A league.

Depending on who returns to play each year, a few spots open up in the B league and we send an open invitation to everyone else at PSC, first-come first-serve.

Because we used Planner to manage the league this year, we wanted to send the “league sign-up” email from the Office 365 Group’s email address (fantasyfootballcommissioners@psclistens.com) so that every reply went straight to the Group’s conversation and each of the 3 commissioners was notified when a reply came in.

Nuts and bolts

Office 365 Groups are comprised of multiple pieces: a SharePoint Team Site for document storage, a Notebook, an Exchange Calendar and an Exchange Distribution Group (with a snazzy “Conversations” front end) for email.

So we should just be able to update the settings for the Distribution Group like you would any other distro to allow users to send as the group.

To enable a user to send email as the group , you can make a quick change in the Group configuration in the Office 365 Exchange admin center.  Note that your user account must have the Exchange Administrator role to perform this action.

1.  Open the Exchange Admin dashboard and navigate to the groups page:


2.  Search for the group you want to edit:


3.  Double-click the group to open it, then click group delegation.


4.  Click the + button, then add each user who should be able to send email from the group.


5.  Click OK.  The users are now listed.


6.  Click Save and you’re done!  These users can now send email as the group:




The disappearing canvas: a word on copying sample code from Angular Material

Hopefully this saves someone else the same headache it caused me:

If you copy code samples from Angular Material examples, make sure to remove the “ng -cloak” class from the outer container elements, or else your canvas will disappear at runtime!

The “ng-cloak” class has one property, and that’s “display: none”– I’m not sure why it’s included in so many of the example code snippets, but something tells me I’m missing something (like maybe a script that sets it visible at runtime?). 

I don’t care to admit how long I hit my head against the wall trying to figure out why the entire canvas disappeared at runtime until I checked the CSS. I just assumed my angular code wasn’t working.