মেসেজ পাঠানো
POST /chat — যে endpoint সবচেয়ে বেশি ব্যবহার করবেন।
POST https://aiagent1.skotechlabs.com/api/v1/chat
কাস্টমারের একটা মেসেজ আপনার এজেন্টের কাছে পাঠায়, আর এজেন্টের উত্তর ফেরত দেয়।
Body
| Field | ধরন | বাধ্যতামূলক | বিবরণ |
|---|---|---|---|
message |
string | হ্যাঁ* | কাস্টমার যা লিখেছে (সর্বোচ্চ ৪,০০০ অক্ষর)। *attachments দিলে না দিলেও চলে। |
attachments |
array | না | POST /uploads থেকে পাওয়া সর্বোচ্চ ৮টা attachment ID — কাস্টমারের পাঠানো ছবি বা ভয়েস নোট। দেখুন ছবি ও ভয়েস নোট। |
conversation_id |
string | না | থ্রেডের জন্য আপনার ID (যেমন Messenger PSID বা আপনার চ্যাট ID)। একই ID দিলে কথোপকথন চলতে থাকে; না দিলে নতুন শুরু হয়। |
agent_id |
integer | না | কোন এজেন্ট উত্তর দেবে। না দিলে default এজেন্ট। |
channel |
string | না | হিসাবের জন্য লেবেল: api (default), messenger, whatsapp, app… |
customer |
object | না | { "id", "name", "phone", "email" } — কনট্যাক্টে সেভ হয়। |
Response
| Field | বিবরণ |
|---|---|
reply |
কাস্টমারকে যে লেখা দেখাবেন। মানুষ দায়িত্ব নিলে null। |
status |
answered, unanswered (তথ্যে উত্তর ছিল না), handover (মানুষ দরকার), paused (টিমের কেউ দেখছে), no_credits |
needs_human |
কথোপকথন আপনার টিমের অপেক্ষায় থাকলে true। |
intent |
কাস্টমার কী চেয়েছিল: pricing, order_tracking, delivery, return_refund, complaint… |
sources |
যেসব FAQ, ডকুমেন্টের অংশ, প্রোডাক্ট আর টুল থেকে উত্তর এসেছে। |
credits_used / credits_remaining |
এই উত্তরের খরচ আর বাকি ক্রেডিট। |
Status অনুযায়ী কী করবেন
- handover / needs_human — উত্তরটা দেখান, তারপর আপনার টিমকে জানান। একটা
handover.requestedwebhook-ও পাবেন। - paused — টিমের কেউ inbox থেকে উত্তর দিয়েছে। তার মেসেজ
agent.repliedwebhook দিয়ে আসবে; এখন কিছু দেখাবেন না। - no_credits — HTTP
402। উত্তরে আপনার উইজেটের offline মেসেজ থাকে। আবার চালু করতে ক্রেডিট কিনুন।
Idempotency
নেটওয়ার্ক সমস্যার পর নিরাপদে আবার চেষ্টা করতে একটা Idempotency-Key header পাঠান (যেকোনো ইউনিক লেখা) — ২৪ ঘণ্টার মধ্যে একই key পাঠালে নতুন উত্তর না বানিয়ে আগের response-টাই ফেরত আসে।
