Голосовой ассистент
Читайте разговоры ассистента, заметки и записи на приём; запускайте задания-звонки (предложение / взыскание) из CRM; встраивайте экран живых разговоров в своё ПО. Ключ интеграции (bt_…, область voicebot или autocall).
Метод: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — чтение GET, изменяющие POST. Параметры можно передавать в query, form или теле 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
Список разговоров и сводка по отдельному разговору.
| Параметр | Описание |
|---|---|
bot_id | Фильтр по ассистенту |
from, to | Диапазон дат (Y-m-d) |
outcome | Фильтр по результату (resolved, transferred, note, appointment, failed …) |
caller | Номер звонящего |
limit, offset | Постраничная выдача (не более 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 возвращает одну запись с вызванными инструментами и полями результата; action=session_messages&id=8812 выдаёт полную расшифровку (роль, текст, время).
GETnotes · POST note_done
Заметки ассистента и запросы на обратный звонок.
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 }
Типы заметок: note, callback, approval (подтверждение цены). note_done закрывает заметку.
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 историю разговоров номера по всем ассистентам (источник памяти), memory возвращает текст памяти, переданный ассистенту по этому номеру — для диагностики «почему ассистент это сказал».
GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567
POSTtask_start — задание-звонок
Заставляет ассистента сразу позвонить клиенту: коммерческое предложение по ремонту (quote) или свободное задание (brief). В предложении сохраняется минимальная цена; если клиент просит ниже минимума, ассистент запрашивает согласие ответственного («уточню у руководителя и перезвоню»).
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" }
}'
| Поле | Обязательно | Описание |
|---|---|---|
bot_id | да | Ассистент, который совершит звонок |
phone | да | Номер для вызова |
kind | да | quote (предложение) или brief (свободное задание) |
brief | да | Контекст, который должен знать ассистент (диагноз, условия) |
offer_price, floor_price | для quote | Начальное предложение и минимальная цена, ниже которой можно опуститься; минимум клиенту не сообщается и применяется также на стороне сервера |
payment_options | нет | online,havale → при согласии спрашивается способ оплаты |
caller_id, trunk_slug | нет | Номер звонящего и линия (caller_ids / trunks отображается списком по) |
external_ref | нет | Идентификатор вашей записи (tasks чтобы найти по) |
followup_of, decision, decision_note | нет | Обратный звонок после решения уполномоченного: approved / counter / rejected |
Ответ: { "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
Статусы заданий: calling → active → ended; failed (недозвон). Поля результата: outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.
GETembed_url — встраивание живого экрана
Создаёт адрес с ограниченным сроком действия и подписью для встраивания живого/архивного мессенджера разговора через iframe в ваше ПО; вход в панель не нужен.
GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
| Параметр | Описание |
|---|---|
phone | Экран показывает (и принимает команды) только по разговорам этого номера |
task_id / session_id | Конкретное задание или разговор |
listener_extension | Внутренний номер для функции «Прослушать» |
ttl | Секунд (по умолчанию 12 ч) |
в iframe allow="microphone" укажите; функция голосового шёпота уполномоченного использует собственное распознавание речи браузера (Chrome/Edge).
GETfaq_suggestions
Предложения вопросов и ответов, извлечённые из разговоров (ожидают одобрения). Одобрение даётся в панели.
Подключение ассистента к вашей CRM
REST-инструменты, позволяющие ассистенту находить/создавать записи в вашей системе, задаются в форме ассистента (URL, метод, заголовки, параметры). Для Byfix CRM есть готовый мост; для вашей CRM достаточно методов поиска клиента по номеру и создания записи. Подробности: Интеграция с CRM.
Webhook
Когда разговор закончится session_ended отправляется событие (сводка, результат, вызванные инструменты). См. Webhook.
