cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Resolver I
Resolver I

Use Flow to Remove User from Permissions Group

Hi. I am relatively new to using REST operations, and I am at a loss as to how to remove a user from a SharePoint permissions group by using the Flow action "Send an HTTP Request to SharePoint."

 

I have a list of users--who are already provisioned in our SharePoint Online collection--that will be updated monthly with names of those requiring access and those leaving the department.

 

The list already exists, and I have been able to handle ADDING new users to the necessary groups; but I can't figure out how to (or even whether I can) remove users. Everything I've tried so far has ended with a "Missing required query string: @target..." error, or a more-basic JSON formatting error.

 

Here is my untrained attempt at configuring the REST action from Flow:

11-26-2018 12-09-34 PM.png

 

Help, please!!

(Thanks!)

2 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted
Community Support
Community Support

Re: Use Flow to Remove User from Permissions Group

Hi @mboonie,

 

May you try to use the Plumsail action Remove user from SharePoint Group to remove user from a group.

https://plumsail.com/docs/actions/v1.x/flow/how-tos/sharepoint/create-sp-group-add-users.html

Besides, I have seen a blog on how to remove users from a SharePoint Group in SPFx, please check the following link for more details:

https://blog.hubfly.com/sharepoint/how-to-manage-sharepoint-groups-using-rest-api-in-sharepoint-fram...

 

Best regards,

Mabel

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

View solution in original post

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

Got it!

I took a hard look at the "How to manage SharePoint Groups..." link above and was (apparently!) finally able to map the correct bits to the HTTP REST action. (Adding a user was much simpler, but that was probably because there was an explicit example of the correct Flow action elsewhere that I was able to leverage.)

So, to possibly save others from the same stress, here is a simplified version of the way I set up my Onboarding and Off-boarding flow:

11-27-2018 10-31-26 AM.png

View solution in original post

18 REPLIES 18
Highlighted
Community Support
Community Support

Re: Use Flow to Remove User from Permissions Group

Hi @mboonie,

 

May you try to use the Plumsail action Remove user from SharePoint Group to remove user from a group.

https://plumsail.com/docs/actions/v1.x/flow/how-tos/sharepoint/create-sp-group-add-users.html

Besides, I have seen a blog on how to remove users from a SharePoint Group in SPFx, please check the following link for more details:

https://blog.hubfly.com/sharepoint/how-to-manage-sharepoint-groups-using-rest-api-in-sharepoint-fram...

 

Best regards,

Mabel

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

View solution in original post

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

Unfortunately, my company has restricted the connectors/actions that we are allowed to use, and I am unable to register Plumsail apps and features.

 

I saw the other link earlier, but I had trouble understanding how to map the information in the article to the "Send HTTP to SharePoint" action. In particular, I'm not sure what to do with the content beginning with "let dataToPost = JSON.stringify(..." Do I put the whole thing in the "Body"? (I just tried that--substituting my userID variable for the login name--and received the all-too-familiar "Not well formatted JSON stream." message.)

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

Got it!

I took a hard look at the "How to manage SharePoint Groups..." link above and was (apparently!) finally able to map the correct bits to the HTTP REST action. (Adding a user was much simpler, but that was probably because there was an explicit example of the correct Flow action elsewhere that I was able to leverage.)

So, to possibly save others from the same stress, here is a simplified version of the way I set up my Onboarding and Off-boarding flow:

11-27-2018 10-31-26 AM.png

View solution in original post

Highlighted
Frequent Visitor

Re: Use Flow to Remove User from Permissions Group

Hi Mboonie

 

I have try to do the same but i get error on removeByLoginName

Status code
 500
 
{
"error": {
"code": 500,
"source": "flow-apim-europe-001-francecentral-01.azure-apim.net",
"clientRequestId": "2625e643-33cc-46a5-afa0-862a9f5569ab",
"message": "BadGateway",
"innerError": {
"status": 500,
"message": "The format of value 'application/json;\nodata=verbose' is invalid.\r\nclientRequestId: 2625e643-33cc-46a5-afa0-862a9f5569ab",
"source": "sharepointonline-ne.azconn-ne.p.azurewebsites.net"
}
}
}2019_01_29_14_48_24_Window.png
 
