Category Archives: Microsoft Teams

Deploying Webex Call App in Microsoft Teams

In this post I am going to show you how to install the Webex Call app for your end users at a administrative level from the Microsoft Teams console.

So in April 2020, Cisco announced a new Call App for Microsoft Teams. The app launches calls through Webex technology, even when you click the call button in Microsoft Teams. 

To access this functionality, follow these steps:

  • Verify users have accounts activated in the Webex Control Hub
  • Ensure users are registered to the Cisco Webex Calling or Unified Communications Manager
  • Make sure users have the Webex app
  • Ensure you have Administrator privileges for Microsoft Teams
  • Update phone numbers for users in the Azure Active Directory


So lets get to it;

Launch https://admin.teams.microsoft.com

Go to Teams App –> Setup Policies

Best Practice / Recommendations

It is always best practice not to modify the Global (Org-wide default) policies. It recommended to create a new policy which will limit impact to the production environment.

Once you have either create a new policy or decided to modify the global policy. Click Add Apps

Search for Insights and click Add

While in the policy you may decide to add Insights as a Pinned App, you will need to add Insights app as shown below

Click Save

The Webex call application will now be installed and added to pinned apps with the Teams Client. As a global admin launch the application for the first time to approve the application in your Microsoft tenant.

As you can see below you now have the ability to make Webex call through Microsoft Teams.

Now for the Pros / Cons.

Pros:

  1. Simple way to connect Webex calling functionality with Microsoft Teams
  2. Embedded buttons in Teams make the function easy to use

Cons:

  1. Only works to connect two VoIP calling strategies. You can’t connect your chat messages or file sharing this way. 
  2. Calling opens a new window, which means there are more tabs for users to keep track of.
  3. Only works to add Webex Calling to Microsoft Teams. You can’t add Microsoft calling to Webex instead.

Regards
The Author – Blogabout.Cloud

Install the microsoft Viva Insights app within your organization

In this post I am going to show you how to install the Microsoft Viva Insights app for your end users at a administrative level from the Microsoft Teams console. So lets get to it;

Launch https://admin.teams.microsoft.com

Go to Teams App –> Setup Policies

Best Practice / Recommendations

It is always best practice not to modify the Global (Org-wide default) policies. It recommended to create a new policy which will limit impact to the production environment.

Once you have either create a new policy or decided to modify the global policy. Click Add Apps

Search for Insights and click Add

While in the policy you may decide to add Insights as a Pinned App, you will need to add Insights app as shown below

Click Save

The Insights applications will now be installed and added to pinned apps with the Teams Client

Regards
The Author – Blogabout.Cloud

Coming soon: Microsoft VIVa Learning

Microsoft recently announce a new product called Microsoft Viva which has 4 pillars

In this blog post I am going to focus on Learning, as a member of a large organisation that has multiple platforms for Learning Tools. I can definitely see a use case within my organisation.

Whats is Microsoft Viva Learning

Microsoft Viva Learning add a new experience within Microsoft Teams where all learning platforms can be consolidated to a single location. As you can see from my screenshot below this functionality is yet to be released, so definitely keep an eye on updates from Microsoft.

Microsoft has built a new, transformational learning experience that makes organisation learning content available in one place – including LinkedIn Learning, Microsoft Learn, third-party content providers, Learning Management Systems, and a company’s own content.

Microsoft partnered with the following 3rd parties which you will be able to included into Learning.

Social Learning

You will see the term Social Learning mentioned with Microsoft Viva, this refers to sharing content in a chat or channel in Microsoft Teams. The example Microsoft have used is “Onboarding” and for me makes perfect sense. As a new starter within my organisation, getting access to all the onboarding content from a centralized platform is key to the success of integrating a new member to your team.

Enter text to search for content, then select the items you want to add to the current tab.
Image taken from Microsoft

Personal Learning

Browsing Microsoft Viva Learning, you will be able to find content that you are interested in and Microsoft uses Graph to recommend learning content based on signals.

