Microsoft Flow in a real world scenario: using Office Quick Parts to fill out documents (part 02)

Part 02 (This article)

Email notification on smartphone in hand. New mail message in inbox, mailing letters or reading sms on mobile phone vector illustration

After the last step in the part 01 of this article series, we  are resuming with this flow. We now can save this, and quickly give it a test run if it delivers what we need.

Hit “Save”  button and check the flow for any errors from “Flow Checker” option on the top right corner. Also,  you can test any flow straightaway from here.

Today27_thumb[2]

Let’s do a dry run here. You have two options to test it out. Use data from the last run or trigger as a new instance. Hit “Save and Test” to begin.

Today28_thumb[2]

And hit “Continue” to start it.

Today23_thumb[2]

Inputs to be done here for the metadata fields we mapped and then simply hit “Run

Today24_thumb[2]

Flow also has an wonderful activity tracker. A cool new interface allows you to monitor your Flow activities from a one place.

Today25_thumb[2]

Click on “See flow run activity” to find out the status of this instance. This run has been succeeded.

Today26_thumb[2]

We can go back to the library and open up the document to see if our Quick Parts have been updated as per this run. Bare in mind that Word Online might have an issue when you open this kind of a document. Quick parts are working well with Office Desktop Application and Word online Preview Mode but, unfortunately having some issues in Word Online in edit mode. Therefore, make sure you test it with Word Application before you wonder where it went wrong as quick parts may still show empty in online mode even after running the Flow successfully.

Here’s how it should look like after the execution.

Today30_thumb[2]

Sending Email Alerts up on completion

After composing of the document, we can configure the flow to send out email alerts. In this scenario, I’m going to send alerts to the person who triggered this flow, alerting him with the composed document as an attachment.

Let’s go ahead and add a new step as usual.

Today31

Search for “Get file content” SharePoint action

Today37

We have to rename it as “Get file content new” so it makes better sense as we already have a step with the default name.

Today38

Next up, parameters. Choose the appropriate site URL from the drop down and file identified has to be the ID. Leave the “Infer Content Type” with its default and that’s it.

Today39

Now, add another new step which we will be using to configure the email alert. search for “Send an email” and select the “Send an email (V2) (Preview)”

Today32

Parameters to be configured as shown below. search for “User email” attribute for Receiver field and choose it.

Today33

My subject line will be “Text: customer name field” concatenated. Feel free to have your own here. Type the text and look for “Customer Name” attribute and place it next to the text in the subject line as shown below.

The Body will be just a plain text which indicates the purpose of this mail. Again, it’s all up to you to insert anything here.

Today34

For the attachment name, use File name with extension, from the Update file properties section.  For the File Content, get that from the Get file content new file section.

Today35

You can extend the content section by adding more attachment/content but that’s optional. just leave the “Importance” as normal here which depends on your situation though. Feel free to adjust these parameters as required.

Today36

Now the exciting part !. We can run our full flow to see if everything works as expected. So I will go ahead and kick it.

Today40

Click on “see flow run activity” to see the status of this instance.

Today41

And click again on the latest instance from the history of this flow.

Today42

You will see the entire history of the instance selected. And best of all, in just a simple click you can see the action result in a handy dandy UI ! Isn’t this amazing ?

Today43

Now let’s switch to our outlook account. In my case it’s my account which was used to kick the Flow. And, I can see the latest item with all our parameters including the attachment which means the hard works have paid off !!

Today44

In addition to that, Flow Dashboard is a great place to keep up with all your things around Flows across the entire tenant. You can turn on/off a flow with just a button swipe!. Statuses and other handy dandy stuff all brought in to a one place to make your life more easier.

 Today29_thumb[2]

Until next flow post, Happy Flowing !

Start over with part 01 

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

Find and export list of users with no Skills Defined in Office 365 profile

This is the article 07 in this series.

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

delve

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO SKILLS DEFINED IN THEIR PROFILE (This Article)

Defining someone’s skill sets in their profile is vital when it comes to collaboration and team work. It allows others to reach out to the right person on a specific subject. With the Skills field left blank, the organization will not benefit of expertise finder in Office 365.

In this article I’m trying to explain the steps it takes to find out the users who has not set their skills in their Office 365 profile (or simply, delve profile). So here we go, following are the requirements before we get started:

  • Azure AD PowerShell Module – download here
  • Azure AD Administrator Rights
  • SharePoint Online Administrator Rights
  • SharePoint Online PnP Module – download here

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory.

