When I was looking my demo tenant to create some new Power Automate demos I found out that there were new Teams Flow Actions available!
Meetings are important so I thought I better build a short Flow to see how it is really behaving.
Create a Teams meeting (preview)
Looking at the action it looks like it will be super-simple to create new meetings in a Flow action. This opens nice possibilities for several scenarios. One is automation of meetings based on business processes “setting up meetings with customers automatically” or perhaps that is being done with a bot (Power Virtual Agents make this really easy). I chose to explore just a simple scenario of creating a meeting with a person who wrote a specific Teams message.
Looking at the Flow action we see we need to provide a few inputs there. Most of them make sense – and we don’t have to even invite anyone in: instead we can also use this to create simple meetings. But the beef is to create online meetings without the need to use Graph API so let’s jump in.
Show advanced options reveals even more possibilities
These options are familiar for all of us if we have done any Teams meetings.
Flow to create a Teams meeting based on single message
I used the “for selected message” trigger to initiate a Flow based on a single Teams message as a starter. In that trigger I can open a Adaptive Card to ask for more information like Subject of the message and meeting dates. It also gives me access to various information about the message used. See my earlier blog post for more info about For a selected message -trigger.
With “For a selected message”-trigger Adaptive card gives us access to information user enters in it – using variable. So remember to name your input variables properly.
The Get Sender Profile I used to get an example of adding two users to the meeting. What is really needed is the Get Originating User Profile to book a meeting with the person who wrote the message in Teams channel. From “For a selected message” -trigger we get this information, but it is a ID so we need to retrieve user profile to get the email we can use in the meeting.
After getting all the information we can start creating the meeting! Calendar ID can not be chosen dynamically but picking a Calendar seems to default to other users as well. It is certainly better than Birthdays or US Holidays for this need 🤣
We get several variables from the Adaptive Card like mySubject and dates & times. Since this is a demo flow I didn’t have to ensure data & time format input checking but if you are building a Flow for an international / global organization I recommend testing it well and checking for inputs before using that. Of course when using a different source for information also ensures that dates and times are in the correct format.
timeZone can not be set with a variable – it needs to be picked manually. Make your own conversions to date & time before creating the meeting.
In the last action of the Flow I simply write the meeting information to a channel for demo/test purposes. “Create a Teams meeting”-provides a good amount of dynamics fields as output to feed business processes further.
Using this simple snip I included the meeting start & end times as well as the joinURL. This could be used to send a well formatted email to a customer for example – or just returning the meeting joinURL to the customer via bot for instant meetings!
Testing it out
I tested this as “Amy” who is one demo user in my demo tenant. She launched the action “Create Teams meeting” to one old message I had – welcoming Chris to the team.
The next phase was her to add information about the meeting for the card that opened automatically
Since the Flow executed successfully the message was written to a channel in team. It show Amy’s identity as author since she initiated the action. The Flow was created under my alter ego (demo-Vesku) identity.
All information seems to be good. The join-link to Teams meeting works as well. As you can see the Summay-body isn’t that useful. The better option is to ask for the user to provide a meeting description AND then insert the link to the original message in the body. To see how link can be inserted there check my To-Do blog post.
What really matters is how this looks in the calendar. And it does look almost perfect!
The only thing that doesn’t look right is the timezone name. But the beef is correct: it is the correct timezone, just the nearest city is wrong since it can not be set in the Flow action. In short: it is just a minor cosmetic flaw.
All the other things: attendee, start & end date&time are correct – and the meeting body looks a lot better now than in the channel post.
And if I look at my demo-Vesku calendar I see all the right information – with RVSP option which I set to be used in meeting creation (it can be also set to off).
This is a snip of the raw output when meeting is created:
As you can see, the new Create a Teams meeting action is a really powerful and EASY to use. It was really simple to create this demo and go through it’s details when writing this article. Do remember: the action is in the preview so it is subject to change and generally advice is that preview-features are not used in production environments.
What else was new to Power Automate in Teams? Yes – there is more!
There are also other new triggers and actions for Teams in Power automate!
Triggers go first:
The “For a selected message” should be familiar to you now. However do note that you can also create processes when a user is either removed from a team – or leaves it by user’s own choice. This way a project/business owners can be up to date who are in the team – who has the access to the contents for example. But also it can initiate exit-processes like removing user’s access to other content sources or systems.
Besides “Create a Teams meeting” there are also two new actions that can be used with Teams in Flow: Add a member for a team, Create a team and Create a channel.
Creation a new team is now a lot easier than before. In my Power Automate sessions I have presented in various events during past 7 months I have used GRAPH API to create a team. Now I can change them to Power Automate. The biggest thing here is that this action does not require Premium licensing to create a new team. However, it’s options are a bit limited at this point:
This action can create a public or private team.
Using the Add a member to a team -action sounds perfect one to be used when creating a new team. But it is not. Currently it lacks the capability to use dynamic value for team. So you need to pick the team already when you are creating the flow.
But what this allows is a management of a specific team’s members – and it can be used to add owners as well. It just can’t be used in a provisioning situation. I hope that this will get updates later.
And finally Create a channel action.
This does not allow creation of private channels and this has the same issue with selected Team as with Add a member to a team: you have to select team from a list instead of using a dynamic value. This hinders the usability of this action to processes that are created to a single team – instead of using this in provisioning or doing actions dynamically. It has it’s uses of course but this could do much more.. Hoping that this will be updated later as well.
List of all currently available Teams triggers and actions in Power Automate
Yes, it is an impressive list. And it seems to grow. 😍