Briefing prima della chiamata
curl --request POST \
--url https://api.dentalspace.ai/v1/voice/context \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone: '<string>'})
};
fetch('https://api.dentalspace.ai/v1/voice/context', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dentalspace.ai/v1/voice/context"
payload = { "phone": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"phone": "<string>",
"match": "patient",
"patient": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>"
},
"candidates": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>"
}
],
"lead": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"status": "<string>"
},
"nextAppointment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startTime": "<string>",
"endTime": "<string>",
"status": "<string>",
"category": "<string>",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"lastAppointment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startTime": "<string>",
"endTime": "<string>",
"status": "<string>",
"category": "<string>",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"openTreatmentPlan": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"totalCost": 123,
"presentedAt": "<string>"
},
"openTasks": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"dueDate": "<string>"
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}Agente vocale
Briefing prima della chiamata
Scope: patients:read e appointments:read.
Chi e’ il numero e cosa ha in sospeso, senza dati clinici. 403 reason ai_disabled se la clinica ha spento l’AI.
POST
/
voice
/
context
Briefing prima della chiamata
curl --request POST \
--url https://api.dentalspace.ai/v1/voice/context \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone: '<string>'})
};
fetch('https://api.dentalspace.ai/v1/voice/context', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dentalspace.ai/v1/voice/context"
payload = { "phone": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"phone": "<string>",
"match": "patient",
"patient": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>"
},
"candidates": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>"
}
],
"lead": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"status": "<string>"
},
"nextAppointment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startTime": "<string>",
"endTime": "<string>",
"status": "<string>",
"category": "<string>",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"lastAppointment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startTime": "<string>",
"endTime": "<string>",
"status": "<string>",
"category": "<string>",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"openTreatmentPlan": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"totalCost": 123,
"presentedAt": "<string>"
},
"openTasks": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"dueDate": "<string>"
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Numero di telefono in qualunque formato; «anonymous» se nascosto.
Required string length:
3 - 32Response
Il briefing.
Il numero normalizzato (E.164); null se non e' un numero.
multiple = piu' pazienti sullo stesso numero (famiglia): chiedere per chi chiama.
Available options:
patient, multiple, lead, none Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Solo con lo scope treatment_plans:read.
Show child attributes
Show child attributes
Solo con lo scope tasks:read. Senza titolo: e' testo libero, anche dettato da chi chiama.
Show child attributes
Show child attributes