curl --request PATCH \
--url https://api.getoneprofile.ai/inbox/ai-settings/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent_replies_enabled": true,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"labelling_enabled": true
}
'import requests
url = "https://api.getoneprofile.ai/inbox/ai-settings/"
payload = {
"agent_replies_enabled": True,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"labelling_enabled": True
}
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({
agent_replies_enabled: true,
ai_disclosure_line: '<string>',
default_language: '<string>',
labelling_enabled: true
})
};
fetch('https://api.getoneprofile.ai/inbox/ai-settings/', 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.getoneprofile.ai/inbox/ai-settings/",
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([
'agent_replies_enabled' => true,
'ai_disclosure_line' => '<string>',
'default_language' => '<string>',
'labelling_enabled' => true
]),
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.getoneprofile.ai/inbox/ai-settings/"
payload := strings.NewReader("{\n \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\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.getoneprofile.ai/inbox/ai-settings/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/inbox/ai-settings/")
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 \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"agent_replies_enabled": true,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"default_reply_mode": "off",
"default_tone": "professional",
"labelling_enabled": true
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Update the workspace AI defaults
Partial update: only the fields you send change. labelling_enabled is the auto-label switch: off means new replies stay unlabeled. agent_replies_enabled is the workspace switch for replies the agent writes and may send on its own; turning it off stops them all at once. ai_disclosure_line is added below every email reply the agent sends on its own. Needs a signed-in person: an API key cannot change these.
curl --request PATCH \
--url https://api.getoneprofile.ai/inbox/ai-settings/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent_replies_enabled": true,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"labelling_enabled": true
}
'import requests
url = "https://api.getoneprofile.ai/inbox/ai-settings/"
payload = {
"agent_replies_enabled": True,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"labelling_enabled": True
}
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({
agent_replies_enabled: true,
ai_disclosure_line: '<string>',
default_language: '<string>',
labelling_enabled: true
})
};
fetch('https://api.getoneprofile.ai/inbox/ai-settings/', 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.getoneprofile.ai/inbox/ai-settings/",
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([
'agent_replies_enabled' => true,
'ai_disclosure_line' => '<string>',
'default_language' => '<string>',
'labelling_enabled' => true
]),
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.getoneprofile.ai/inbox/ai-settings/"
payload := strings.NewReader("{\n \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\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.getoneprofile.ai/inbox/ai-settings/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/inbox/ai-settings/")
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 \"agent_replies_enabled\": true,\n \"ai_disclosure_line\": \"<string>\",\n \"default_language\": \"<string>\",\n \"labelling_enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"agent_replies_enabled": true,
"ai_disclosure_line": "<string>",
"default_language": "<string>",
"default_reply_mode": "off",
"default_tone": "professional",
"labelling_enabled": true
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Body
Partial update: only the fields present in the request are written.
The workspace switch for replies the agent writes and may send on its own. Off, the agent writes no replies and nothing is sent without a person; Draft with AI in the inbox still works. Leave out to keep it as it is.
A line added below every email reply the agent sends on its own, for rules that require saying a message was written with AI. Never added to a reply a person approved. Up to 300 characters. Send null to stop adding one; leave out to keep it as it is.
1 - 300How far the AI reply layer may go on this sequence.
OFF is the default everywhere: a workspace
opts in. DRAFT_AND_QUEUE is as far as it goes: every draft waits in Needs
approval for a person, whatever its confidence. There is deliberately no
mode past it. A self-sending auto-pilot shipped once and was removed
under the ruling that a send cannot be taken back, so nothing may send
with nobody present; rows that carried it were moved to DRAFT_AND_QUEUE
by the retire_auto_send_reply_mode release task. A SENT draft with no
approver is therefore always history from before that ruling.
off, draft_and_queue How a generated reply should read.
professional, friendly, direct, casual Response
Successful Response
The workspace's AI defaults. The auto-label switch lives here.
The workspace switch for replies the agent writes and may send on its own. Off, the agent writes no replies and nothing is sent without a person; Draft with AI in the inbox still works.
A line added below every email reply the agent sends on its own, for rules that require saying a message was written with AI. Never added to a reply a person approved. Null adds nothing.
How far the AI reply layer may go on this sequence.
OFF is the default everywhere: a workspace
opts in. DRAFT_AND_QUEUE is as far as it goes: every draft waits in Needs
approval for a person, whatever its confidence. There is deliberately no
mode past it. A self-sending auto-pilot shipped once and was removed
under the ruling that a send cannot be taken back, so nothing may send
with nobody present; rows that carried it were moved to DRAFT_AND_QUEUE
by the retire_auto_send_reply_mode release task. A SENT draft with no
approver is therefore always history from before that ruling.
off, draft_and_queue How a generated reply should read.
professional, friendly, direct, casual Was this page helpful?