$cred = get-Credential

Connect-AzureAD -Credential $cred

Connect-PnpOnline -Url https://mantoso-admin.sharepoint.com/ -Credentials $cred

Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}

Now to create an empty array in which we will later store the output (user list who has not set skills).

$NoSkillsUsers = @()

Now we will dig in through each user, and check if they have a SharePoint Online profile. This is because this property is stored in SharePoint and not in Azure AD account. If a profile exists, I will check their Skills property is filled or not. If not, I will add them to the array I just created in the previous step, and export them to a CSV file called “NoSkillsUsers.csv”. Similar to the ones we did in the previous articles of this series.

foreach ($user in $Users) 
{
    $SPProfile  = Get-PnPUserProfileProperty -Account $user.UserPrincipalName -ErrorAction SilentlyContinue
        if ($SPProfile -ne $null)
        {
          if ($SPProfile.UserProfileProperties.'SPS-Skills' -eq "")
            {
               $NoSkillsUsers += $user
            }
        }
}

And, finally we can export the SharePoint result to a CSV through below part.

$NoSkillsUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoSkillsUsers.csv" -NoTypeInformation

If you need to obtain a similar report on other user criteria’s, here are the other articles of this series which would help you to achieve it.

  1. Find and export list of users with no Manager Name set in Office 365 profile:
  2. Find and export list of users with no Manager Name set in Office 365 profile:
  3. Find and export list of users with no Profile Picture set in Office 365 Account:
  4. Find and export list of users with no Birthday set in Office 365 profile:
  5. Find and export list of users with no Country set in Office 365 Profile:
  6. Find and export list of users with no Department set in Office 365 Profile:
  7. Find and export list of users with no Skills Defined in Office 365 profile:
  8. Find and export the list of users who has not completed About Me section in their Office 365 profile

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

Find and export list of users with no Department set in Office 365 profile

This is the article 06 in this series.

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

delve

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO DEPARTMENT SET IN THEIR PROFILE (This Article)

In this article I’m trying to explain the steps it takes to find out the users who has not set the relevant department in their Office 365 profile (or simply, delve profile).

So here we go, following are the requirements before we get started:

  • Azure AD PowerShell Module – download here
  • Azure AD Administrator Rights

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory.

$cred = get-Credential
Connect-AzureAD -Credential $cred

Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}

Now to create an empty array in which we will later store the output (user list who has not set a mobile)

$NoDepUsers = @()

Now we will dig in through each user, and check if their Department property is filled or not. If not, I will add them to the array I just created in the previous step, and export them to a CSV file called “NoDepUsers.csv”. Similar to the ones we did in the previous articles of this series.

foreach ($user in $Users) 
{
    if ($user.Department -eq $null)
    {
        $NoDepUsers += $user
    }
}

And, finally we can export the SharePoint result to a CSV through below part.

$NoDepUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoDepUsers.csv" -NoTypeInformation

If you need to obtain a similar report on other user criteria’s, here are the other articles of this series which would help you to achieve it.

  1. Find and export list of users with no Manager Name set in Office 365 profile:
  2. Find and export list of users with no Manager Name set in Office 365 profile:
  3. Find and export list of users with no Profile Picture set in Office 365 Account:
  4. Find and export list of users with no Birthday set in Office 365 profile:
  5. Find and export list of users with no Country set in Office 365 Profile:
  6. Find and export list of users with no Department set in Office 365 Profile:
  7. Find and export list of users with no Skills Defined in Office 365 profile:
  8. Find and export the list of users who has not completed About Me section in their Office 365 profile

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

Find and export list of users with no Country set in Office 365 Profile

This is the article no 05 in the series.

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

clip_image001_thumb2_thumb[3]

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO COUNTRY SET IN THEIR PROFILE (This Article)

In this article I’m demonstrating the steps it takes to find out the users who has not set their relevant country in Office 365 profiles (or simply, delve profile). This isn’t sort of a blog I wanted to write but since this daily requests comes from HR to find users (not criminals though !), this might be a common case in most places and why not write down the steps right?

So here we go, following are the requirements before we get started. Make sure you setup your environment with these:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory.

$cred = get-Credential
Connect-AzureAD -Credential $cred
Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}
Now to create an empty array in which we will later store the output (user list who has not set the relevant Country)

$NoCountryUsers = @()

Now we will dig in through each user, and check if they have any value set in their Azure AD user profile. If not, we will save them in to the array we crated. And then finally export these set of users in to a CSV file called “NoCountryUsers.csv“.

