Asystent Głosowy
Czytaj rozmowy asystenta, notatki i terminy; z CRM uruchamiaj zadania dzwoniące (oferta / windykacja); osadź ekran rozmowy na żywo we własnym oprogramowaniu. Klucz integracji (bt_…, zakres voicebot lub autocall).
Punkt końcowy: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — odczyt GET, zmieniające POST. Parametry można przesyłać jako query, formularz lub treść JSON.
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
Lista rozmów i podsumowanie pojedynczej rozmowy.
| Parametr | Opis |
|---|---|
bot_id | Filtr asystenta |
from, to | Zakres dat (Y-m-d) |
outcome | Filtr wyniku (resolved, transferred, note, appointment, failed …) |
caller | Numer dzwoniącego |
limit, offset | Stronicowanie (maksymalnie 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 zwraca pojedynczy rekord z wywołanymi narzędziami i polami wyniku; action=session_messages&id=8812 zwraca pełną transkrypcję (rola, tekst, czas).
GETnotes · POST note_done
Notatki i prośby o oddzwonienie przyjęte przez asystenta.
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 }
Typy notatek: note, callback, approval (zatwierdzenie ceny). note_done zamyka notatkę.
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 przeszłe rozmowy numeru ze wszystkimi asystentami (źródło pamięci), memory zwraca tekst pamięci przekazany asystentowi dla tego numeru — do diagnostyki „dlaczego asystent to powiedział”.
GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567
POSTtask_start — zadanie dzwoniące
Pozwala asystentowi natychmiast zadzwonić do klienta: oferta naprawy (quote) lub zadanie dowolne (brief). W ofercie cena minimalna jest chroniona; jeśli klient zażąda ceny poniżej minimum, asystent uzyskuje zgodę osoby upoważnionej („zapytam osobę upoważnioną i oddzwonię”).
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" }
}'
| Pole | Wymagane | Opis |
|---|---|---|
bot_id | tak | Asystent wykonujący połączenie |
phone | tak | Numer do wybrania |
kind | tak | quote (oferta) lub brief (zadanie dowolne) |
brief | tak | Kontekst, który asystent powinien znać (diagnoza, warunki) |
offer_price, floor_price | dla quote | Oferta początkowa i cena minimalna, do której można zejść; cena minimalna nie jest ujawniana klientowi i jest egzekwowana także po stronie serwera |
payment_options | nie | online,havale → po akceptacji pytany jest sposób płatności |
caller_id, trunk_slug | nie | Numer dzwoniącego i linia (caller_ids / trunks wyświetlane przez) |
external_ref | nie | Identyfikator Twojego nagrania (tasks aby znaleźć przez) |
followup_of, decision, decision_note | nie | Oddzwonienie po decyzji osoby upoważnionej: approved / counter / rejected |
Odpowiedź: { "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
Statusy zadań: calling → active → ended; failed (nieosiągalny). Pola wyniku: outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.
GETembed_url — osadzanie ekranu na żywo
Generuje czasowy, podpisany adres do osadzenia w oprogramowaniu przez iframe komunikatora rozmowy na żywo/historycznego; sesja panelu nie jest potrzebna.
GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
| Parametr | Opis |
|---|---|
phone | Ekran pokazuje (i przyjmuje polecenia) tylko dla rozmów tego numeru |
task_id / session_id | Określone zadanie lub rozmowa |
listener_extension | Numer wewnętrzny używany do „Podsłuchu” |
ttl | Sekundy (domyślnie 12 godz.) |
do iframe allow="microphone" podaj; funkcja szeptu głosowego osoby upoważnionej korzysta z rozpoznawania mowy samej przeglądarki (Chrome/Edge).
GETfaq_suggestions
Propozycje pytań i odpowiedzi wydobyte z rozmów (oczekujące na zatwierdzenie). Zatwierdzenie w panelu.
Połączenie asystenta z Twoim CRM
Narzędzia REST, dzięki którym asystent znajdzie / założy rekord w Twoim systemie, definiuje się w formularzu asystenta (URL, metoda, nagłówki, parametry). Dla Byfix CRM jest gotowy most; dla własnego CRM wystarczą punkty końcowe zapytania o klienta po numerze i zakładania rekordu. Szczegóły: Integracja z CRM.
Webhook
Po zakończeniu rozmowy session_ended wysyłane jest zdarzenie (podsumowanie, wynik, wywołane narzędzia). Zob. Webhooki.