Use the My Learning tab to browse and search for learning content.

Once you have found content you are interested in, it can be assigned to you for consumption.

Learning Tools

Learning tools introduces “Assign and Manage” that lets you share relevant, interesting and important learning content with others. Whether its your line manager sharing content with you or you sharing content with colleagues within your group or team. You can use the manage tab to track the progress and complete of the courses.

Assign And Manage lets you share useful content with others.

So thats completes this introduction to Microsoft Viva, I hope to release more content about the product as it continues to develop.

Regards
The Author – Blogabout.Cloud

Power Automate: Sending an email when a message is posted in Microsoft Teams

Send an email when a new message is added in Microsoft Teams couldnt be any easier. Power Automate has a defined template which allows to connect with Microsoft Teams and Office 365 Outlook connectors to provide the required functionality. So from you Power Automate dashboard look for the template and press continue.

Define which Microsoft Team you would like to target and the required channel.

Define the email address you want to send the messages to

Important Note

The email address must be an active mailbox within your organisation.

Save….

The next time a message is posted, an email will be sent to the defined mailboxes.

Regards

The Author – Blogabout.Cloud

PowerShell – Checking whether a TCP port is open using PowerShell

Sometimes when working with customers you need to validate if a particular port has been opened on their Firewall. I am unable to count how many times I’ve had a discussion where a port hasnt been opened. So for simplicity the following PowerShell function allows you to check instantly;

Function Get-CheckPort{
[cmdletbinding()]
Param (
[parameter(Mandatory=$true)]
[string]$ipaddress,
[string]$port
)
# End of Parameters
Process{
  $Date = Get-Date
  $MyDate =  " " + $Date.Day + "." + $Date.Month + "." + $Date.Year + " " + $date.Hour + ":" + $date.Minute
  
  Try{
     $connection = $null
     $connection = New-Object System.Net.Sockets.TcpClient($ipaddress, $port)
  }

  Catch{
       Write-host "Warning: Port $port is closed - $MyDate" -ForegroundColor Red
     }
  if ($connection.Connected){
     Write-Host "Info: Port $port is open - $MyDate" -ForegroundColor Green
    }
   }
 }
Get-CheckPort -ipaddress '' -port ''

As you can see from the test above, I am to validate that port 80 to the teams.microsoft.com is open

Regards
The Author – Blogabout.Cloud

QuickTip: Getting the Microsoft Teams Team ID and Channel ID for Power Automate Flows

When working with Power Automate recently I was struggling being able to get the Teams and Channel IDs but with a bit of Googling I managed to work out how to obtain this information. So all that is required is the following expressions created under Data Operation

For Microsoft Teams Team IDs

first(split(last(split(triggerBody()['webUrl'],'groupId=')),'&tenantId'))

For Microsoft Teams Channel IDs

replace(replace(last(split(first(split(triggerBody()['webUrl'],concat('/',triggerBody()?['etag']))),'message/')),'%3A',':'),'%40','@')

With these expressions within your Power Automate flows you will be able to gather the required information.

Regards
The Author – Blogabout.Cloud

Power Automate and Microsoft Teams Tips: Automated approach to creating new Microsoft Teams Channels

Over the coming weeks I am going to be doing Power Automate post to demostrate the ability to automate workloads within Microsoft 365. Today, I am going look at configuring an Approval process for the creation of a Microsoft Teams Channel

Configuring a SharePoint List

I am no expert when it comes to SharePoint but any expert in “Share Pint” as how does love a good drink now and then. So back on topic within your SharePoint Online Site you need to create a new list as shown in the image below.

This image has an empty alt attribute; its file name is image-34-1024x404.png

Give your SharePoint List a name and description for future reference.

As you can see from the below, I have create a number of columns to capture the information I would like to include into the approval process.

Column NameColumn Type
Title Title used for the Channel Name.
Team NameName of the Microsoft Team
DescriptionDescription of the new Channel
JustificationJustification for the request

