cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
SBS
Advocate I
Advocate I

Get all users through Office 365 Users connector through Search for users (V2)

I'm trying to retrieve all our internal users through the Office 365 Users connector using Search for users (V2) in Power Automate. I would like to display all the users with a @company.com emailaddress. When searching on @company.com or just @ I don't get any results. When searching on my own firstname.lastname@company.com I do get a result. I can't find any documentation on the search field of Search for users (V2). How does it exactly work? Can I use wildcards?

 

searchusers.png

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
SBS
Advocate I
Advocate I

Thank you. I found a solution by just changing the pagination setting to 2000, leaving the searchbox empty and filtering the array to reduce the input to only real employee accounts. 

View solution in original post

22 REPLIES 22
RobElliott
Super User
Super User

The Search for Users searches a particular search term, for example a full email address, and unfortunately you can't use a wildcard with it to get back all users. https://docs.microsoft.com/en-us/connectors/office365users/ 

Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

Hi RobElliot,

 

Thank you for your reply. When I leave the search term empty the connector returns all the users. The problem is that it only returns the first 1000 users and the rest gets paginated. If I could search on the domainname of the emailaddress the result would only be 450. I can search firstname.lastname@company.com but I cant search on company.com because this returns zero results.

 

Kind regards

v-litu-msft
Community Support
Community Support

Hi @SBS,

 

You could use the Get group members action of the Auzre AD connector, it will return all members of the Groups, also, if you want to get all the members in the tenant, you could get all groups ID to put into the Get group members, then append them into an array:Annotation 2020-01-01 143702.png

Get Members of a group

Annotation 2020-01-01 144821.png

Get members of multiple Groups

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

SBS
Advocate I
Advocate I

Thank you. I found a solution by just changing the pagination setting to 2000, leaving the searchbox empty and filtering the array to reduce the input to only real employee accounts. 

View solution in original post

I am interested to know how you achieved that as I am trying to do a very similar thing.

"changing the pagination setting to 2000 and filtering the array to reduce the input to only real employee accounts"

 

Although tests succeed, I don't seem to get any data returned.

 

 

Click the "..." on the right hand corner of the Action,

Turn on "Pagination" and enter your Threshold

 

Add image for your reference:

page.png

draymond11
Frequent Visitor

@SBS Thanks for this. Can you share how you filtered the array?

@SBS How did you filtered the search to real employee accounts?

Hi @draymond11 ,

You could to this using the Filter Array action: Powerhouse_Power_Automate_Filter_array.png

 

Expression in my filter = 

@equals(item()?['AccountEnabled'], true)

 

mccardj
Helper II
Helper II

Hi @Django ,

 

Would you be able to share more of your flow end to end? Every time I do the Compose length I did this error. What I'm trying to do is filter users who have an Office 365 account to go down 1 path, those who don't go down another path.

 

Screenshot (1).png

@mccardj You are probably trying to get the length of an empty field. For example if you are trying to get the length of a department while this is not filled in for every employee. You could also use the empty() function to check if there's a value. 

@draymond11 

I am using a filter array with the following condition:

and(
equals(item()?['AccountEnabled'],true)
,not(startsWith(item()?['DisplayName'], 'Admin '))
,greater(length(string(item()?['Surname'])), 0)
,not(empty(item()?['Mail']))
,not(empty(item()?['JobTitle']))
,not(empty(item()?['Department']))
,not(contains(item()?['Mail'], '&'))
,not(contains(item()?['Mail'], 'robot'))
,not(contains(item()?['GivenName'], 'test'))
)

 

What exact conditions you should use depends on how your company uses the Azure AD. You should export the non filtered "Search for users v2" result to Excel, for example by making a csv out of it in Power Automate, and analyze the values of the different fields to see what filters you should use.

Hi @mccardj,

@SBS is right. I only use the Compose actions for troubleshooting and Flow Summary at the end counting all results. In my example the lenght() expressions counts the items filtered in the previous step:

length(body('Filter_array_UsersMailPowerhouseEnabled'))

 

The syntax of the length() expression needs to be correct though. Hopefully my example helps but be aware that the Compose action is just supporting and not a need for the original requirement.

KProuty
Advocate II
Advocate II

Nope, don't have it.... (I only have read access to Azure so this Office365 workaround is great, but I am not getting the output.)

I'm a power user at a nonprofit and not a programmer, so paid connectors are out.

 

I have the trigger, the search users with the pagination (not that I think I need it for the amount of users we have), the apply to each to add a row in an excel file in Sharepoint. Nothing gets written, although it says the flow ran successfully.Not writing to the excel fileNot writing to the excel fileFlowError2.png

@KProuty  The search field of "Search for users v2" should be empty to search for all users. To see if the action produced output you should check the run history of your flow. Even if the output is empty Power Automate still considers it as succesful. Succesful just means that there is no error and the step ran. 

@KProuty 

 

The search field of "Search for users v2" should be empty to search for all users. To see if the action produced output you should check the run history of your flow. Even if the output is empty Power Automate still considers it as succesful. Succesful just means that there is no error and the step ran. 

 

flow_lege_output.png

 

 

flow_output.png

 

Use 

 

length(outputs('Search_for_users_(V2)')?['body/value'])

 

in a compose action to get the number op returned users

 

I had a character in the search field, so it would run, but not return anything. Took that out and it worked like a charm. Thank you also for putting in the compose option. I hadn't seen that before!

 

You rock!

SBS
Advocate I
Advocate I

You're welcome. Glad to hear that it worked. You could also add a filter after the Search for users v2 action because the returned users are not always "real" employees or accounts. We only have 500 employees but Search for users v2 returns 1600 users. 

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Users online (1,206)