Assistente de Voz
Leia as conversas, notas e marcações do assistente; inicie chamadas de tarefa a partir do CRM (proposta / cobrança); incorpore o ecrã de conversa em direto no seu próprio software. Chave de integração (bt_…, âmbito voicebot ou autocall).
Endpoint: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — leitura GET, que altera POST. Os parâmetros podem ser enviados por query, formulário ou corpo 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 conversas e resumo de uma conversa.
| Parâmetro | Descrição |
|---|---|
bot_id | Filtro de assistente |
from, to | Intervalo de datas (Y-m-d) |
outcome | Filtro de resultado (resolved, transferred, note, appointment, failed …) |
caller | Número de origem |
limit, offset | Paginação (no 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 devolve um único registo com as ferramentas invocadas e os campos de resultado; action=session_messages&id=8812 devolve a transcrição completa (função, texto, hora).
GETnotes · POST note_done
Notas e pedidos de chamada de retorno registados pelo assistente.
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 (aprovação de preço). note_done fecha a 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 o historial de conversas de um número em todos os assistentes (fonte da memória), memory devolve o texto de memória dado ao assistente para esse número — para o diagnóstico "porque disse isto o assistente".
GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567
POSTtask_start — chamada de tarefa
Faz o assistente ligar imediatamente ao cliente: proposta de reparação (quote) ou tarefa livre (brief). Na proposta, o preço mínimo é preservado; se o cliente pedir abaixo do mínimo, o assistente obtém a aprovação de um responsável ("vou consultar o responsável e volto a contactá-lo").
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 | Obrigatório | Descrição |
|---|---|---|
bot_id | sim | Assistente que fará a chamada |
phone | sim | Número a chamar |
kind | sim | quote (proposta) ou brief (tarefa livre) |
brief | sim | Contexto que o assistente deve conhecer (diagnóstico, condições) |
offer_price, floor_price | para quote | Proposta inicial e preço mínimo até onde se pode descer; o mínimo não é revelado ao cliente e é também aplicado no servidor |
payment_options | não | online,havale → na aceitação, pergunta-se a forma de pagamento |
caller_id, trunk_slug | não | Número de origem e linha (caller_ids / trunks é listado com) |
external_ref | não | Identificador do seu próprio áudio (tasks para encontrar com) |
followup_of, decision, decision_note | não | Chamada de retorno após a decisão do responsável: approved / counter / rejected |
Resposta: { "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 da tarefa: calling → active → ended; failed (inatingível). Campos do resultado: outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.
GETembed_url — incorporar o ecrã em direto
Gera um endereço assinado e com prazo para incorporar no seu software, por iframe, o ecrã de messenger em direto/histórico da conversa; não é necessária sessão no painel.
GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
| Parâmetro | Descrição |
|---|---|
phone | O ecrã mostra apenas as conversas deste número (e dá comandos) |
task_id / session_id | Tarefa ou conversa específica |
listener_extension | Extensão a utilizar para "Ouvir" |
ttl | Segundos (por defeito 12 horas) |
para o iframe allow="microphone" indique; a funcionalidade de segredar do responsável utiliza o reconhecimento de voz do próprio navegador (Chrome/Edge).
GETfaq_suggestions
Sugestões de pergunta-resposta extraídas das conversas (a aguardar aprovação). A aprovação é dada no painel.
Ligar o assistente ao seu CRM
Para o assistente encontrar/abrir registos no seu sistema, as ferramentas REST são definidas no formulário do assistente (URL, método, cabeçalhos, parâmetros). Existe uma ponte pronta para o Byfix CRM; para o seu próprio CRM bastam endpoints de consulta de cliente por número e de abertura de registo. Detalhes: Integração com CRM.
Webhook
Quando a conversa termina session_ended é enviado o evento (resumo, resultado, ferramentas invocadas). Ver Webhooks.