Configuring Power Automate

Create a new Flow from the SharePoint List > Automate > Power Automate > See your Flows

Click New > Automated from blank. Provide a Flow name, i.e. “Request – New Microsoft Teams Channel Provisioning”,

Select your Site Address and List Name as shown below.

Modify the Start an approval in line with your requirements, for this post I have included the layout I have created for my own tenant.

We now need a Data Operation in order to gather the Teams ID which is required to identify the Teams where the channel will be created.

first(split(last(split(triggerBody()['webUrl'],'groupId=')),'&tenantId'))

Add connector List teams and no additional

Create Filter array which looks at the Teams List based on the Team Name against the entry in the SharePoint List.

Next step is to create a channel with uses the apply to each array.

We have now completed the flow, so let’s go and create the request. As shown below.

This will now generate a request to create the team channel automatically in the background and as you can see all the new Project Channels have been created.

Regards,
The Author – Blogabout.Cloud

PowerShell Tip: Do all your Microsoft Teams have owners?

In many organisations where governance around the creation of Microsoft Teams is currently not in place. You may come across Teams where the owner may have left the organisation but the Team is still active. So using PowerShell we can find which Teams have or do not have owners.

Prerequistes

Microsoft Teams Module needs to be installed

Install-Module MicrosoftTeams

PowerShell Script

The following script will obtain all the required information and export to CSV.

$availableTeams = Get-Team
  $teams = @()
  foreach($team in $availableTeams)
  {
 
    Write-host "Discovered the following team:"  -NoNewline
    Write-host $team.DisplayName -ForegroundColor Yellow
    $users = Get-TeamUser -GroupId $team.GroupId
    $channel = Get-TeamChannel -GroupId $Team.GroupId
    $owners = @($users | Where-Object {$_.Role -eq 'owner'})
    $members = @($users | Where-Object {$_.Role -eq 'member'}).Length
    $guests = @($users | Where-Object {$_.Role -eq 'guest'}).Length

    Write-Host "Number of Owners =",($owners.count),"| Number of Members =",($members.count),"| Number of Guests =",($guests.count)

    $teamObject = New-Object -TypeName PSObject
    $teamObject | Add-Member -MemberType $NoteProperty -Name DisplayName -Value $team.DisplayName
    $teamObject | Add-Member -MemberType $NoteProperty -Name GroupID -Value $team.GroupId
    $teamObject | Add-Member -MemberType $NoteProperty -Name Alias -Value $team.MailNickName
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamVisibility" -Value $Team.Visibility
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamArchived" -Value $Team.Archived
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamOwners" -Value ($owners).Count
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamMembers" -Value ($members).Count
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamGuests" -Value ($guests).Count
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamOverallUserCount" -Value $users.Count
    $teamObject | Add-Member -Membertype $noteproperty -Name "TeamChannelCount" -Value $channel.Count


    if($owners.Count -eq 1)
    {
      $teamObject | Add-Member -MemberType $NoteProperty -Name 'Owner' -Value $owners[0].User
    }

    write-host ' Analysis Completed' -BackgroundColor DarkGreen
    $teams += $teamObject
  }

  $teams | Export-Csv -Path $env:USERPROFILE\desktop\Get-MicrosoftTeamOwnerInfo.csv
  write-host "Output exported to: $env:USERPROFILE\desktop\Get-MicrosoftTeamOwnerInfo.csv" -BackgroundColor DarkGreen
}

Regards,
The Author – Blogabout.Cloud

Power Automate and Microsoft Teams Tips: Posting messages on Teams Channel when a RSS feed published

Over the coming weeks I am going to be doing Power Automate post to demostrate the ability to automate workloads within Microsoft 365. Today, I am going look demostrate how I take RSS feeds from Microsoft Blogs and distrube to Microsoft Teams / To-Do. If you have been following my blog for a while you will know I am a big avocate for bringing code important data from Microsoft into Microsoft Teams. As an Architect working within the Microsoft 365 stack, there is always developments, releases and updates coming from Microsoft.

