การเชื่อมต่อ Intent Webhook
ต้องการให้บอทของคุณเรียกใช้งานต่างๆ เมื่อลูกค้าถึงจุดสำคัญหรือไม่? เช่น สร้างลิงก์ชำระเงินเมื่อมีคนพร้อมซื้อ หรืออัปเดต CRM เมื่อพวกเขาแชร์ข้อมูลติดต่อ? Intent Webhooks ช่วยให้คุณเชื่อมต่อบอทกับระบบภายนอกใดๆ ได้ — เรียกใช้งานอัตโนมัติตามสิ่งที่ AI ตรวจพบในการสนทนา
คุณสามารถทำอะไรได้บ้างกับ Intent Webhooks?
หัวข้อที่มีชื่อว่า “คุณสามารถทำอะไรได้บ้างกับ Intent Webhooks?”Intent Webhooks เปิดใช้งานระบบอัตโนมัติที่ทรงพลังโดยการเชื่อมต่อบอทของคุณกับระบบภายนอก:
- 💳 สร้างลิงก์ชำระเงิน — สร้าง URL ชำระเงินที่ไม่ซ้ำกันเมื่อลูกค้าพร้อมซื้อ
- 📊 อัปเดตระบบ CRM — ซิงค์ข้อมูลลูกค้าและข้อมูลเชิงลึกจากการสนทนาโดยอัตโนมัติ
- 📦 ประมวลผลคำสั่งซื้อ — เรียกใช้เวิร์กโฟลว์การจัดส่งในระบบแบ็กเอนด์ของคุณ
- 🔔 ส่งการแจ้งเตือน — แจ้งเตือนทีมของคุณผ่าน Slack, อีเมล หรือช่องทางอื่นๆ
- 🔗 เชื่อมต่อ API ใดก็ได้ — ผสานรวมกับบริการของบุคคลที่สามที่รับ webhooks
ความมหัศจรรย์: สิ่งนี้เกิดขึ้นโดยอัตโนมัติเมื่อ AI ของคุณตรวจจับความตั้งใจของลูกค้าเฉพาะ — ไม่ต้องทำงานด้วยตนเอง!
ข้อกำหนดเบื้องต้น
หัวข้อที่มีชื่อว่า “ข้อกำหนดเบื้องต้น”ก่อนตั้งค่า Intent Webhooks ตรวจสอบให้แน่ใจว่าคุณเข้าใจ:
- Intent ทำงานอย่างไร — อ่าน คู่มือเพิ่ม Intent เพื่อเรียนรู้ว่า AI ของคุณตรวจจับความตั้งใจของลูกค้าอย่างไร
- แนวคิด API พื้นฐาน — คุณจะต้องสร้าง webhook endpoint ที่สามารถรับคำขอ POST
- เป้าหมายการผสานรวมของคุณ — ทราบว่าคุณต้องการเชื่อมต่อระบบภายนอกใดและข้อมูลใดที่คุณต้องการแลกเปลี่ยน
สำคัญ: Intent Webhooks ถูกกำหนดค่าภายในแต่ละ Intent สร้างหรือแก้ไข intent ก่อน จากนั้นกำหนดค่า webhook ที่ด้านล่างของหน้ากำหนดค่า intent
วิธีเข้าถึงการตั้งค่า Intent Webhook
หัวข้อที่มีชื่อว่า “วิธีเข้าถึงการตั้งค่า Intent Webhook”
ในการกำหนดค่า webhooks สำหรับ intent:
- เข้าสู่ระบบแดชบอร์ด DealDroid ของคุณ
- ไปที่ Tuning → Intents จากแถบด้านข้างซ้าย
- คลิกที่ intent ที่มีอยู่หรือสร้างใหม่
- เลื่อนไปที่ด้านล่างของหน้ากำหนดค่า intent
- ค้นหาส่วน “Call third party API”
นี่คือที่ที่คุณจะกำหนดค่าวิธี DealDroid สื่อสารกับระบบภายนอกของคุณ
คำอธิบายฟิลด์การกำหนดค่า
หัวข้อที่มีชื่อว่า “คำอธิบายฟิลด์การกำหนดค่า”Third party URL
หัวข้อที่มีชื่อว่า “Third party URL”นี่คือ URL สาธารณะของ webhook endpoint ของคุณที่จะรับคำขอ POST จาก DealDroid เมื่อ intent นี้ถูกเรียกใช้
ตัวอย่าง: https://your-server.com/api/intent-handler
ข้อกำหนด:
- ต้องเข้าถึงได้แบบสาธารณะ (DealDroid ต้องเข้าถึงจากอินเทอร์เน็ต)
- ต้องใช้ HTTPS (ไม่รองรับ HTTP ด้วยเหตุผลด้านความปลอดภัย)
- ควรตอบสนองภายใน 5 วินาที เพื่อหลีกเลี่ยง timeout
- ต้องรับคำขอ POST ด้วย JSON body
เคล็ดลับ:
- ใช้ endpoint เฉพาะสำหรับแต่ละ intent หากคุณต้องการ logic ที่แตกต่างกัน
- หรือใช้ endpoint เดียวและจัดการ intent ที่แตกต่างกันตาม payload
- รวม versioning ใน URL ของคุณ (เช่น
/api/v1/intent-handler) เพื่อความยืดหยุ่นในอนาคต
API Secret Key
หัวข้อที่มีชื่อว่า “API Secret Key”โทเค็นความลับที่ไม่ซ้ำใครที่ DealDroid จะรวมไว้กับทุกคำขอไปยัง endpoint ของคุณ ช่วยให้คุณตรวจสอบว่าคำขอมาจากบอท DealDroid ของคุณจริงๆ และไม่ใช่จากแหล่งที่ไม่ได้รับอนุญาต
ตัวอย่าง: your_secure_secret_key_2024
แนวทางปฏิบัติที่ดีที่สุด:
- ใช้สตริงแบบสุ่มที่ยาว (แนะนำอย่างน้อย 32 อักขระ)
- จัดเก็บอย่างปลอดภัยเป็นตัวแปรสภาพแวดล้อมบนเซิร์ฟเวอร์ของคุณ
- ไม่เคยคอมมิตไปยัง version control หรือเปิดเผยในโค้ดฝั่งไคลเอ็นต์
- หมุนเวียนเป็นระยะเพื่อความปลอดภัย
- สามารถเว้นว่างได้หาก endpoint ของคุณไม่ต้องการการรับรองความถูกต้อง (ไม่แนะนำสำหรับ production)
หมายเหตุด้านความปลอดภัย: ตรวจสอบความลับนี้บนเซิร์ฟเวอร์ของคุณเสมอก่อนประมวลผลคำขอ หากความลับไม่ตรงกัน ปฏิเสธคำขอด้วย 403 Forbidden response
Allow bot to send messages from provider URL
หัวข้อที่มีชื่อว่า “Allow bot to send messages from provider URL”เมื่อเลือก สิ่งนี้จะเปิดใช้งานการสื่อสารแบบสองทางระหว่าง DealDroid และระบบของคุณ:
- DealDroid → ระบบของคุณ: เมื่อ intent เรียกใช้ DealDroid จะส่งข้อมูลลูกค้าไปยัง URL ของคุณ
- ระบบของคุณ → DealDroid: endpoint ของคุณสามารถตอบกลับด้วยข้อความที่ DealDroid จะส่งให้ลูกค้า
- ระบบของคุณ → DealDroid (ภายหลัง): ระบบของคุณยังสามารถส่งข้อความได้ตลอดเวลาโดยใช้ webhook endpoint
กรณีการใช้งาน:
- ✅ เปิดใช้งาน: ระบบของคุณสร้างการตอบสนองแบบไดนามิก (ลิงก์ชำระเงิน, การยืนยันคำสั่งซื้อ, ข้อเสนอส่วนบุคคล)
- ❌ ปิดใช้งาน: คุณต้องการบันทึกข้อมูลหรือเรียกใช้กระบวนการแบ็กเอนด์เท่านั้นโดยไม่ตอบกลับลูกค้า
เคล็ดลับ: เว้นสิ่งนี้ไว้สำหรับกรณีการใช้งานส่วนใหญ่ มันให้ความยืดหยุ่นสูงสุดในการตอบสนองลูกค้าแบบไดนามิก
Intent Webhooks ทำงานอย่างไร
หัวข้อที่มีชื่อว่า “Intent Webhooks ทำงานอย่างไร”นี่คือขั้นตอนทั้งหมดเมื่อลูกค้าเรียกใช้ intent ที่มีการผสานรวม webhook:
- ลูกค้าส่งข้อความ — “ฉันต้องการซื้ออาหารสุนัข 2 ถุง”
- AI วิเคราะห์ intent — ตรวจจับ intent “Purchase”
- DealDroid ส่ง webhook — คำขอ POST ไปยัง URL ที่กำหนดค่าของคุณพร้อมบริบทที่สมบูรณ์
- ระบบของคุณประมวลผล — สร้างลิงก์ชำระเงิน, สร้างคำสั่งซื้อ, อัปเดต CRM ฯลฯ
- ระบบของคุณตอบกลับ — ส่งข้อความกลับไปให้ลูกค้า
- DealDroid ส่งมอบ — ส่งข้อความของคุณให้ลูกค้าอย่างราบรื่น
- ภายหลัง: ระบบของคุณสามารถส่งข้อความเพิ่มเติม — ใช้ webhook endpoint เพื่อส่งการอัปเดต (การยืนยันการชำระเงิน, การอัปเดตการจัดส่ง ฯลฯ)
สิ่งนี้สร้างประสบการณ์ที่ราบรื่นที่ระบบภายนอกขับเคลื่อนการสนทนาโดยที่ลูกค้าไม่รู้ถึงความซับซ้อนเบื้องหลัง
รูปแบบคำขอ: DealDroid → ระบบของคุณ
หัวข้อที่มีชื่อว่า “รูปแบบคำขอ: DealDroid → ระบบของคุณ”เมื่อ intent เรียกใช้ DealDroid จะส่งคำขอ POST ไปยัง URL ที่กำหนดค่าของคุณพร้อมบริบทการสนทนาที่ครอบคลุม
คำจำกัดความประเภท TypeScript
หัวข้อที่มีชื่อว่า “คำจำกัดความประเภท TypeScript”type IntentWebhookRequest = { // การติดตามข้อความ mid: string; customer_id: string;
// ข้อมูล Intent intent: string;
// ที่อยู่ลูกค้าที่แยกวิเคราะห์ address_parsing: { street_address: string; village_or_project: string; subdistrict: string; district: string; city: string; state: string; postal_code: string; country: string; };
// ความชอบการชำระเงิน payment_method: | "bank_transfer" | "cash_on_delivery" | "credit_card" | "other";
// รายละเอียดตะกร้าสินค้า shopping_cart: { products: Array<{ code: string; name: string; price: number; count: number; total: number; available: boolean; }>; shippingFee: string; grandTotal: string; unavailableCount: number; };
// ข้อมูลติดต่อ contact_info: { name: string; phone: string; email: string; address: string; city: string; zipcode: string; language: string; languageName: string; };
// ความปลอดภัย secret: string; // API Secret Key ที่คุณกำหนดค่า
// บริบทเพิ่มเติม folder: string; e: string; product_type: string;};ตารางอ้างอิงฟิลด์
หัวข้อที่มีชื่อว่า “ตารางอ้างอิงฟิลด์”| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
mid | string | ตัวระบุข้อความที่ไม่ซ้ำสำหรับการติดตาม |
customer_id | string | ตัวระบุลูกค้าที่ไม่ซ้ำ (ใช้สำหรับ webhook callback) |
intent | string | ชื่อของ intent ที่ถูกเรียกใช้ |
address_parsing | object | ส่วนประกอบที่อยู่จัดส่งที่แยกวิเคราะห์โดย AI |
payment_method | string | วิธีการชำระเงินที่ลูกค้าต้องการ |
shopping_cart | object | ตะกร้าสินค้าพร้อมสินค้า ยอดรวม และความพร้อมใช้งาน |
contact_info | object | รายละเอียดการติดต่อลูกค้าที่รวบรวมโดย AI |
secret | string | API Secret Key ของคุณสำหรับการตรวจสอบ |
folder | string | ตัวระบุองค์กรภายใน |
e | string | ตัวระบุสภาพแวดล้อม/พื้นที่ทำงาน |
product_type | string | ประเภทของสินค้าในการสนทนา |
การผสานรวม Webhook: ระบบของคุณ → DealDroid
หัวข้อที่มีชื่อว่า “การผสานรวม Webhook: ระบบของคุณ → DealDroid”นอกเหนือจากการตอบสนองต่อการเรียกใช้ intent แล้ว ระบบของคุณยังสามารถส่งข้อความถึงลูกค้าได้ตลอดเวลาโดยใช้ webhook endpoint ของ DealDroid เหมาะสำหรับการอัปเดตแบบอะซิงโครนัส เช่น การยืนยันการชำระเงิน การแจ้งเตือนการจัดส่ง หรือการเปลี่ยนแปลงสถานะ
Webhook Endpoint
หัวข้อที่มีชื่อว่า “Webhook Endpoint”URL: https://app.dealdroid.net/api/provider/webhook/
Method: POST
Content-Type: application/json
Request Body
หัวข้อที่มีชื่อว่า “Request Body”{ customer_id: string; // customer_id จากคำขอ intent webhook messages: string[]; // อาร์เรย์ของข้อความที่จะส่ง}ตัวอย่าง: การยืนยันการชำระเงิน
หัวข้อที่มีชื่อว่า “ตัวอย่าง: การยืนยันการชำระเงิน”{ "customer_id": "b9d35283-131d-4c85-9d66-c43d830daec0", "messages": [ "✅ รับชำระเงินแล้ว ขอบคุณค่ะ!", "📦 กำลังเตรียมคำสั่งซื้อของคุณ", "🚚 คาดว่าจะจัดส่งภายใน 2-3 วันทำการ" ]}ตัวอย่าง: การอัปเดตการจัดส่ง
หัวข้อที่มีชื่อว่า “ตัวอย่าง: การอัปเดตการจัดส่ง”{ "customer_id": "b9d35283-131d-4c85-9d66-c43d830daec0", "messages": [ "🚚 คำสั่งซื้อของคุณถูกจัดส่งแล้ว!", "📦 เลขติดตามพัสดุ: TH789456123", "ติดตามที่นี่: https://track.thailand-post.com/TH789456123" ]}Response
หัวข้อที่มีชื่อว่า “Response”การส่งข้อความสำเร็จจะได้รับ:
- Status Code:
200 OK - Response Body:
[OK]
ความปลอดภัยและแนวทางปฏิบัติที่ดีที่สุด
หัวข้อที่มีชื่อว่า “ความปลอดภัยและแนวทางปฏิบัติที่ดีที่สุด”ตรวจสอบ secret key เสมอ:
const validateSecret = (req, res, next) => { if (req.body.secret !== process.env.API_SECRET) { return res.status(403).json({ error: "Forbidden" }); } next();};แนวทางปฏิบัติด้านความปลอดภัยที่สำคัญ:
- ✅ ใช้ HTTPS เท่านั้น (ห้ามใช้ HTTP)
- ✅ ตรวจสอบข้อมูลอินพุตทั้งหมดก่อนประมวลผล
- ✅ ตอบกลับภายใน 5 วินาทีเพื่อหลีกเลี่ยง timeout
- ✅ เก็บความลับในตัวแปรสภาพแวดล้อม
- ✅ บันทึกคำขอทั้งหมดเพื่อการดีบัก
การแก้ไขปัญหา
หัวข้อที่มีชื่อว่า “การแก้ไขปัญหา”| ปัญหา | วิธีแก้ไข |
|---|---|
| Webhook ไม่ทำงาน | ตรวจสอบว่า intent เปิดใช้งาน URL ถูกต้อง และเลือก “Call third party API” แล้ว |
| 403 Forbidden | ตรวจสอบ secret key ให้ตรงกันทุกประการ (เช็คว่ามีช่องว่างหรือไม่) |
| Timeout errors | ตอบกลับทันที ประมวลผลงานหนักในพื้นหลัง |
| ข้อความไม่แสดง | ตรวจสอบว่าเลือก “Allow bot to send messages” และ response เป็น array of strings |
| customer_id ไม่ถูกต้อง | ใช้ customer_id ตามที่ได้รับจริงๆ อย่าแก้ไข |
คำถามที่พบบ่อย (FAQ)
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย (FAQ)”| คำถาม | คำตอบ |
|---|---|
| intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้ไหม? | ไม่ได้ แต่ endpoint ของคุณสามารถเรียกใช้ระบบปลายทางหลายตัวได้ |
| จะเกิดอะไรขึ้นหาก webhook ส่ง error กลับมา? | DealDroid จะดำเนินการต่อตามปกติ แต่ response จะไม่ถูกส่ง จัดการ error อย่างเหมาะสม |
| ฉันมีเวลาตอบกลับนานแค่ไหน? | ภายใน 5 วินาที สำหรับกระบวนการที่นานกว่า ให้ตอบทันทีและใช้ async webhook สำหรับอัปเดต |
| สามารถส่งรูปภาพผ่าน webhook ได้ไหม? | ไม่ได้ รองรับเฉพาะข้อความ กำหนดค่ารูปภาพใน intent settings |
| มีการจำกัดอัตราหรือไม่? | ขึ้นอยู่กับแผนของคุณ ติดต่อฝ่ายสนับสนุนสำหรับรายละเอียด |
| สามารถทดสอบโดยไม่สร้างออเดอร์จริงได้ไหม? | ได้! ใช้ test endpoint หรือสร้าง test mode |
ถาม: intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้หรือไม่?
หัวข้อที่มีชื่อว่า “ถาม: intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้หรือไม่?”ตอบ: ไม่ได้ แต่ละ intent สามารถเรียกใช้ webhook URL ได้เพียงหนึ่งเดียว อย่างไรก็ตาม webhook endpoint ของคุณสามารถเรียกใช้ระบบปลายทางหลายตัวได้
ถาม: จะเกิดอะไรขึ้นหาก webhook ของฉันส่ง error กลับมา?
หัวข้อที่มีชื่อว่า “ถาม: จะเกิดอะไรขึ้นหาก webhook ของฉันส่ง error กลับมา?”ตอบ: DealDroid จะดำเนินการสนทนาต่อไปตามปกติ แต่การตอบกลับจาก webhook ของคุณจะไม่ถูกส่ง ตรวจสอบให้แน่ใจว่าจัดการข้อผิดพลาดอย่างเหมาะสมและส่งข้อความสำรองกลับ
ถาม: ฉันสามารถแก้ไขข้อความของลูกค้าก่อนตอบกลับได้หรือไม่?
หัวข้อที่มีชื่อว่า “ถาม: ฉันสามารถแก้ไขข้อความของลูกค้าก่อนตอบกลับได้หรือไม่?”ตอบ: ไม่ได้ แต่คุณสามารถส่งข้อความที่แนะนำการสนทนา ตัวอย่างเช่น หากข้อมูลไม่สมบูรณ์ ให้ขอคำชี้แจง
ถาม: ฉันมีเวลาตอบกลับนานแค่ไหน?
หัวข้อที่มีชื่อว่า “ถาม: ฉันมีเวลาตอบกลับนานแค่ไหน?”ตอบ: เซิร์ฟเวอร์ของคุณควรตอบกลับภายใน 5 วินาที สำหรับกระบวนการที่นานกว่า ให้ตอบกลับทันทีด้วยข้อความสถานะและใช้ async webhook เพื่อส่งการอัปเดตภายหลัง
ถาม: ฉันสามารถส่งรูปภาพผ่านการตอบกลับ webhook ได้หรือไม่?
หัวข้อที่มีชื่อว่า “ถาม: ฉันสามารถส่งรูปภาพผ่านการตอบกลับ webhook ได้หรือไม่?”ตอบ: ปัจจุบันการตอบกลับ webhook รองรับเฉพาะข้อความข้อความเท่านั้น สำหรับรูปภาพ คุณจะต้องกำหนดค่าโดยตรงในการตั้งค่า intent
ถาม: มีการจำกัดอัตราหรือไม่?
หัวข้อที่มีชื่อว่า “ถาม: มีการจำกัดอัตราหรือไม่?”ตอบ: การจำกัดอัตราขึ้นอยู่กับแผน DealDroid ของคุณ ติดต่อฝ่ายสนับสนุนสำหรับข้อจำกัดเฉพาะในบัญชีของคุณ
เสร็จแล้ว! 🎉
หัวข้อที่มีชื่อว่า “เสร็จแล้ว! 🎉”ตอนนี้คุณพร้อมเชื่อมต่อบอท DealDroid ของคุณกับระบบภายนอกใดๆ แล้ว!
Intent Webhooks ปลดล็อกความเป็นไปได้ในการทำงานอัตโนมัติที่ทรงพลัง — ตั้งแต่การสร้างลิงก์ชำระเงินไปจนถึงการผสานรวมกับโครงสร้างพื้นฐานธุรกิจทั้งหมดของคุณ ด้วยการตรวจจับ intent แบบเรียลไทม์และการสื่อสารแบบสองทาง คุณสามารถสร้างเวิร์กโฟลว์ที่ซับซ้อนที่รู้สึกราบรื่นสำหรับลูกค้าของคุณ
สิ่งสำคัญ:
- 🎯 กำหนดค่า webhooks ภายในแต่ละ intent
- 🔒 ตรวจสอบ secret key เสมอ
- ⚡ ตอบกลับอย่างรวดเร็ว (ภายใน 5 วินาที)
- 🔄 ใช้ async webhooks สำหรับการอัปเดต
- 📊 บันทึกทุกอย่างเพื่อการดีบัก
พร้อมสร้างสิ่งที่น่าทึ่งแล้วหรือยัง? เริ่มต้นด้วยเครื่องมือสร้างลิงก์ชำระเงินแบบง่ายและขยายจากที่นั่น!
ต้องการความช่วยเหลือ? เราพร้อมสนับสนุนคุณ! 😊