cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
JimSutt
Advocate II
Advocate II

List of all direct reports and subordinates

I'm trying to build a Power Automate flow that will output a list of all every user that reports (both directly and indirectly) to a manager user ID (input).  I have tried to use the "Office 365 Users.Get direct reports" action, save the output to an array variable, and then loop through that array with the same "Get direct reports" action to return the next layer of users.  When finished, I would append all these lists together for a single complete list of all direct and indirect reports.

 

My issue is there could be 5+ layers of management in the organization, so I would like the flow to keep digging into each user until the "Get direct reports" returns nothing.  There has to be a simpler method than essentially an infinite number of embedded loops!

93 REPLIES 93

@J__N I don't know what is not working in your flow.  Please try a brand new flow with just these steps and see if it works.  You should be able to test it with a legitimate email in your organization, go into the Run History, and expand the Select step to see the details of the individual who's email you entered.  

@Diti see the following screenshot of the code I wrote to check a SharePoint list if the record exists or not, and then write to the list if the record does not exist.  This code can be added in the loop before or after appending the row to the FinalArray.  NOTE:  You'll need to change the source to the Output.  My screenshot is checking for the Manager, but the concept is the same:  For each record you're adding to FinalArray, check if that record already exists in the SP List and add the record if it does not.  

Check_then_Write_to_SP_List.png

hey Jim - I have tried to apply the sample you've provided to my scenario but with no success. Below is what I'm using: the first screenshot is the summary view and the following screenshots show the detail for each step.

 

Diti_0-1678817931681.png

Diti_3-1678818401755.png

 

 

Diti_2-1678818293733.png

 

 

Anonymous
Not applicable

Hi JimSutt - Thanks for sharing the flow. I tried to replicate it - somehow it doesn't work for me. Also I'm unable to save the flow as it gives below error message:

Flow save failed with code 'InvalidTemplate' and message 'The template validation failed: 'The inputs of template action 'Initialize_array_variable:_FinalArray' at line '1 and column '1561' is invalid. Action 'Apply_to_each' must be a parent 'foreach' scope of action 'Initialize_array_variable:_FinalArray' to be referenced by 'repeatItems' or 'items' functions.'.'.

 

I'm attaching the Flow for your quick reference. Would really appreciate if you could guide me on this.

Note: The first 'Apply to Each' gets automatically applied - I'm unable to prevent it from happening.

P.S - I'm a new to Power Automate - Apologies in advance if any of my doubts seem silly.


ysh_thakar_0-1678821060514.png

ysh_thakar_1-1678821106102.png

ysh_thakar_2-1678821160342.png

ysh_thakar_3-1678821227322.png

ysh_thakar_4-1678821279631.png

 

 

 

@Diti In the "Check SP List for Employee" step, change the Filter Query to:

Mail eq '<expression>'

You are missing the single quotes.

Next change the above <expression> to:

items('Apply_to_each')?['Mail']

 When finished, it should say:

Mail eq 'items('Apply_to_each')?['Mail']'

 

In the "Create Item" step, change all of the expressions to:

items('Apply_to_each')?['<field name>']

For instance, DisplayName should be set to:

items('Apply_to_each')?['DisplayName']

@Anonymous In the "Search for users (V2)" step, click "Show advanced options" and set Top = 1.  In the "Apply to each" loop, click and drag the Select step to the space between the "Search for users (V2)" and the "Apply to each" step.  This should allow you to get the Select step outside of the loop.  Then delete the "Apply to each" step.  

You sir are amazing!! 

 

If I wanted to delete any items that show in the SP list and not in my list of direct reports (e.g when an employee leaves), do I add a delete item action such as below:

 

Diti_0-1678824493481.png

 

Anonymous
Not applicable

Hi Jim, the 1st part worked. However Unable to remove 'Apply to each' even after doing drag & drop.

Any workaround for this?

I'm happy to add couple of steps if need be; but just want to cross this last mile & make the flow work.