So how do we handle all this information from multiple sources into Microsoft Teams.

So as you can see from below, I have a Microsoft Team called “Microsoft Blogs” in this Teams. I have seperate channels for the areas I am most interested in;

  • Teams
  • Endpoint Manager
  • etc..

I gather this data from https://techcommunity.microsoft.com/t5/custom/page/page-id/Blogs

For the purpose of this post I am going to be looking at the Microsoft Security and Compliance Blog. This is a blog that I follow today and generates the most noise. So I am going create a new channel called Microsoft Security and Compliance Blog within Microsoft Blogs Teams.

So first of, make sure you create the Channel where you wil be publishing this data. Next we need the RSS URL, so if you click on the RSS button it will open a new tab with the required URL in the address bar

https://techcommunity.microsoft.com/plugins/custom/microsoft/o365/custom-blog-rss?tid=-1974032735906843784&board=MicrosoftSecurityandCompliance&label=&messages=&size=10

Configure Power Automate

Create a new Automated Flow

Provide a new for the Flow and select When a feed item is published

Enter the URL for the RSS Feed

Specify the Team and Channel you would like to publish the message. In my message I am providing a link to the Article, the date is was published, the Title and Summary of the post. The reason for this is so that if I am on the move, I can synchronize the content of the blog post to Microsoft Teams or even Microsoft To-Do so I can continue to read on the move.

When there is a new blog post published you will receive a message into your defined channel, just like the below

Why not To-Do?

So as I mentioned, I also push the blog posts to Microsoft To-Do. The reason for this is so I can close the To-Do item once I have read the article so I never miss any important updates.

You dont even how to stop there if you dont want to. You can leverage what ever connector you want in Power Automate to publish the data.

Regards
The Author – Blogabout.Cloud

Power Automate and Microsoft Teams Tips: Approval request process for a new Microsoft Teams Team

Over the coming weeks I am going to be doing Power Automate post to demostrate the ability to automate workloads within Microsoft 365. Today, I am going look at configuring an Approval process for the creation of a Microsoft Teams Team

Configuring a SharePoint List

I am no expert when it comes to SharePoint but any expert in “Share Pint” as how does love a good drink now and then. So back on topic within your SharePoint Online Site you need to create a new list as shown in the image below.


Give your SharePoint List a name and description for future reference.

As you can see from the below, I have create a number of columns to capture the information I would like to include into the approval process.

Column NameColumn Type
TitleTitle used for the Team Name.
DescriptionSingle line of text used to store the project description.
VisibilityChoice with the following options: “Private” and “Public”. Indicates if a team should visible to non-team members.
OwnersPerson or Group with Allow multiple selections enabled.
MembersPerson or Group with Allow multiple selections enabled.
JustifcationMultiple line of text used

Configuring Power Automate

Create a new Flow from the SharePoint List > Automate > Power Automate > See your Flows

Click New > Automated from blank. Provide a Flow name, i.e. “Request – New Microsoft Teams Team Provisioning”,

Select the SharePoint “When an item is created” trigger and click “Create”.

Select your Site Address and List Name from the drop down lists

Create a Start and wait for an approval condition. I have populated the below with information that I required within my own tenant.

Select Apply to each condition and select responses

Select Responses Approver response is equal to Approve

This section is now a bit more complex as I have decided to include an email notification if the request was a approved or rejected. If you follow the screenshot below you will see that I am using the SharePoint List items to provide Team Name, Description, Visiability fields and leveraging the list to include information into the email notification. You dont need to add email notifications into your flow but this is how you would do it.

Now we need to apply each Owner and Member to the new Microsoft Teams and this is completed as followed.

We have now completed the flow, so lets go and create the request. As shown below.

This will now generate a request to the approvers email address and when they click approve the team will be created as shown below with all the Owners and Members you defined.

Regards,
The Author – Blogabout.Cloud