curl --request PATCH \
--url https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"allow_fetch": true,
"allow_find_email": true,
"allow_linkedin_profile": true,
"allow_search": true,
"description": "<string>",
"favorite": true,
"granted_verbs": [
"<string>"
],
"icon": "<string>",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": [
"<string>"
],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"prompt": {
"segments": [
{
"text": "<string>",
"type": "text"
}
]
},
"use_business_context": true,
"use_row_context": true
}
'import requests
url = "https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/"
payload = {
"allow_fetch": True,
"allow_find_email": True,
"allow_linkedin_profile": True,
"allow_search": True,
"description": "<string>",
"favorite": True,
"granted_verbs": ["<string>"],
"icon": "<string>",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": ["<string>"],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"prompt": { "segments": [
{
"text": "<string>",
"type": "text"
}
] },
"use_business_context": True,
"use_row_context": 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({
allow_fetch: true,
allow_find_email: true,
allow_linkedin_profile: true,
allow_search: true,
description: '<string>',
favorite: true,
granted_verbs: ['<string>'],
icon: '<string>',
inputs: [{id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', name: '<string>'}],
model_key: '<string>',
name: '<string>',
output_schema: {
fields: [
{
name: '<string>',
choices: ['<string>'],
description: '<string>',
field_type: 'text'
}
],
mode: 'fields'
},
prompt: {segments: [{text: '<string>', type: 'text'}]},
use_business_context: true,
use_row_context: true
})
};
fetch('https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/', 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/table-enrichments/saved-agents/{saved_agent_id}/",
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([
'allow_fetch' => true,
'allow_find_email' => true,
'allow_linkedin_profile' => true,
'allow_search' => true,
'description' => '<string>',
'favorite' => true,
'granted_verbs' => [
'<string>'
],
'icon' => '<string>',
'inputs' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>'
]
],
'model_key' => '<string>',
'name' => '<string>',
'output_schema' => [
'fields' => [
[
'name' => '<string>',
'choices' => [
'<string>'
],
'description' => '<string>',
'field_type' => 'text'
]
],
'mode' => 'fields'
],
'prompt' => [
'segments' => [
[
'text' => '<string>',
'type' => 'text'
]
]
],
'use_business_context' => true,
'use_row_context' => 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/table-enrichments/saved-agents/{saved_agent_id}/"
payload := strings.NewReader("{\n \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": 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/table-enrichments/saved-agents/{saved_agent_id}/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/")
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 \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": true\n}"
response = http.request(request)
puts response.read_body{
"allow_fetch": true,
"allow_search": true,
"created_at": "2023-11-07T05:31:56Z",
"current_version": 123,
"description": "<string>",
"effort": "low",
"favorite": true,
"icon": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": [
"<string>"
],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"owner_user_id": "<string>",
"prompt": {
"segments": [
{
"text": "<string>",
"type": "text"
}
]
},
"updated_at": "2023-11-07T05:31:56Z",
"use_business_context": true,
"use_row_context": true,
"allow_find_email": false,
"allow_linkedin_profile": false,
"granted_verbs": [
"<string>"
],
"is_template": false,
"owner_display_name": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Update a saved agent
Partially update a saved agent. Columns pointing at it pick the change up on their next run.
curl --request PATCH \
--url https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"allow_fetch": true,
"allow_find_email": true,
"allow_linkedin_profile": true,
"allow_search": true,
"description": "<string>",
"favorite": true,
"granted_verbs": [
"<string>"
],
"icon": "<string>",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": [
"<string>"
],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"prompt": {
"segments": [
{
"text": "<string>",
"type": "text"
}
]
},
"use_business_context": true,
"use_row_context": true
}
'import requests
url = "https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/"
payload = {
"allow_fetch": True,
"allow_find_email": True,
"allow_linkedin_profile": True,
"allow_search": True,
"description": "<string>",
"favorite": True,
"granted_verbs": ["<string>"],
"icon": "<string>",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": ["<string>"],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"prompt": { "segments": [
{
"text": "<string>",
"type": "text"
}
] },
"use_business_context": True,
"use_row_context": 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({
allow_fetch: true,
allow_find_email: true,
allow_linkedin_profile: true,
allow_search: true,
description: '<string>',
favorite: true,
granted_verbs: ['<string>'],
icon: '<string>',
inputs: [{id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', name: '<string>'}],
model_key: '<string>',
name: '<string>',
output_schema: {
fields: [
{
name: '<string>',
choices: ['<string>'],
description: '<string>',
field_type: 'text'
}
],
mode: 'fields'
},
prompt: {segments: [{text: '<string>', type: 'text'}]},
use_business_context: true,
use_row_context: true
})
};
fetch('https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/', 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/table-enrichments/saved-agents/{saved_agent_id}/",
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([
'allow_fetch' => true,
'allow_find_email' => true,
'allow_linkedin_profile' => true,
'allow_search' => true,
'description' => '<string>',
'favorite' => true,
'granted_verbs' => [
'<string>'
],
'icon' => '<string>',
'inputs' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>'
]
],
'model_key' => '<string>',
'name' => '<string>',
'output_schema' => [
'fields' => [
[
'name' => '<string>',
'choices' => [
'<string>'
],
'description' => '<string>',
'field_type' => 'text'
]
],
'mode' => 'fields'
],
'prompt' => [
'segments' => [
[
'text' => '<string>',
'type' => 'text'
]
]
],
'use_business_context' => true,
'use_row_context' => 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/table-enrichments/saved-agents/{saved_agent_id}/"
payload := strings.NewReader("{\n \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": 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/table-enrichments/saved-agents/{saved_agent_id}/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/table-enrichments/saved-agents/{saved_agent_id}/")
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 \"allow_fetch\": true,\n \"allow_find_email\": true,\n \"allow_linkedin_profile\": true,\n \"allow_search\": true,\n \"description\": \"<string>\",\n \"favorite\": true,\n \"granted_verbs\": [\n \"<string>\"\n ],\n \"icon\": \"<string>\",\n \"inputs\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n }\n ],\n \"model_key\": \"<string>\",\n \"name\": \"<string>\",\n \"output_schema\": {\n \"fields\": [\n {\n \"name\": \"<string>\",\n \"choices\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"field_type\": \"text\"\n }\n ],\n \"mode\": \"fields\"\n },\n \"prompt\": {\n \"segments\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\"\n }\n ]\n },\n \"use_business_context\": true,\n \"use_row_context\": true\n}"
response = http.request(request)
puts response.read_body{
"allow_fetch": true,
"allow_search": true,
"created_at": "2023-11-07T05:31:56Z",
"current_version": 123,
"description": "<string>",
"effort": "low",
"favorite": true,
"icon": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"inputs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"model_key": "<string>",
"name": "<string>",
"output_schema": {
"fields": [
{
"name": "<string>",
"choices": [
"<string>"
],
"description": "<string>",
"field_type": "text"
}
],
"mode": "fields"
},
"owner_user_id": "<string>",
"prompt": {
"segments": [
{
"text": "<string>",
"type": "text"
}
]
},
"updated_at": "2023-11-07T05:31:56Z",
"use_business_context": true,
"use_row_context": true,
"allow_find_email": false,
"allow_linkedin_profile": false,
"granted_verbs": [
"<string>"
],
"is_template": false,
"owner_display_name": "<string>"
}{
"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
A partial saved-agent update; absent fields keep their value.
Switch the work-email tool on or off; switching it on is refused when the supplier is not available to this organisation.
Switch the LinkedIn-profile tool on or off; switching it on is refused when the supplier is not available to this organisation.
2000How hard the Agent works on each row.
Named levels rather than raw step counts: the level is the user-facing contract, and what each level buys (step and page budgets) is a product decision the loop maps internally. Re-tuning budgets never invalidates stored columns.
low, standard, high The workspace actions the agent may apply without asking, as verb keys (see GET /assistant/verbs/). Send null to fall back to the workspace defaults; an empty list switches every action off. A send is refused. The agent's table runs take an allowed action themselves, without a card.
81 - 1620Show child attributes
Show child attributes
1 - 641 - 255The fields-mode output shape: repeatable named typed fields.
The default is Clay's: one text field named response.
- EnrichmentOutputFields
- EnrichmentOutputRawSchema
Show child attributes
Show child attributes
A saved agent's prompt: literal text with references between the runs.
The same convention every other stored prompt in the product uses
(EnrichmentPromptTemplate for columns, template segments for
sequences): identity-keyed segments, so renaming what a reference points
at never rewrites the prompt. Structurally parallel to the enrichment
template rather than importing it: an agent prompt references INPUTS,
an enrichment prompt references COLUMNS, and the import hierarchy keeps
the two domains apart.
Show child attributes
Show child attributes
Response
Successful Response
One org-level saved agent as the editor, picker and library render it.
How hard the Agent works on each row.
Named levels rather than raw step counts: the level is the user-facing contract, and what each level buys (step and page budgets) is a product decision the loop maps internally. Re-tuning budgets never invalidates stored columns.
low, standard, high Show child attributes
Show child attributes
The fields-mode output shape: repeatable named typed fields.
The default is Clay's: one text field named response.
- EnrichmentOutputFields
- EnrichmentOutputRawSchema
Show child attributes
Show child attributes
A saved agent's prompt: literal text with references between the runs.
The same convention every other stored prompt in the product uses
(EnrichmentPromptTemplate for columns, template segments for
sequences): identity-keyed segments, so renaming what a reference points
at never rewrites the prompt. Structurally parallel to the enrichment
template rather than importing it: an agent prompt references INPUTS,
an enrichment prompt references COLUMNS, and the import hierarchy keeps
the two domains apart.
Show child attributes
Show child attributes
Whether a run may buy a work email from the product's data suppliers while it researches, paid from the run's research budget.
Whether a run may read a LinkedIn profile through the product's data suppliers while it researches, paid from the run's research budget.
The workspace actions this agent may apply without asking, as verb keys (see GET /assistant/verbs/). Null means the workspace defaults apply. The agent's table runs take an allowed action themselves, without a card.
Was this page helpful?