curl --request POST \
--url https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario pregunte por campañas existentes.",
"usageExample": "<string>"
}
'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections"
payload = {
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario pregunte por campañas existentes.",
"usageExample": "<string>"
}
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({
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
connectionKey: '<string>',
metadata: {},
descriptionUsage: 'Usa esta conexión cuando el usuario pregunte por campañas existentes.',
usageExample: '<string>'
})
};
fetch('https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections', 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-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections",
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([
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'connectionKey' => '<string>',
'metadata' => [
],
'descriptionUsage' => 'Usa esta conexión cuando el usuario pregunte por campañas existentes.',
'usageExample' => '<string>'
]),
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-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections"
payload := strings.NewReader("{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "connected",
"toolId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"toolAgentConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerRef": "<string>",
"authorizationUrl": "<string>",
"message": "<string>",
"metadata": {},
"descriptionUsage": "<string>",
"usageExample": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Crear una conexión entre un agente y la tool indicada
curl --request POST \
--url https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario pregunte por campañas existentes.",
"usageExample": "<string>"
}
'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections"
payload = {
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario pregunte por campañas existentes.",
"usageExample": "<string>"
}
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({
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
connectionKey: '<string>',
metadata: {},
descriptionUsage: 'Usa esta conexión cuando el usuario pregunte por campañas existentes.',
usageExample: '<string>'
})
};
fetch('https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections', 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-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections",
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([
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'connectionKey' => '<string>',
'metadata' => [
],
'descriptionUsage' => 'Usa esta conexión cuando el usuario pregunte por campañas existentes.',
'usageExample' => '<string>'
]),
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-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections"
payload := strings.NewReader("{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/tools/{toolId}/connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario pregunte por campañas existentes.\",\n \"usageExample\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "connected",
"toolId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"toolAgentConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerRef": "<string>",
"authorizationUrl": "<string>",
"message": "<string>",
"metadata": {},
"descriptionUsage": "<string>",
"usageExample": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Identificador del workspace multi-tenant. Obligatorio al autenticar con Authorization: Bearer, donde su ausencia devuelve 400 Workspace context is required. Con x-api-key es opcional: la llave ya identifica a su workspace y lo que mandes aquí se ignora.
Clave única por operación para asegurar idempotencia en requests mutativos. Es opcional —sin ella la petición se ejecuta igual, pero un reintento crea una ejecución nueva—. Si se envía, debe medir entre 16 y 128 caracteres; fuera de ese rango la petición responde 400.
16 - 128Path Parameters
Identificador de la tool en el catálogo, no su UUID (por ejemplo voice.calls,
custom.http o book_appointment_cal). Se obtiene de GET /v1/tools.
Body
Payload utilizado para crear una conexión entre un agente y una tool.
Agente propietario de la conexión.
Identificador lógico opcional para distinguir múltiples conexiones a la misma tool.
Información contextual para el proveedor (displayName, región, tags, etc.).
Guía breve (en lenguaje natural) de cuándo debe usarse esta conexión.
"Usa esta conexión cuando el usuario pregunte por campañas existentes."
Ejemplo de uso recomendado (puede ser multi-línea).
Configuración de autenticación utilizada para la conexión.
Show child attributes
Show child attributes
Response
Conexión creada o registrada en estado pendiente
Estado actual de la conexión solicitada.
connected, pending, error, revoked Identificador interno de la conexión creada cuando el estado es connected.
Identificador de la entidad creada en el proveedor externo.
URL a la que debe dirigirse el usuario para completar el flujo cuando se requiere acción adicional.
Mensaje descriptivo sobre el estado de la conexión.
Información opcional suministrada por el adapter (p.ej. scopes otorgados).
Descripción breve de cuándo usar la conexión.
Ejemplo multi-línea de uso recomendado.
