Actualice la configuración del esquema de colgar con la semántica PATCH merge.
Parámetros editables:
-
hangupUrl
-schema
-schema[].name
schema[].type
-
schema[].description
-schema[].required
-schema[].enumValues
-schema[].children
Cómo recuperar datos actuales:
- utilizar
GET /api/v1/assistants/{assistantApiKey}/runtime/hangup/schema
Reglas operativas
- Al menos uno entre
hangupUrl y schema debe estar presente en el body.
- Los campos omitidos conservan el valor actual.
- Enviar
schema reemplaza completamente el esquema actual (no es una combinación)
- Al enviar
hangupUrl: null se elimina el webhook de URL, se desactiva la herramienta de colgar y también se borra automáticamente el esquema
- Al enviar
schema: [] se borra el esquema manteniendo la URL actual
- En los asistentes
voice_to_voice, el backend actualiza pbxTools.hangupEndpoint.endpoint y pbxTools.hangupEndpoint.input_schema.
Cómo construir el cuerpo del esquema
schema es una matriz de propiedades que definen los campos del cuerpo JSON enviado.
a hangupUrl al final de la llamada. Cada propiedad tiene la siguiente estructura:
| Campo |
Tipo |
Requerido |
Descripción |
name |
string |
si |
Nombre del campo en el cuerpo JSON |
type |
string |
si |
Tipo de campo: string, number, boolean, enum, object |
description |
string |
no |
Descripción del campo (ayuda a la plantilla LLM a comprender qué ingresar) |
required |
boolean |
no |
Si true, el campo es obligatorio en el colgador del cuerpo |
enumValues |
string[] |
sólo para enum |
Lista de valores permitidos (solo si type: enum) |
children |
Property[] |
sólo para object |
Campos anidados (solo si type: object) |
Tipos admitidos y cómo utilizarlos
string — campo de texto libre:
{ "name": "motivo", "type": "string", "description": "Motivo del termine della chiamata", "required": true }
number — campo numérico:
{ "name": "durata_secondi", "type": "number", "description": "Durata della chiamata in secondi" }
boolean — campo booleano:
{ "name": "cliente_soddisfatto", "type": "boolean", "description": "Il cliente si è dichiarato soddisfatto" }
enum — campo de opción múltiple, requiere enumValues:
{ "name": "esito", "type": "enum", "description": "Esito della chiamata", "required": true, "enumValues": ["positivo", "negativo", "richiamata"] }
object — grupo de campos anidados, requiere children:
{
"name": "dati_cliente",
"type": "object",
"description": "Dati raccolti durante la chiamata",
"children": [
{ "name": "nome", "type": "string", "description": "Nome del cliente" },
{ "name": "email", "type": "string", "description": "Email del cliente" }
]
}
Ejemplo de cuerpo JSON resultante
Con el esquema anterior, el webhook recibirá un cuerpo similar a:
{
"motivo": "Cliente ha chiesto informazioni sul prodotto X",
"esito": "positivo",
"cliente_soddisfatto": true,
"durata_secondi": 182,
"dati_cliente": {
"nome": "Mario Rossi",
"email": "mario@example.com"
}
}