foreach ($user in $Users)
{
    if ($user.Country -eq $null)
    {
        $NoCountryUsers += $user
    }
}
And, finally we can export the SharePoint result to a CSV through below part. This line will save the data that we extracted and stored in the array we created as “NoCountryUsers
$NoCountryUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoCountryUsers.csv" -NoTypeInformation
 
DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

 

 

 

Find and export list of users with no Profile Picture set in Office 365 Account

This is the article no 04 in the series

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

clip_image001_thumb2_thumb[3]

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO PROFILE PICTURE SET IN THEIR PROFILE (This Article)

Profile picture on a name helps recognizing coworkers easily among thousands of other people in a organization. Not setting a picture in a profile would not look nice as it reflects to most of the productivity, communication and collaboration apps such as  SharePoint Online, Delve, Teams and Exchange. A gray sample placeholder like below, is not suitable for a corporate setup and not the optimal experience, so let’s find out how we can fetch such users so our HR can alert them to take action.

ProfilePic

In this article I’m trying to explain the steps it takes to find out the users who has not set Profile Picture in Office 365 accounts. This isn’t sort of a blog I wanted to write but since this daily requests comes from HR to find users (not criminals though !), this might be a common case in most places and why not write down the steps right?

So here we go, following are the requirements before we get started. Make sure you setup your environment with these:

  • Azure AD Administrator
  • Exchange Online Administrator
  • AzureAD PowerShell Module
  • Exchange Online PowerShell Module (only if MFA in use)

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory and the Exchange Online.

$cred = get-Credential
Connect-AzureAD -Credential $cred
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session

Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}
Now to create an empty array in which we will later store the output (user list who has not set a Picture)

$NoPicUsers = @()

Now we will dig in through each user, and check if they have set a picture as part of their profile.If not we will add that user in the newly created array. and Then lastly we will export these set of users in to a CSV file called “NoPicUsers.csv“.

foreach ($user in $Users)
{
    $Picture = Get-UserPhoto -Identity $user.UserPrincipalName -ErrorAction SilentlyContinue
    if ($Picture -eq $null)
    {
        $NoPicUsers += $user
    }
}

And, finally we can export the SharePoint result to a CSV through below part. This line will save the data that we extracted and stored in the array we created as “NoPicUsers

$NoPicUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoPicUsers.csv" -NoTypeInformation

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

Find and export list of users with no Birthday set in Office 365 profile

This is the article 03 in the series.

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

clip_image001_thumb2

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet article series, I’m trying to give you the steps that we followed during the identifying process as requested by our HR. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO BIRTHDAY SET IN THEIR PROFILE (This Article)

Birthday

In this article I’m trying to explain the steps it takes to find out the users who has not set their Birthdays in Office 365 profiles (or simply, delve profile). This isn’t sort of a blog I wanted to write but since this daily requests comes from HR to find users (not criminals though !), this might be a common case in most places and why not write down the steps right?

So here we go, following are the requirements before we get started. Make sure you setup your environment with these:

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory and the SharePoint Online Admin Center with the PnP cmdlets.

$cred = get-Credential
Connect-AzureAD -Credential $cred
Connect-PnpOnline -Url https://mantoso-admin.sharepoint.com/ -Credentials $cred

Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}

Now to create an empty array in which we will later store the output (user list who has not set Birthday).

$NoBDUsers = @()

Now we will dig in through each user, and check if they have a SharePoint online profile as this property is stored in SharePoint, not in Azure AD. If profile is available and the SP-Birthday property is null, it simply means the particular user have not set the birthday. Then lastly we will export these set of users in to a CSV file called “NoBDUsers.csv“.

foreach ($user in $Users) 
{
    $SPProfile  = Get-PnPUserProfileProperty -Account $user.UserPrincipalName -ErrorAction SilentlyContinue
        if ($SPProfile -ne $null)
        {
          if ($SPProfile.UserProfileProperties.'SPS-Birthday' -eq "")
            {
               $NoBDUsers += $user
            }
        }
}

And, finally we can export the SharePoint result to a CSV through below part. This line will save the data that we extracted and stored in the array we created as “NoBDUsers

$NoBDUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoBDUsers.csv" -NoTypeInformation