@Diti I don't think that will work where you have it.  I haven't done this before, so it would take a lot of trial and error, but I think you would need to add steps at the end of your flow that would do the following:

  1. Get all the rows in your SharePoint List (SharePoint.Get Items)
  2. Loop through all the rows from Step 1.
    1. Search the FinalArray for the current item in the loop.
    2. If found, do nothing.  If not found, delete that row from the SP list.
Anonymous
Not applicable

Hi Jim.. I re-did the entire flow & got over the previous issues. When I did a test run - it's giving error in the 2nd last step i.e. Append to Array Variable. It says "The action type 'AppendToArrayVariable' only supports values of types 'Float, Integer, String, Boolean, Object'."

Could you help with this please.

@Anonymous I'm sorry, but I'm not sure why you're getting that error.  The input to the "Apply to each" loop is an array containing strings and a boolean.  You could try to simplify it for testing purposes in the "Select 2" step by only including one field (ex. "Mail") and see if that works.  If so, try adding the fields back in until you determine which is causing the issue.  

Thank you! Will try to play around with this today! I will post it if i find the solution

Anonymous
Not applicable

You are a Legend Jim. The Flow worked wonders...! Thank you so much for your help.

A quick question, If I may - While the output was great of the flow, it's missing the Reporting to / Manager field for subordinates. Any way we can get this added in this flow itself?

@Anonymous The manager email is included in the flow already.  Expand the "Finally" scope and see "Scope 2".  You can use any of the fields returned in the "Get direct reports (V2)", then add them to the "Select 2" step.  If you're not sure what fields are available, look in your flow history, expand "Get direct reports (V2)", and look in the Outputs section.  Hope this helps.

Unfortunately I've had no luck with this yet. Please let me know if you're able to find a solution.

Anonymous
Not applicable

Thank you Jim - This too worked for me.

Unfortunately, I ran into another issue & can't seem to find a fix for it anywhere online - request if you could guide me here as well please.

The Headcount of my organization is 15,000+; The 'Do Until' default limits are set to 60 iterations in Period Time of 1 Hour; however 60 iterations only yield me a very tiny subset of the overall 15,000+ employees. I tried increasing the limits to 200 iterations & set the PT to PT5H. Below are the results I got in both scenarios:

60 Iterations: If I copy-paste the 'Body' field under 'OUTPUTS' (attached screenshot for your reference) in to an Excel Spreadsheet; the data arranges itself into a proper Tabular format where every column is separated & have headers too.

ysh_thakar_0-1678993991283.png

 

200 Iterations:  This does not display anything under 'OUTPUTS' in the 'Body' field. I'm assuming it's obviously because the size of the data retrieved is much bigger than that at 60 Iterations. But when I do click on 'Click to download' - it opens up another tab in the browser & has long string data which is not getting arranged in Tabular format when copied to Excel spreadsheet.

 

ysh_thakar_1-1678994721413.png 

ysh_thakar_2-1678996164735.png

 

Is there any workaround for this - because setting iterations at 60 (just for the sake of getting structured format data) will not serve the purpose.

 

Note: At 200 iterations also, I did not get entire data of my Org - it was just few hundreds of employee more than at 60 iterations. I was planning to set the limits to maximum (5000 iterations); However since 200 iterations did not work, there was no point trying to go for any higher limits.

Request you to kindly share your expertise on this please...

@Anonymous I'm sorry, but I don't have an answer for you to cover your entire organization in a single run.  My best suggestion is to reduce the job into multiple runs.  For instance, try running the job from several levels below the leader in your company hierarchy.  That is how I would do it if I wanted to run the flow for my entire company, which has over 100k employees.  

Anonymous
Not applicable

@JimSutt1 : No worries, Jim. Thanks once again for all your help on this topic. 

Hi @JimSutt1,
Could you please share this image with higher resolution? I can not see the details. 😞
I am really interested in the scope solutions in your flow, and also about the sidenotes!
Thank you in advance.

Thank you so much, this flow is a major time saver.

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (2,051)