Category Archives: Microsoft Teams

Microsoft Teams, Forms and Flow on the go!

This is the final post in this mini series where we looked at the simplicity and easy of integrating within the Office 365 stack.

Everything up to now is great! Exciting even. I can create richer user experiences without relying solely on the on Excel experience, collect and analyze responses and keep my team up to date.

What about the mobile experience? How does this all work out there?

I am running on an iPhone 7 Plus with iOS 11.2.2. I also tested this on my Amazon Fire HD 10, side-loaded with the Microsoft Apps, and I had the same experience there.

Start in the Microsoft Teams app

Fire up that Teams app and let’s take a look at the notifications we made with Flow real quick.

Flow posts in Teams on the iPhone mobile

Not too shabby! Formatting carried over pretty well!

Let’s check out the tabs

Team tabs on mobile iphone

This is when I start to get excited, just to be crushed…

Microsoft Forms in a Teams Tab on Mobile

Sadly when I press my form’s tab, I go to my browser and am presented with:

Forms tab in Teams

Yup, that’s just the Forms website. I pressed Get started, it let me login, then it just sent me to the editor view of Forms.

I went back to Teams and pressed the forms tab again, hoping now that I was logged in I could fill out the form. Sadly:

Pressing forms tab in Teams fail


I’m in edit mode again, not even in my form. So weird!

Microsoft Excel in Teams Tab on Mobile

Pressing my Excel tab in Teams on the iPhone was a wee bit better than Forms. It did send me out of the Teams app and into the Excel app, but it did put me in the right Excel file ;)

Excel tab in Teams opens the app

I can view the content as I would expect. Unfortunately not in Teams though.

Microsoft Teams mobile experience is much to be desired

The core conversation piece works well, I use it a lot across my teams on my phone. The tabs I generally avoid unless I’m ok with what I’ll get. Microsoft has some ground to make up here for sure!


This post wraps up my mini series, I hope you enjoyed it. My goal was to highlight how easy it is to integrate within the Office 365 stack, even easy for most business users! No development needed for a rich user experience on a simple day to day task like collecting data in Excel.

Please let me know what you think below in the comments! ‘Til next time, thank you!


Collect Survey Results Seamlessly in Microsoft Teams with Forms

This post is the the second post in this mini series as we look at how easy the Office 365 stack integrates. In this series, we will:

In my previous post, we quickly created a Form to collect data in our Excel file. If you have this type of form, or really any form, you may want to embed the form in your team so: team members can see the results quickly and easily; to solicit submission; or collaborate on editing the Form!

Microsoft Teams – Your collaboration hub

I’ve fallen completely in love with Microsoft Teams. It is what I’ve wanted out of the SharePoint space for yeeeears. Teams is far from complete, but is off to a solid start competing against Slack, and in my opinion, blowing it away. But I digress…

To add Forms to your team channel, we simply add a new tab! Really that simple.

Add Microsoft Forms to Teams

Press the + icon up in your tabs.

Microsoft Teams add a new tabThen select Forms

Microsoft teams add forms tab

Don’t get too distracted, focus, you can play with all of the other offerings later in here!

After you select Forms, you’ll be asked to create or add existing. In my case I am going to add existing, but if you wanted to, you could create a new one.

Adding Microsoft Forms to Teams

When I select the form I want to display, I can select what view of the form I want to show, this option is in the drop down, right below the forms list (in the above picture, it’s the drop down with the value Collect responses). The options are:

  • Collect responses – this will add the form in the submission view, allowing your users to submit entries.
  • Show results – this will show the results page of the form, including it’s charts and responses.*
  • Collaborate – this will show the form in edit mode, and anyone in the team will be able to edit the form’s layout. Very helpful when aiming to get feedback on your survey.

*If you select Show results, note the little checkbox “A web address will be created. Anyone with it can view a summary of responses.” This is basically saying that when selecting Show results, it is getting an anonymous link to the page, so anyone who finds the link could see your results. <shudder/>. A good alternative approach is to try my previous post in this series, save your results to Excel, and then show that in a tab instead.

I’m going to select Collect responses. I also unchecked Post to the channel about this tab, as I don’t want to share this example.

Once it’s added, your form is now in your channel!

Microsoft Forms in Teams

Next I will rename the tab so it’s more meaningful to my users. Click the menu in the tab and select Rename. I renamed mine to Booth Signup.

I also added my previously mentioned Excel file to my channel as a tab, so I can see my results:

Microsoft Excel Forms Results in TeamsDone!

In this short post we added our form to Teams to collect responses. In my next post we’ll notify the team of submissions using Microsoft Flow!

Use Microsoft Flow to remind the Team of due dates from Planner

one more time

This Flow I feel like should be unnecessary, but alas it is. The simple idea is to have tasks which are due tomorrow post to your team to help keep people up to date. Planner does offer email notifications which can do the same, they work great, BUT our users disable notifications because they are too verbose at the moment (i.e. getting emails on comments on tasks). We still want to notify the team of the impending tasks, however.

If you’re feeling lazy, go to the bottom of this post and you can download a template for this Flow. I also submitted this flow to the Flow template gallery, we’ll see if it gets accepted.

Let’s head over to Microsoft Flow

This flow is pretty basic, but has some complex pieces, so maybe its baslex. It looks big, but it’s really not.

Microsoft Flow copying Planner due dates to Teams