If you need to obtain a similar report on other user criteria’s, here are the other articles of this series which would help you to achieve it.

  1. Find and export list of users with no Manager Name set in Office 365 profile:
  2. Find and export list of users with no Manager Name set in Office 365 profile:
  3. Find and export list of users with no Profile Picture set in Office 365 Account:
  4. Find and export list of users with no Birthday set in Office 365 profile:
  5. Find and export list of users with no Country set in Office 365 Profile:
  6. Find and export list of users with no Department set in Office 365 Profile:
  7. Find and export list of users with no Skills Defined in Office 365 profile:
  8. Find and export the list of users who has not completed About Me section in their Office 365 profile

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.

Find and export list of users with no Manager Name set in Office 365 profile

This is the article no 02 in this series.

Having a complete profile in Office365 is not just a benefit for user himself, but for the entire organization which directly impacts on productivity. A finished profile leads to better visibility and eventually results in faster communications across hundreds of thousands of employees in an enterprise setup. Ultimate idea of Office Delve (latest interface of profile comes with more capabilities such as recent activities) is to provide overall insights of a user information and his activities/engagements which makes obvious sense for anyone.

clip_image001_thumb2

Nevertheless, none of these would be in action unless you have a complete profile with basic details entered in. No matter how much HR would try to push, we still spot a lot of random users who haven’t completed their profiles.

With this short and sweet series of articles, I’m trying to give you the steps that I followed during the identifying process as requested by one of my client’s HR team. screenshots may differ than our production setup, but you surely will get the point here.

I had to use some PowerShell scripting to get this list out from Office 365 and generate a CSV file for each criteria so that HR can directly reach out to the user via emails and advice to take an action to update the profile on the spot. As a result, we were able to get 100% completeness of profiles across a 5000+ employee organization.

There is no out of the box reporting when it comes to Profile Completeness in Office 365, therefore we have no option other than PowerShell. PowerShell is the ultimate tool for O365 administration, whenever graphical interface has a barrier, hence, make sure you dig around it to understand its capabilities to go beyond.

FINDING USERS WITH NO MANAGER NAME SET IN THEIR PROFILE (This Article)

Setting Manager property in the user profile is important as it reflects to Organization Chart and Workflow Steps where Manager property is fetched and Many other productivity features of Office 365 which are daily utilized. Therefore, its not a good idea to keep it empty !

OrgChart

In this article I’m showing you how to extract the users who has not set manager’s name in their Office 365 profile (or simply, delve profile). This isn’t sort of a blog I wanted to write but since this daily requests comes from HR to find users (not criminals though !), this might be a common case in most places and why not write down the steps right?

So here we go, following are the requirements before we get started:

Script steps breakdown:

First and foremost, we need to fetch the Office365 credentials and then connect to Azure Active Directory and the SharePoint Online Admin Center with the PnP cmdlets.

$cred = get-Credential
Connect-AzureAD -Credential $cred
Then let’s fetch all users in this tenant, who are internal to the company and that have at least one license assigned to them.

$Users = Get-AzureADUser | Where {$_.UserType -eq 'Member' -and $_.AssignedLicenses -ne $null}

Now to create an empty array in which we will later store the output (user list who has not set a mobile)

$NoMNGUsers = @()
Now we will dig in through each user, and check if their Manager property is filled or not. If not, I will add them to the array I just created in the previous step, and export them to a CSV file called “NoMNGUsers.csv”. Sounds great right !
foreach ($user in $Users)
{
    $Manager = Get-AzureADUserManager -ObjectId $user.UserPrincipalName
    if ($Manager -eq $null)
    {
        $NoMNGUsers += $user
    }
}

And, finally we can export the result set to a CSV through below part.

$NoManagerUsers | Select DisplayName, UserPrincipalName | Export-Csv -Path "C:\Tools\Reports\NoMNGUsers.csv" -NoTypeInformation

If you need to obtain a similar report on other user criteria’s, here are the other articles of this series which would help you to achieve it.

  1. Find and export list of users with no Manager Name set in Office 365 profile:
  2. Find and export list of users with no Manager Name set in Office 365 profile:
  3. Find and export list of users with no Profile Picture set in Office 365 Account:
  4. Find and export list of users with no Birthday set in Office 365 profile:
  5. Find and export list of users with no Country set in Office 365 Profile:
  6. Find and export list of users with no Department set in Office 365 Profile:
  7. Find and export list of users with no Skills Defined in Office 365 profile:
  8. Find and export the list of users who has not completed About Me section in their Office 365 profile

DISCLAIMER NOTE: This is an enthusiast post and is not sponsored by Microsoft or any other vendor.