curl --request POST \
--url https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Handover to sales",
"category": 1
}
'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances"
payload = {
"label": "Handover to sales",
"category": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'Handover to sales', category: 1})
};
fetch('https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Handover to sales\",\n \"category\": 1\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => 'Handover to sales',
'category' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances"
payload := strings.NewReader("{\n \"label\": \"Handover to sales\",\n \"category\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}{
"id": "01a08b36-6a2e-7ba6-8346-7b64299ddeb2",
"organization_id": "01a08b36-6a2e-7ba6-8346-7b6567319560",
"agent_id": "01a08b36-6a2e-7ba6-8346-7b6610aadc5e",
"label": "Test AI Agent Guidance",
"instruction": "This is an AI agent guidance instruction",
"status": 1,
"category": 1,
"timestamp_created": "2026-09-10T12:06:34.286Z",
"timestamp_updated": "2026-09-10T12:06:34.286Z",
"basic_guidance_options": {
"tone": "professional",
"length": "standard"
}
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Create an AI Inbox Manager guidance
Create a guidance for an AI Inbox Manager. The BASICS category is an upsert: it carries tone/length options instead of an instruction, is always active, and an agent has at most one — creating a second one updates the existing guidance in place.
Requires one of the following scopes: ai_agent_guidances:create, ai_agents:all, all:create, all:all
curl --request POST \
--url https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Handover to sales",
"category": 1
}
'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances"
payload = {
"label": "Handover to sales",
"category": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'Handover to sales', category: 1})
};
fetch('https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Handover to sales\",\n \"category\": 1\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => 'Handover to sales',
'category' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/guidances"
payload := strings.NewReader("{\n \"label\": \"Handover to sales\",\n \"category\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}{
"id": "01a08b36-6a2e-7ba6-8346-7b64299ddeb2",
"organization_id": "01a08b36-6a2e-7ba6-8346-7b6567319560",
"agent_id": "01a08b36-6a2e-7ba6-8346-7b6610aadc5e",
"label": "Test AI Agent Guidance",
"instruction": "This is an AI agent guidance instruction",
"status": 1,
"category": 1,
"timestamp_created": "2026-09-10T12:06:34.286Z",
"timestamp_updated": "2026-09-10T12:06:34.286Z",
"basic_guidance_options": {
"tone": "professional",
"length": "standard"
}
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
AI Inbox Manager ID
"0195b1a5-3b1d-7b6e-9c1a-2f7a4b0c1d2e"
Body
Label of the guidance
1"Handover to sales"
Category of the guidance
0, 1, 2, 3, 4 1
Instruction text. Required for every category except BASICS, where it must be empty.
"Always answer pricing questions with a link to the pricing page."
Status of the guidance. Required for every category except BASICS, which is always active.
1, 0 1
Tone and length options. Required for the BASICS category, rejected for every other category.
Show child attributes
Show child attributes
Response
The created (or, for BASICS, updated) guidance
A guidance category or input box for an AI agent
Unique identifier for the AI agent guidance
"01a08b36-6a2e-7ba6-8346-7b64299ddeb2"
Organization ID
"01a08b36-6a2e-7ba6-8346-7b6567319560"
Associated AI Agent ID
"01a08b36-6a2e-7ba6-8346-7b6610aadc5e"
Label of the AI agent guidance
"Test AI Agent Guidance"
Instruction text for the AI agent guidance. Should be empty string for BASICS category.
"This is an AI agent guidance instruction"
Status of the AI agent guidance
1, 0 1
Category of the AI agent guidance
0, 1, 2, 3, 4 1
Timestamp when the AI agent guidance was created
"2026-09-10T12:06:34.286Z"
Timestamp when the AI agent guidance was updated
"2026-09-10T12:06:34.286Z"
Basic guidance options (tone, length, etc.) - only for BASICS category
Show child attributes
Show child attributes