Overall, everyday at 7AM it gets all tasks from our plan, checks to see if any are due tomorrow, and are not already completed, and then posts a message in the channel in Teams.

Trigger: Schedule – Recurrence

Flow Trigger Schedule Recurrence set for every day at 7 am

This is simple enough, start the Flow with a Recurrence trigger. I set mine for every 1 Day at 7 AM. This allows us to wake up, come into the office and peruse our Teams, seeing the updates.

How do you test this, you might ask? Don’t you worry about that. You can force this flow to run whenever you want, you don’t have to wait until 7 AM to see if it works! More on this later

Action: Planner – List Tasks

This part was aggravating. If you haven’t noticed yet, there isn’t a clear way to access your Teams and Channels plans through Planner. If you navigate to Planner, you can’t find your plans from Teams. Just the plans at the group level. Microsoft is aware and working on that.

Unfortunately, this carries through to the Flow APIs, and when using this action, you can’t select your channel’s plan. Instead, you can provide the plan ID. To do so:

  1. Go to Teams and navigate to the Planner Tab.
  2. Press the Go to Website button in the top right of the window to open Planner in your browser.
  3. In the address bar of your browser, you’ll want to copy the planid value from the URL. You should see something like this, only copy the red letters portion
  4. In Flow, in the dropdown selection for the Plan Id, select Enter custom value at the bottom of the drop down
  5. Paste in the planId from before
  6. Done! Continue with the flow

Planner Get Tasks using plan id

After you save it and edit again, it will show the board name, the tab name from Teams, in my case Tasks.

Action Planner Get Tasks

Action: Apply to Each

Apply to each gets applied when the array is used

This is an automatic action, don’t worry about it for now. Flow knows when to add it for you, in the next step.

Condition: If there is a due date

Add a condition, and add the Due Date Time field from the List Tasks action, and BLAM you’ll have the Apply to Each added automatically.

This condition checks if there is a due date. If so, then continue on. If not, stop, do nothing. For the value field, use the expression null.

Yes, the due date is not null

Due date is existent, continue

Condition: If is due tomorrow and not completed

For this condition we are going advanced since we want to check condition on two fields. We want to check is the due date tomorrow and is the task complete. Press the Edit in advanced mode link in the bottom left of the condition to enter a free text field.

Copy in the following, paying attention to weird quotes that sometime come along with copy/paste.

@and(equals(formatDateTime(item()?['dueDateTime'], 'yyyy-MM-dd'), formatDateTime(addDays(utcNow(), 1), 'yyyy-MM-dd')),less(items('Apply_to_each')?['percentComplete'], 100))

Advanced condition to check if task is due

Quick explanation of what this is doing

We have an and() which says each condition in this has to be true. It looks like and(1,2). Our first and statement is checking if the due date is equal to tomorrow: equals(formatDateTime(item()?['dueDateTime'], 'yyyy-MM-dd'), formatDateTime(addDays(utcNow(), 1), 'yyyy-MM-dd')). The second and statement is check if the percent complete field is less than 100 (since it sets to 100 when someone marks a task complete): less(items('Apply_to_each')?['percentComplete'], 100).

If this is true, then we post the message to Teams. If it’s not true, we do nothing, carry on.

Yes, this task is due tomorrow and its not completed

Yes Condition in Flow

Now let’s write to Teams!

Action: Teams – Post Message

Post message in Teams from Flow

Select the Team Id and Channel Id you’d like to post your message to.

The Message does support HTML formatting, so you can have some fun here. My expression formats the due date into a short date format: formatDateTime(item()?['dueDateTime'],'M/d/yyyy').

Take your time, and test out your formatting, and then your team knows you’re being active ;)

Planner notifications in Teams

Couple of questions, known issues

What about the assigned to field?

Great question. No idea. It’s not available in the Flow action for Planner. So weird. Someone has reported the issue as an Idea, click here to check it out and vote it up! I also posted it on UserVoice, click here to vote this up too!

How do I test this Flow without waiting for the schedule?

After you save/update your flow, you’ll have a Run Now option. It may be in the initial view, or if you’re in the Flow details page, you can select Run Now from the menu

Don’t want to build it yourself?

I’ve exported my Flow for your use, download it here!

I hope this helps you find new ways to use Microsoft Flow! ‘Tl next time, Happy Flowin’!

Update your Team with events from your Outlook Group Calendar using Microsoft Flow

As of this writing, there is no clean integration between an Outlook Group and Teams, other than the membership. The calendar, for instance, doesn’t reflect anywhere in Teams. Using the calendar is advantageous for the team, and I wanted to share new events with the team, to allow for awareness and conversations around our meetings.

Enter Microsoft Flow

This is a super simple flow, but powerful.

Create new post in Teams from your Calendar

Trigger: Office 365 Groups – When there is a new event

This trigger will run whenever a new event is created in your group’s calendar. Yea, that easy.

Action: Microsoft Teams – Post message

This action will then post a message to the General channel in my Team. The message is HTML formatted, which is great. I include the Subject line and start and end date of the event. The Start and End dates are Expressions, so I can format the dates. Start date is formatDateTime(triggerBody()?['start']?['dateTime'],'dddd, MMM d, yyyy hh:mm tt') and the end date is formatDateTime(triggerBody()?['end']?['dateTime'],'hh:mm tt').


We use our calendar for team meetings, outings, PTO and more, now we can all keep apprised and discuss them.

The calendar event showing in teams