curl --request POST \
--url https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"name": "<string>",
"memberChanges": {
"addUserIds": [
"<string>"
],
"removeUserIds": [
"<string>"
],
"addGroupIds": [
"<string>"
],
"removeGroupIds": [
"<string>"
]
},
"organizationId": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: '<string>',
name: '<string>',
memberChanges: {
addUserIds: ['<string>'],
removeUserIds: ['<string>'],
addGroupIds: ['<string>'],
removeGroupIds: ['<string>']
},
organizationId: '<string>'
})
};
fetch('https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup"
payload = {
"id": "<string>",
"name": "<string>",
"memberChanges": {
"addUserIds": ["<string>"],
"removeUserIds": ["<string>"],
"addGroupIds": ["<string>"],
"removeGroupIds": ["<string>"]
},
"organizationId": "<string>"
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"memberChanges\": {\n \"addUserIds\": [\n \"<string>\"\n ],\n \"removeUserIds\": [\n \"<string>\"\n ],\n \"addGroupIds\": [\n \"<string>\"\n ],\n \"removeGroupIds\": [\n \"<string>\"\n ]\n },\n \"organizationId\": \"<string>\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"memberChanges\": {\n \"addUserIds\": [\n \"<string>\"\n ],\n \"removeUserIds\": [\n \"<string>\"\n ],\n \"addGroupIds\": [\n \"<string>\"\n ],\n \"removeGroupIds\": [\n \"<string>\"\n ]\n },\n \"organizationId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"group": {
"id": "<string>",
"name": "<string>",
"memberUserIds": [
"<string>"
],
"memberGroupIds": [
"<string>"
],
"createdAt": 123,
"scimManaged": true
}
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Update group
Rename a workspace group and/or apply a batch of membership changes
Requires the policies:write scope.
curl --request POST \
--url https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"name": "<string>",
"memberChanges": {
"addUserIds": [
"<string>"
],
"removeUserIds": [
"<string>"
],
"addGroupIds": [
"<string>"
],
"removeGroupIds": [
"<string>"
]
},
"organizationId": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: '<string>',
name: '<string>',
memberChanges: {
addUserIds: ['<string>'],
removeUserIds: ['<string>'],
addGroupIds: ['<string>'],
removeGroupIds: ['<string>']
},
organizationId: '<string>'
})
};
fetch('https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup"
payload = {
"id": "<string>",
"name": "<string>",
"memberChanges": {
"addUserIds": ["<string>"],
"removeUserIds": ["<string>"],
"addGroupIds": ["<string>"],
"removeGroupIds": ["<string>"]
},
"organizationId": "<string>"
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"memberChanges\": {\n \"addUserIds\": [\n \"<string>\"\n ],\n \"removeUserIds\": [\n \"<string>\"\n ],\n \"addGroupIds\": [\n \"<string>\"\n ],\n \"removeGroupIds\": [\n \"<string>\"\n ]\n },\n \"organizationId\": \"<string>\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://conduit.example.com/conduit.v1.ConduitService/UpdateGroup"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"memberChanges\": {\n \"addUserIds\": [\n \"<string>\"\n ],\n \"removeUserIds\": [\n \"<string>\"\n ],\n \"addGroupIds\": [\n \"<string>\"\n ],\n \"removeGroupIds\": [\n \"<string>\"\n ]\n },\n \"organizationId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"group": {
"id": "<string>",
"name": "<string>",
"memberUserIds": [
"<string>"
],
"memberGroupIds": [
"<string>"
],
"createdAt": 123,
"scimManaged": true
}
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Define the version of the Connect protocol
1 Define the timeout, in ms
Body
Presence-aware: absent leaves the name unchanged.
An explicit batch of membership changes, applied atomically. Deliberately deltas rather than a replacement set: only the named members are touched, so a member added concurrently (a SCIM push, a provisioning rule firing on sign-in, another admin) is never evicted by a save that didn't name them. Removing a user removes their membership from every subsystem (manual/rule/scim) — an explicit removal means "out, now"; if the directory still asserts the membership, its next sync re-adds it.
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes
Was this page helpful?