Mettez à jour la configuration du schéma de raccrochage avec la sémantique PATCH merge.
Paramètres modifiables :
hangupUrl
schema
schema[].name
schema[].type
schema[].description
schema[].required
schema[].enumValues
schema[].children
Comment récupérer les données actuelles :
- utilisez
GET /api/v1/assistants/{assistantApiKey}/runtime/hangup/schema
Règles de fonctionnement
- Au moins un entre
hangupUrl et schema doit être présent dans le body
- Les champs omis conservent la valeur actuelle
- L'envoi de
schema remplace complètement le schéma actuel (ce n'est pas une fusion)
- L'envoi de
hangupUrl: null supprime le webhook d'URL, désactive l'outil de raccrochage et efface également automatiquement le schéma
- L'envoi de
schema: [] efface le schéma en conservant l'URL actuelle
- Sur les assistants
voice_to_voice, le backend met à jour pbxTools.hangupEndpoint.endpoint et pbxTools.hangupEndpoint.input_schema
Le schema est un tableau de propriétés qui définissent les champs du corps JSON envoyé
à hangupUrl à la fin de l'appel. Chaque propriété a la structure suivante :
| Champ |
Tapez |
Obligatoire |
Descriptif |
name |
string |
oui |
Nom du champ dans le corps JSON |
type |
string |
oui |
Type de champ : string, number, boolean, enum, object |
description |
string |
non |
Description du champ (aide le modèle LLM à comprendre ce qu'il faut saisir) |
required |
boolean |
non |
Si true, le champ est obligatoire dans le corps raccrocher |
enumValues |
string[] |
uniquement pour enum |
Liste des valeurs autorisées (uniquement si type: enum) |
children |
Property[] |
uniquement pour object |
Champs imbriqués (uniquement si type: object) |
string — champ de texte libre :
{ "name": "motivo", "type": "string", "description": "Motivo del termine della chiamata", "required": true }
number — champ numérique :
{ "name": "durata_secondi", "type": "number", "description": "Durata della chiamata in secondi" }
boolean — champ booléen :
{ "name": "cliente_soddisfatto", "type": "boolean", "description": "Il cliente si è dichiarato soddisfatto" }
enum — champ à choix multiples, nécessite enumValues :
{ "name": "esito", "type": "enum", "description": "Esito della chiamata", "required": true, "enumValues": ["positivo", "negativo", "richiamata"] }
object — groupe de champs imbriqué, nécessite 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" }
]
}
Exemple de corps JSON résultant
Avec le schéma ci-dessus, le webhook recevra un corps similaire à :
{
"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"
}
}