المساعد الصوتي

اقرؤوا محادثات المساعد والملاحظات والمواعيد؛ وابدؤوا مهمة اتصال (عرض سعر / تحصيل) من 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.