curl --request PATCH \
--url https://api.doozy.live/v1/account/provisioning \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"provisioning_mode": "automatic",
"auto_disable_users": true,
"filters": {
"require_groups": [
"engineering",
"sales"
],
"require_hris_connection": false
}
}
'import requests
url = "https://api.doozy.live/v1/account/provisioning"
payload = {
"provisioning_mode": "automatic",
"auto_disable_users": True,
"filters": {
"require_groups": ["engineering", "sales"],
"require_hris_connection": False
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
provisioning_mode: 'automatic',
auto_disable_users: true,
filters: {require_groups: ['engineering', 'sales'], require_hris_connection: false}
})
};
fetch('https://api.doozy.live/v1/account/provisioning', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.doozy.live/v1/account/provisioning",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'provisioning_mode' => 'automatic',
'auto_disable_users' => true,
'filters' => [
'require_groups' => [
'engineering',
'sales'
],
'require_hris_connection' => false
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/account/provisioning"
payload := strings.NewReader("{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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))
}HttpResponse<String> response = Unirest.patch("https://api.doozy.live/v1/account/provisioning")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/account/provisioning")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "account_provisioning",
"application": {
"id": "<string>",
"status": "pending",
"total_count": 123,
"completed_count": 123,
"failed_count": 123,
"updated_at": "2023-11-07T05:31:56Z",
"retry_allowed": true
},
"provisioning_mode": "automatic",
"auto_disable_users": true,
"filters": {
"require_groups": [
"<string>"
],
"require_hris_connection": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Update user provisioning settings
Update the account’s user-provisioning configuration. Changing it re-evaluates every member and can enable/disable people in bulk — preview the impact first with POST /v1/account/provisioning/preview. Owner only.
curl --request PATCH \
--url https://api.doozy.live/v1/account/provisioning \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"provisioning_mode": "automatic",
"auto_disable_users": true,
"filters": {
"require_groups": [
"engineering",
"sales"
],
"require_hris_connection": false
}
}
'import requests
url = "https://api.doozy.live/v1/account/provisioning"
payload = {
"provisioning_mode": "automatic",
"auto_disable_users": True,
"filters": {
"require_groups": ["engineering", "sales"],
"require_hris_connection": False
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
provisioning_mode: 'automatic',
auto_disable_users: true,
filters: {require_groups: ['engineering', 'sales'], require_hris_connection: false}
})
};
fetch('https://api.doozy.live/v1/account/provisioning', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.doozy.live/v1/account/provisioning",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'provisioning_mode' => 'automatic',
'auto_disable_users' => true,
'filters' => [
'require_groups' => [
'engineering',
'sales'
],
'require_hris_connection' => false
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/account/provisioning"
payload := strings.NewReader("{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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))
}HttpResponse<String> response = Unirest.patch("https://api.doozy.live/v1/account/provisioning")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/account/provisioning")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"provisioning_mode\": \"automatic\",\n \"auto_disable_users\": true,\n \"filters\": {\n \"require_groups\": [\n \"engineering\",\n \"sales\"\n ],\n \"require_hris_connection\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "account_provisioning",
"application": {
"id": "<string>",
"status": "pending",
"total_count": 123,
"completed_count": 123,
"failed_count": 123,
"updated_at": "2023-11-07T05:31:56Z",
"retry_allowed": true
},
"provisioning_mode": "automatic",
"auto_disable_users": true,
"filters": {
"require_groups": [
"<string>"
],
"require_hris_connection": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Authorizations
API key for authentication. Generate keys in the Doozy dashboard.
Body
automatic: the workspace enforces the rules and auto enables/disables members. manual: no automatic provisioning.
automatic, manual "automatic"
Whether people removed or deactivated in Slack, or (in automatic mode) no longer matching the filters, lose access.
true
Show child attributes
Show child attributes
Response
The updated provisioning settings
Object type
account_provisioning "account_provisioning"
Show child attributes
Show child attributes
automatic: the workspace enforces the rules and auto enables/disables members. manual: no automatic provisioning.
automatic, manual "automatic"
Show child attributes
Show child attributes
Was this page helpful?