Spraakassistent
Lees gesprekken, notities en afspraken van de assistent; start taakoproepen (offerte / incasso) vanuit het CRM; integreer het live gespreksscherm in uw eigen software. Integratiesleutel (bt_…, bereik voicebot of autocall).
Endpoint: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — lezen GET, die wijzigt POST. Parameters kunnen via query, formulier of JSON-body worden verzonden.
GETping · bots
GET https://api.buluthat.com/api/voicebot_api.php?action=bots
{ "ok": true, "data": [ { "id": 3, "name": "Teknik Servis Asistanı", "status": "active", "language": "tr" } ] }
GETsessions · session
Gesprekslijst en samenvatting van één gesprek.
| Parameter | Omschrijving |
|---|---|
bot_id | Assistentfilter |
from, to | Datumbereik (Y-m-d) |
outcome | Resultaatfilter (resolved, transferred, note, appointment, failed …) |
caller | Nummer van de beller |
limit, offset | Paginering (maximaal 200) |
{ "ok": true, "data": [ {
"id": 8812, "bot_id": 3, "direction": "inbound", "caller_number": "05321234567",
"started_at": "2026-09-18 10:12:03", "duration_seconds": 84, "status": "ended",
"summary": "Arayan robot süpürgesinin servis durumunu sordu; parça bekleniyor bilgisi verildi.",
"intent": "servis_durumu", "sentiment_label": "notr", "outcome": "resolved"
} ] }
action=session&id=8812 geeft één record met tool-aanroepen en resultaatvelden terug; action=session_messages&id=8812 geeft het volledige transcript (rol, tekst, tijd).
GETnotes · POST note_done
Notities en terugbelverzoeken van de assistent.
GET https://api.buluthat.com/api/voicebot_api.php?action=notes&status=new
POST https://api.buluthat.com/api/voicebot_api.php?action=note_done { "id": 512 }
Notitietypen: note, callback, approval (prijsgoedkeuring). note_done sluit de notitie.
GETappointments · POST appointment_status
GET ?action=appointments&from=2026-09-18
POST ?action=appointment_status { "id": 77, "status": "done" } // booked | cancelled | done
GEThistory · memory
history de eerdere gesprekken van een nummer bij alle assistenten (geheugenbron), memory geeft de geheugentekst terug die voor dat nummer aan de assistent is gegeven — voor de diagnose "waarom zei de assistent dit".
GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567
POSTtask_start — taakoproep
Laat de assistent de klant direct bellen: reparatieofferte (quote) of vrije taak (brief). Bij een offerte blijft de minimumprijs behouden; als de klant lager wil, vraagt de assistent toestemming aan de bevoegde ("ik raadpleeg mijn leidinggevende en bel u terug").
curl -X POST "https://api.buluthat.com/api/voicebot_api.php?action=task_start" \
-H "Authorization: Bearer bt_xxx" -H "Content-Type: application/json" \
-d '{
"bot_id": 3, "phone": "05321234567", "caller_id": "02124119610",
"kind": "quote", "customer_name": "Ayşe Yılmaz", "external_ref": "SERVIS-48211",
"title": "Robot süpürge onarım teklifi",
"brief": "Batarya değişimi gerekiyor. Cihaz garanti dışı. Teslim 3 iş günü.",
"offer_price": 3500, "floor_price": 2900, "currency": "TRY",
"payment_options": "online,havale",
"fields": { "cihaz": "Roborock S7", "takip_no": "7K2M9QX4AB" }
}'
| Veld | Verplicht | Omschrijving |
|---|---|---|
bot_id | ja | Assistent die belt |
phone | ja | Te bellen nummer |
kind | ja | quote (offerte) of brief (vrije taak) |
brief | ja | Context die de assistent moet kennen (diagnose, voorwaarden) |
offer_price, floor_price | voor quote | Openingsofferte en de ondergrens waar naartoe mag worden gegaan; de ondergrens wordt de klant niet genoemd en ook aan de serverzijde afgedwongen |
payment_options | nee | online,havale → bij acceptatie wordt naar de betaalwijze gevraagd |
caller_id, trunk_slug | nee | Nummerweergave en lijn (caller_ids / trunks wordt weergegeven met) |
external_ref | nee | De ID van uw eigen opname (tasks om te vinden met) |
followup_of, decision, decision_note | nee | Terugbeloproep na besluit van de bevoegde: approved / counter / rejected |
Antwoord: { "ok": true, "data": { "id": 91, "status": "calling", … }, "embed_url": "https://…/api/voicebot_embed.php?t=…" }
GETtask · tasks
GET ?action=task&id=91
GET ?action=tasks&external_ref=SERVIS-48211
Taakstatussen: calling → active → ended; failed (onbereikbaar). Resultaatvelden: outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.
GETembed_url — het live scherm insluiten
Genereert een tijdelijk, ondertekend adres om het live/historische messengerscherm van het gesprek via iframe in uw software in te sluiten; geen paneelsessie nodig.
GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
| Parameter | Omschrijving |
|---|---|
phone | Het scherm toont alleen de gesprekken van dit nummer (en geeft opdrachten) |
task_id / session_id | Specifieke taak of gesprek |
listener_extension | Toestel dat wordt gebruikt voor "Meeluisteren" |
ttl | Seconden (standaard 12 uur) |
naar de iframe allow="microphone" geef; de fluisterfunctie voor de bevoegde gebruikt de eigen spraakherkenning van de browser (Chrome/Edge).
GETfaq_suggestions
Uit gesprekken gewonnen suggesties voor vraag-en-antwoord (in afwachting van goedkeuring). Goedkeuring gebeurt in het paneel.
De assistent koppelen aan uw CRM
Om de assistent een dossier in uw systeem te laten vinden/openen, definieert u REST-tools in het assistentformulier (URL, methode, headers, parameters). Voor het Byfix CRM bestaat een kant-en-klare brug; voor uw eigen CRM volstaan endpoints voor klantopvraag via nummer en dossieraanmaak. Details: CRM-integratie.
Webhook
Na afloop van het gesprek session_ended wordt de gebeurtenis verzonden (samenvatting, resultaat, aangeroepen tools). Zie Webhooks.
