การให้บริการแบบแมนนวล
เมื่อผู้พัฒนาเลือก Webhook เป็นวิธีการเชื่อมต่อบริการแบบแมนนวล จะต้องสร้างบริการ Webhook ในเซิร์ฟเวอร์ของตนเองก่อน ผู้พัฒนาต้องจัดเตรียม 3 อินเทอร์เฟซตามข้อกำหนด เพื่อรับคำขอบริการแบบแมนนวล ข้อความจากผู้ใช้ และข้อความตอบกลับจากเจ้าหน้าที่บริการลูกค้ามนุษย์ GPTBots ยังมี 2 อินเทอร์เฟซสำหรับรับข้อความตอบกลับจากเจ้าหน้าที่บริการลูกค้าและคำสั่งปิดการสนทนา
หมายเหตุสำคัญ:
- ผู้พัฒนาต้องตรวจสอบให้แน่ใจว่าบริการ Webhook ของตนทำงานได้ถูกต้อง เพราะส่งผลโดยตรงต่อการให้บริการช่วยเหลือโดยมนุษย์
- หากขึ้นว่า "Busy" หลังจากเริ่มต้นการขอรับบริการโดยมนุษย์ แสดงว่าบริการ Webhook ของผู้พัฒนา ทำงานผิดปกติ
- หากขึ้นว่า "Connecting" หลังจากเริ่มต้นการขอรับบริการโดยมนุษย์ แสดงว่าบริการ Webhook ของผู้พัฒนา ทำงานปกติ
- หลังจากเริ่มต้นคำขอบริการช่วยเหลือโดยมนุษย์สำเร็จ:
- ผู้พัฒนาต้องเรียกใช้อินเทอร์เฟซ Reply to User Message (https://api.gptbots.ai/v1/human/message/receive) เพื่อส่งข้อความตอบกลับผู้ใช้อย่างน้อย 1 ข้อความ เพื่อสร้างการเชื่อมต่อสนทนา
- หากผู้พัฒนาไม่ตอบกลับข้อความของผู้ใช้ภายในช่วง waiting timeout ที่ตั้งไว้ (ค่าเริ่มต้น 60 วินาที) การสนทนาแบบช่วยเหลือโดยมนุษย์จะสิ้นสุดโดยอัตโนมัติ
รับการแจ้งเตือนคำขอสนทนาบริการมนุษย์
เมื่อผู้ใช้ปลายทางเริ่มต้นขอรับบริการมนุษย์ GPTBots จะส่งต่อคำขอนี้ไปยังบริการ Webhook ของผู้พัฒนา หากบริการอินเทอร์เฟซของผู้พัฒนาตอบกลับด้วยรหัสสถานะ 200 หมายถึงการสร้างสนทนาบริการมนุษย์สำเร็จ
วิธีการร้องขอ
POST
Endpoint
https://your_domain/conversation/establish
ตัวอย่างการร้องขอ
curl -X POST 'https://YOUR_DOMAIN/human/service/conversation/establish' \
-H 'Content-Type: application/json' \
-d '{
"body": [
{
"text": "human service",
"message_type": "QUESTION"
},
{
"text": "",
"message_type": "ANSWER"
}
],
"timestamp": 1742265090895,
"email": "bob@gmail.com",
"conversation_id": "67d8db020fa31d1ef64f53dg",
"bot_id": "665d88b03ce2b13cf2d573454",
"user_info": {
"phone": null,
"email": "bob@gmail.com",
"user_id": "KDslas",
"anonymous_id": "652face5184b30540a6ea7fe"
}
}'
หมายเหตุ:
conversation_idใน request body นี้ใช้เพื่อระบุรหัสเฉพาะของสถานการณ์สนทนาบริการมนุษย์ ซึ่งแตกต่างจากรหัสเฉพาะที่สร้างโดย Create Conversation ID สำหรับสถานการณ์สนทนา Agent
พารามิเตอร์ของคำขอ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| conversation_id | string | รหัสสนทนาสำหรับสถานการณ์บริการลูกค้ามนุษย์ (แตกต่างจากรหัสสนทนา Agent) ต้องส่งต่อไปยัง GPTBots ในอินเทอร์เฟซตอบกลับบริการลูกค้า |
| timestamp | long | เวลาประทับ |
| string | อีเมลผู้ใช้ บางระบบบริการแมนนวลต้องใช้อีเมลเพื่อให้บริการได้ถูกต้อง | |
| bot_id | string | Agent (ชื่อเดิม bot) ID |
| body | list<Object> | เนื้อหาข้อความ |
| body.message_type | string | ประเภทข้อความ QUESTION/ANSWER |
| body.text | string | คำถามที่ลูกค้าเริ่มต้นเพื่อขอรับบริการลูกค้าแมนนวลและบริบท |
| user_info | object | ข้อมูลผู้ใช้ |
| user_info.phone | string | เบอร์โทรศัพท์ผู้ใช้ ปัจจุบันมีเฉพาะเมื่อเปลี่ยนไปใช้บริการลูกค้าแมนนวลผ่าน WhatsApp |
| user_info.email | string | อีเมลผู้ใช้ กรณีผู้ใช้กรอกอีเมล |
| user_info.user_id | string | User ID. ตัวระบุผู้ใช้ที่ไม่ซ้ำกันซึ่งกำหนดโดยนักพัฒนาองค์กร นักพัฒนาตั้งค่าสำหรับ anonymous ID เฉพาะ |
| user_info.anonymous_id | string | Anonymous ID. เมื่อผู้ใช้เริ่มต้นสนทนากับ Agent บนแพลตฟอร์มที่ไม่ใช่ API ระบบจะสร้าง anonymous ID ที่มีข้อมูลแพลตฟอร์มช่องทางนั้น ๆ ตามช่องทางของผู้ใช้ |
หมายเหตุเกี่ยวกับฟิลด์
- เมื่อเริ่มต้นบริการแมนนวลผ่าน iframe/Share/Bubble Widget ผู้ใช้ต้องกรอกอีเมล นักพัฒนาสามารถกำหนดอีเมลผู้ใช้เองเพื่อเลี่ยงการบังคับกรอกอีเมลได้
- เมื่อขอบริการแมนนวลผ่านแพลตฟอร์ดภายนอก เช่น WhatsApp/Telegram/livechat อีเมลเริ่มต้นคือ support@gptbots.ai สำหรับ livechat นักพัฒนาสามารถกำหนดอีเมลผู้ใช้เองได้
- เมื่อขอบริการแมนนวลผ่าน API ฟิลด์
การตอบกลับ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | รหัสการตอบกลับ |
| message | string | รายละเอียด |
อินเทอร์เฟซสนทนา
โดยใช้ conversation_id ที่สร้างขึ้น ส่งข้อความของผู้ใช้ไปยังเจ้าหน้าที่บริการลูกค้าแมนนวล
วิธีการร้องขอ
POST
Endpoint
พารามิเตอร์ของคำขอ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| conversation_id | string | รหัสสนทนา ต้องส่งต่อไปยัง GPTBots ในอินเทอร์เฟซตอบกลับบริการลูกค้า |
| timestamp | long | เวลาประทับ |
| body | string | ข้อความของผู้ใช้ |
การตอบกลับ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | รหัสการตอบกลับ |
| message | string | รายละเอียด |
อินเทอร์เฟซปิดการสนทนา
เมื่อการสนทนาของผู้ใช้หมดเวลา หรือ Agent หรือผู้ใช้ปิดการสนทนาเอง จะเรียกใช้อินเทอร์เฟซนี้เพื่อปิดการสนทนา
วิธีการร้องขอ
POST
Endpoint
https://your_domain/conversation/close
Request Header
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| Authorization | Bearer ${token} | ใช้ Authorization: Bearer ${token} สำหรับการยืนยันตัวตน รับ token ได้จากหน้า API key |
| Content-Type | application/json | ประเภทข้อมูล ตั้งค่าเป็น application/json |
พารามิเตอร์ของคำขอ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| conversation_id | string | รหัสสนทนา ต้องส่งต่อไปยัง GPTBots ในอินเทอร์เฟซตอบกลับบริการลูกค้า |
| timestamp | long | เวลาประทับ |
| type | string | ประเภทการปิด TIMEOUT (หมดเวลา) / USER_CLOSED (ผู้ใช้ปิดเอง) |
การตอบกลับ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | รหัสการตอบกลับ |
| message | string | รายละเอียด |
ตอบกลับข้อความผู้ใช้
เมื่อผู้พัฒนาเลือก webhook เป็นวิธีเชื่อมต่อบริการมนุษย์ GPTBots จะมีอินเทอร์เฟซสำหรับตอบกลับข้อความผู้ใช้ อินเทอร์เฟซนี้ช่วยให้เจ้าหน้าที่บริการลูกค้ามนุษย์ส่งข้อความกลับไปยังผู้ใช้ได้
วิธีการร้องขอ
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/human/message/receive
Request Header
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| Authorization | Bearer ${token} | ใช้ Authorization: Bearer ${token} สำหรับการยืนยันตัวตน รับ token ได้จากหน้า API key |
| Content-Type | application/json | ประเภทข้อมูล ตั้งค่าเป็น application/json |
พารามิเตอร์ของคำขอ
| พารามิเตอร์ | ประเภท | คำอธิบาย | จำเป็น |
|---|---|---|---|
| conversation_id | string | รหัสสนทนา ส่งต่อจากอินเทอร์เฟซสร้างสนทนาและอินเทอร์เฟซสนทนา | true |
| timestamp | long | เวลาประทับ | true |
| body | string | เนื้อหาตอบกลับจากเจ้าหน้าที่บริการลูกค้าแมนนวล | true |
การตอบกลับ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | รหัสการตอบกลับ |
| message | string | รายละเอียด |
เจ้าหน้าที่บริการลูกค้าแมนนวลปิดการสนทนา
เมื่อผู้พัฒนาเลือก webhook เป็นวิธีเชื่อมต่อบริการแมนนวล เจ้าหน้าที่บริการลูกค้าที่ให้บริการโดย GPTBots สามารถปิดการสนทนาได้เองเมื่อจำเป็น หลังจากปิดแล้ว ผู้ใช้จะไม่ได้รับข้อความจากเจ้าหน้าที่บริการลูกค้าอีก เว้นแต่ผู้ใช้จะเริ่มต้นสนทนาแบบบริการลูกค้าแมนนวลใหม่อีกครั้ง
วิธีการร้องขอ
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/human/close
Request Header
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| Authorization | Bearer ${API Key} | ใช้ Authorization: Bearer ${API Key} สำหรับการยืนยันตัวตน รับ API key ได้จากหน้า API Key |
| Content-Type | application/json | ประเภทข้อมูล ตั้งค่าเป็น application/json |
พารามิเตอร์ของคำขอ
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| conversation_id | string | รหัสสนทนา ต้องส่งต่อไปยัง GPTBots ในอินเทอร์เฟซตอบกลับบริการลูกค้า |
| timestamp | long | เวลาประทับ |
การตอบกลับ
| พารามิเตอร์ | ประเภท | คำอธิบาย | จำเป็น |
|---|---|---|---|
| conversation_id | string | รหัสสนทนา ส่งต่อจากอินเทอร์เฟซสร้างสนทนาและอินเทอร์เฟซสนทนา | true |
| timestamp | long | เวลาประทับ | true |
