Asistente de Voz
Lea las conversaciones, notas y citas del asistente; inicie desde el CRM una llamada de tarea (oferta / cobro); incruste la pantalla de conversación en vivo en su propio software. Clave de integración (bt_…, alcance voicebot o autocall).
Endpoint: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — lectura GET, que modifican POST. Los parámetros pueden enviarse por query, formulario o cuerpo 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 de conversaciones y resumen de una conversación.
| Parámetro | Descripción |
|---|---|
bot_id | Filtro de asistente |
from, to | Rango de fechas (Y-m-d) |
outcome | Filtro de resultado (resolved, transferred, note, appointment, failed …) |
caller | Número de origen |
limit, offset | Paginación (máximo 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 devuelve el registro individual con las llamadas a herramientas y los campos de resultado; action=session_messages&id=8812 devuelve la transcripción completa (rol, texto, hora).
GETnotes · POST note_done
Notas y solicitudes de devolución de llamada tomadas por el asistente.
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 }
Tipos de nota: note, callback, approval (aprobación de precio). note_done cierra la nota.
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 el historial de conversaciones de un número con todos los asistentes (fuente de la memoria), memory devuelve el texto de memoria entregado al asistente para ese número — para diagnosticar "por qué dijo esto el asistente".
GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567
POSTtask_start — llamada de tarea
Permite que el asistente llame al cliente de inmediato: oferta de reparación (quote) o tarea libre (brief). En la oferta se mantiene el precio mínimo; si el cliente pide menos del mínimo, el asistente solicita autorización del responsable ("consultaré con el responsable y le devuelvo la llamada").
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" }
}'
| Campo | Obligatorio | Descripción |
|---|---|---|
bot_id | sí | Asistente que hará la llamada |
phone | sí | Número al que llamar |
kind | sí | quote (oferta) o brief (tarea libre) |
brief | sí | El contexto que el asistente debe conocer (diagnóstico, condiciones) |
offer_price, floor_price | para quote | Oferta inicial y precio mínimo al que se puede llegar; el mínimo no se comunica al cliente y también se aplica en el servidor |
payment_options | no | online,havale → al aceptar se pregunta el método de pago |
caller_id, trunk_slug | no | Número de origen y línea (caller_ids / trunks se lista con) |
external_ref | no | El identificador de su propia grabación (tasks para encontrar con) |
followup_of, decision, decision_note | no | Llamada de devolución tras la decisión del responsable: approved / counter / rejected |
Respuesta: { "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
Estados de la tarea: calling → active → ended; failed (no se pudo contactar). Campos de resultado: outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.
GETembed_url — incrustar la pantalla en vivo
Genera una dirección firmada y de duración limitada para incrustar en su software, mediante iframe, la pantalla de mensajería en vivo/histórica de la conversación; no requiere sesión en el panel.
GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
| Parámetro | Descripción |
|---|---|
phone | La pantalla muestra (y da órdenes) solo para las conversaciones de este número |
task_id / session_id | Tarea o conversación específica |
listener_extension | Extensión que se usará para "Escuchar" |
ttl | Segundos (por defecto 12 horas) |
al iframe allow="microphone" indíquelo; la función de susurro del responsable usa el reconocimiento de voz del propio navegador (Chrome/Edge).
GETfaq_suggestions
Sugerencias de preguntas y respuestas extraídas de las conversaciones (pendientes de aprobación). La aprobación se da desde el panel.
Conexión del asistente a su CRM
Las herramientas REST para que el asistente encuentre o abra registros en su sistema se definen en el formulario del asistente (URL, método, encabezados, parámetros). Hay un puente listo para el CRM Byfix; para su propio CRM bastan endpoints de consulta de cliente por número y de apertura de registros. Detalle: Integración con CRM.
Webhook
Al terminar la conversación session_ended se envía el evento (resumen, resultado, llamadas a herramientas). Véase Webhooks.