Can you please spot what is missing ? the user are member of that group
 
Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

If you look at either the "Headers" section of the INPUTS results (or the "Message" information in the output, which you pasted below), you'll see that there is a carriage-return getting encoded, resulting in a poorly-formed Headers input. (The carriage return is encoded as "\n" and ends up being sent as part of the header.) Thus, the header being sent is literally "application/json;\nodata=verbose", when it should be "application/json;odata=verbose".

HTTPRequestRemoveUser.png

Remove the carriage-returns and you'll likely resolve the problem.

 

-Boonie

Highlighted
Frequent Visitor

Re: Use Flow to Remove User from Permissions Group

Hi All,

 

just a note. I tried using the solution but kept on getting errors similar to previous highlighted. Found out if i was copy pasting any of the code parts then i would get an error. When i typed out the parts then the flow would work.

 

hope this helps.

Highlighted
Anonymous
Not applicable

Re: Use Flow to Remove User from Permissions Group

Hello - Newbie here. I just wanted to know how to get the ID# in GetbyID in your Uri.

 

I don't know where in SharePoint site I will get the ID. Thanks in advance.

Highlighted
Anonymous
Not applicable

Re: Use Flow to Remove User from Permissions Group

Please help. I got an error.

 

{
"message": "{\"odata.error\":{\"code\":\"-2130575276, Microsoft.SharePoint.SPException\",\"message\":{\"lang\":\"en-US\",\"value\":\"The user does not exist or is not unique.\"}}}\r\nclientRequestId: 31b44b28-73e5-4128-b224-620da891c1a9\r\nserviceRequestId: 59a2ea9e-f03d-0000-3fd8-97d38820f7fb",
"status": 404,
"source": "siteaddress/_api/Web/SiteGroups/GetByID(3)/Users/removeByLoginName",
"errors": []
}

 

not sure what is the format of loginName.

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

Hi, @Anonymous, and welcome.

You can get the ID/GUID of anything (lists, libraries, views, etc.) by going to it's Settings and checking the URL.

For example, if I select a list from my Site Contents and go to "List Settings" (click on the gear in the upper-right corner), you can find the list's ID in the URL that appears. For example: https://mycompany.sharepoint.com/teams/mySite/Outsourcing/_layouts/15/listedit.aspx?List=%7Bb91078c8-03ae-4289-be1d-2ecd29b3167d%7D

The ID itself is found after "List=". Some menus--and some browsers--display it differently. For example, it may appear encoded as "List=%7Bb91078c8%2D03ae%2D4289%2Dbe1d%2D2ecd29b3167d%7D" or decoded, as "List={B91078C8-03AE-4289-BE1D-2ECD29B3167D}" or even in-between, as "List=b91078c8%2D03ae%2D4289%2Dbe1d%2D2ecd29b3167d".

If it is encoded, you can certainly convert it manually (once you remember things like "%2D" is a hyphen, "%7B" is an opening curly brace, "%7D" is a closing curly brace, etc.). Or, you can use free online utilities like https://www.urlencoder.org/

Generally, when providing an ID, you include the hyphens but not the surrounding curly braces. Thus, when prompted for an ID, the acceptable format is "B91078C8-03AE-4289-BE1D-2ECD29B3167D" (decoded, but without the curly braces.)

Note that there are some connectors where using the ID in place of selecting from the drop-down list of SharePoint Lists is a necessary "workaround." For example, the Get Items action displays your site's lists but not calendars. In these instances, selecting "Custom value" and then providing the item's ID is the only recourse.

Good luck... I hope this helps!

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

Ahh, I hate when that happens. That means that it was not able to resolve the email address. Usually this is because they aren't in the group from which you are trying to remove them.

A if/then simple check worked for me. I first set a variable to the email property of the user I'm working with. Then I check the length of the variable to determine whether the email of the user in question exists in the list. If there is no email, I stop the process. So, you can check with something like "if length(triggerBody()?['JBIOEmployee']?['Email']) > 0..." If it is false (i.e. there was no email), then I know not to bother with trying to remove them.

CheckEmail.png

 

Good luck!

