Assistant vocal

Consultez les conversations, notes et rendez-vous de l'assistant ; lancez depuis le CRM un appel de mission (offre / recouvrement) ; intégrez l'écran de conversation en direct à votre propre logiciel. Clé d'intégration (bt_…, portée voicebot ou autocall).

Point d'accès : https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — lecture GET, modifiant POST. Les paramètres peuvent être envoyés en query, en formulaire ou en corps 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

Liste des conversations et résumé d'une conversation.

ParamètreDescription
bot_idFiltre d'assistant
from, toPlage de dates (Y-m-d)
outcomeFiltre de résultat (resolved, transferred, note, appointment, failed …)
callerNuméro appelant
limit, offsetPagination (maximum 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 renvoie un seul enregistrement avec les appels d'outils et les champs de résultat ; action=session_messages&id=8812 donne la transcription intégrale (rôle, texte, heure).

GETnotes · POST note_done

Notes et demandes de rappel prises par l'assistant.

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 }

Types de notes : note, callback, approval (validation du prix). note_done clôt la note.

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 l'historique des conversations passées d'un numéro sur tous les assistants (source de la mémoire), memory renvoie le texte de mémoire donné à l'assistant pour ce numéro — pour diagnostiquer « pourquoi l'assistant a dit cela ».

GET ?action=history&phone=05321234567&limit=20
GET ?action=memory&phone=05321234567

POSTtask_start — appel de mission

Permet à l'assistant d'appeler immédiatement le client : devis de réparation (quote) ou mission libre (brief). Dans l'offre, le prix plancher est protégé ; si le client demande en dessous, l'assistant obtient l'accord d'un responsable (« je vais demander à mon responsable et je reviens vers vous »).

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" }
  }'
ChampObligatoireDescription
bot_idouiAssistant qui passera l'appel
phoneouiNuméro à appeler
kindouiquote (offre) ou brief (mission libre)
briefouiContexte que l'assistant doit connaître (diagnostic, conditions)
offer_price, floor_pricepour quoteOffre d'ouverture et plancher à ne pas dépasser ; le plancher n'est pas communiqué au client et il est aussi appliqué côté serveur
payment_optionsnononline,havale → au moment de l'acceptation, le mode de paiement est demandé
caller_id, trunk_slugnonNuméro appelant et ligne (caller_ids / trunks est listé avec)
external_refnonIdentifiant de votre propre enregistrement (tasks pour trouver avec)
followup_of, decision, decision_notenonAppel de rappel après la décision du responsable : approved / counter / rejected

Réponse : { "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

États des missions : calling → active → ended; failed (injoignable). Champs de résultat : outcome (accepted, rejected, manager_approval, callback, not_reached), agreed_price, requested_price, payment_method, summary, callback_time.

GETembed_url — intégration de l'écran en direct

Génère une adresse signée à durée limitée pour intégrer l'écran de messagerie en direct/historique de la conversation à votre logiciel via iframe ; aucune session sur le panneau n'est nécessaire.

GET ?action=embed_url&phone=05321234567&label=crm&ttl=43200
ParamètreDescription
phoneL'écran n'affiche (et ne commande) que les conversations de ce numéro
task_id / session_idMission ou conversation précise
listener_extensionPoste interne utilisé pour « Écouter »
ttlSecondes (par défaut 12 heures)

à l'iframe allow="microphone" donnez ; la fonction de chuchotement du responsable utilise la reconnaissance vocale propre du navigateur (Chrome/Edge).

GETfaq_suggestions

Suggestions de questions-réponses extraites des conversations (en attente de validation). La validation se fait dans le panneau.

Connexion de l'assistant à votre CRM

Les outils REST qui permettent à l'assistant de trouver / créer des enregistrements dans votre système se définissent dans le formulaire de l'assistant (URL, méthode, en-têtes, paramètres). Un pont prêt à l'emploi existe pour le CRM Byfix ; pour votre propre CRM, une requête client par numéro et la création d'enregistrements suffisent. Détail : Intégration CRM.

Webhook

À la fin de la conversation session_ended l'événement est envoyé (résumé, résultat, appels d'outils). Voir Webhooks.