دستیار صوتی

گفتگوهای دستیار، یادداشت‌ها و نوبت‌ها را بخوانید؛ از CRM تماس مأموریتی (پیشنهاد / وصول) شروع کنید؛ صفحه گفتگوی زنده را در نرم‌افزار خودتان جاسازی کنید. کلید یکپارچه‌سازی (bt_…، دامنه voicebot یا autocall).

نقطه: https://api.buluthat.com/api/voicebot_api.php?action=<işlem> — خواندن GET، تغییردهنده POST. پارامترها را می‌توان با query، فرم یا بدنه 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ها.