Highlighted
Resolver I
Resolver I

Re: Use Flow to Remove User from Permissions Group

I must clarify the answer about checking the length of the email to see if there actually is one. That logic simply determines whether there IS an email, not whether it's legit (although usually it can't be one without the other!)

To actually determine whether the email is legitimate, you should use the action "Resolve Person." You supply the name of the list against which you want to validate it; the name of a Person column in that list; and the actual email of the user. If that email is an acceptable value for the list/column that you specified, the action will return legit user credentials. More importanly, if the user is not legit, it will return an error, which you can check for by using an action that will only run if that function returned an error. In this example, if the user isn't legit, I send an email to that effect and stop the workflow.

Resolve Person.png

 

Of course, just because the user is legit does NOT mean that they are actually in a Permissions Group (which is significant if you are trying to remove them!) To handle THAT issue, you must use "error handling." I can establish whether the HTTP call was successful by adding an action immediately after it which sets a flag/variable to "TRUE", but I configure tht action so that it executes only if the HTTP call was successful. Next (and this is VERY important) I configure the action after THAT to run regardless of whether the action preceeding it (the one that sets the flag) was successful, failed, was skipped, or timed out, otherwise the whole workflow would end right there becuase of the error. This way, I have a flag/variable that is only TRUE  if the HTTP call succeeded; otherwise, it's not TRUE.

FWIW, this is pretty much the basic way to handle errors: set some actions to run only if something was successful, and other actions to run only if it failed, timed out, or was skipped.

 

I hope that cleared things up.

 

-Boonie

 

Highlighted
Anonymous
Not applicable

Re: Use Flow to Remove User from Permissions Group

Wow. Thank you very much for this. I really appreciate it. Will check and will follow your instructions. Again, THANK YOU! 🙂
Highlighted
Anonymous
Not applicable

Re: Use Flow to Remove User from Permissions Group

THANK YOU VERY MUCH! I have now able to remove user from the SharePoint Group. 🙂

Highlighted
Anonymous
Not applicable

Re: Use Flow to Remove User from Permissions Group

@mboonie - I have another question, hope you know it as well 🙂

 

Currently, I know how to remove the user in the SharePoint Group. However, I still manually getting the GroupID for each SharePoint Group, do you also have a process wherein i can extract all the SharePoint Group ID of a certain person?

 

Thank You! 🙂

Highlighted
Helper V
Helper V

Re: Use Flow to Remove User from Permissions Group

Hi

I try to user this, but I get Bad Request?

 

{"odata.error":{"code":"-1, Microsoft.Data.OData.ODataException","message":{"lang":"en-US","value":"The parameter 'LoginName' in the request payload is not a valid parameter for the function import 'RemoveByLoginName'."}}}
clientRequestId: ff0b3b5d-23a4-45fd-9c06-57df465777fb
serviceRequestId: 86eb429f-50a6-2000-6c47-690b77b8b028

 

bad2.png

 

bad.png

 

 

 

Highlighted
New Member

Re: Use Flow to Remove User from Permissions Group

Try with a lowercase 'l', 'loginName' instead of 'LoginName'.

Highlighted
Helper III
Helper III

Re: Use Flow to Remove User from Permissions Group

@jri Thank you for pointing that one out. It cost me an hour of my life.

 

These little inconsistencies are what makes working with these tools so cumbersome. 

 

Adding a new user with "_api/web/SiteGroups/GetById(xxx)/Users" you need LoginName with a capital "L".

Removing a user with "_api/web/SiteGroups/GetById(xxx)/Users/RemoveByLoginName" you need loginName with a lower case letter "l".

 

No wonder I have grey hair.

 

 

 

 

Highlighted
New Member

Re: Use Flow to Remove User from Permissions Group

Hi,

 

is struserid is the email of the users?

Helpful resources

Announcements
secondImage

August 2020 CYST Winners!

Check out the winners of the recent 'Can You Solve These?' community challenge!

thirdImage

Experience what's new for Power Automate

Join us for an in-depth look at the new Power Automate features and capabilities at the free Microsoft Business Applications Launch Event.

firstImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

Top Kudoed Authors
Users online (3,565)