curl --request PATCH \
--url https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"granted_verbs": []
}
'import requests
url = "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
payload = { "granted_verbs": [] }
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({granted_verbs: []})
};
fetch('https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/', 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/assistant/conversations/{conversation_id}/grants/",
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([
'granted_verbs' => [
]
]),
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/assistant/conversations/{conversation_id}/grants/"
payload := strings.NewReader("{\n \"granted_verbs\": []\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/assistant/conversations/{conversation_id}/grants/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"granted_verbs\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
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 \"granted_verbs\": []\n}"
response = http.request(request)
puts response.read_body{
"follows_defaults": true,
"granted_verbs": [
"create_table_from_search"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Change what a conversation may apply without asking
Replace the conversation’s grant list. Take one grant back by sending the list without it; send null to follow the workspace defaults again. An empty list allows nothing and still stops following the defaults. A verb that always asks (pushing to a destination) cannot be granted and is refused.
curl --request PATCH \
--url https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"granted_verbs": []
}
'import requests
url = "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
payload = { "granted_verbs": [] }
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({granted_verbs: []})
};
fetch('https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/', 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/assistant/conversations/{conversation_id}/grants/",
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([
'granted_verbs' => [
]
]),
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/assistant/conversations/{conversation_id}/grants/"
payload := strings.NewReader("{\n \"granted_verbs\": []\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/assistant/conversations/{conversation_id}/grants/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"granted_verbs\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
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 \"granted_verbs\": []\n}"
response = http.request(request)
puts response.read_body{
"follows_defaults": true,
"granted_verbs": [
"create_table_from_search"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Path Parameters
Body
Replace a conversation's grant list, or hand it back to the workspace defaults.
The verbs this conversation may apply without asking. Send the current list minus one verb to take that verb back. Send null to follow the workspace defaults again; an empty list allows nothing. A send is refused.
8The eight things an AI may do to a workspace.
Exactly eight, not sixty: today's cell-level actions all run against one cell, and building a table, adding contacts to a sequence and starting a search had no home at all. Anything new here is a product decision about what an assistant may touch, not a convenience for a planner.
create_table_from_search, add_column, run_column, enrich_rows, add_contacts_to_sequence, push_to_destination, call_endpoint, start_search Response
Successful Response
What one conversation may apply without asking: the list, and where it comes from.
Read for the shield in the chat header. follows_defaults tells the
header whether to show the list as the workspace's (change it in
Settings) or as this thread's own (take one back here, or return to the
defaults).
Whether the list is the workspace defaults, read live. False once the conversation has a list of its own, which a change in Settings no longer reaches.
The verbs this conversation applies without asking, in effect now.
The eight things an AI may do to a workspace.
Exactly eight, not sixty: today's cell-level actions all run against one cell, and building a table, adding contacts to a sequence and starting a search had no home at all. Anything new here is a product decision about what an assistant may touch, not a convenience for a planner.
create_table_from_search, add_column, run_column, enrich_rows, add_contacts_to_sequence, push_to_destination, call_endpoint, start_search Was this page helpful?