Skip to content

การเชื่อมต่อ Intent Webhook

ต้องการให้บอทของคุณเรียกใช้งานต่างๆ เมื่อลูกค้าถึงจุดสำคัญหรือไม่? เช่น สร้างลิงก์ชำระเงินเมื่อมีคนพร้อมซื้อ หรืออัปเดต CRM เมื่อพวกเขาแชร์ข้อมูลติดต่อ? Intent Webhooks ช่วยให้คุณเชื่อมต่อบอทกับระบบภายนอกใดๆ ได้ — เรียกใช้งานอัตโนมัติตามสิ่งที่ AI ตรวจพบในการสนทนา


คุณสามารถทำอะไรได้บ้างกับ Intent Webhooks?

Section titled “คุณสามารถทำอะไรได้บ้างกับ Intent Webhooks?”

Intent Webhooks เปิดใช้งานระบบอัตโนมัติที่ทรงพลังโดยการเชื่อมต่อบอทของคุณกับระบบภายนอก:

  • 💳 สร้างลิงก์ชำระเงิน — สร้าง URL ชำระเงินที่ไม่ซ้ำกันเมื่อลูกค้าพร้อมซื้อ
  • 📊 อัปเดตระบบ CRM — ซิงค์ข้อมูลลูกค้าและข้อมูลเชิงลึกจากการสนทนาโดยอัตโนมัติ
  • 📦 ประมวลผลคำสั่งซื้อ — เรียกใช้เวิร์กโฟลว์การจัดส่งในระบบแบ็กเอนด์ของคุณ
  • 🔔 ส่งการแจ้งเตือน — แจ้งเตือนทีมของคุณผ่าน Slack, อีเมล หรือช่องทางอื่นๆ
  • 🔗 เชื่อมต่อ API ใดก็ได้ — ผสานรวมกับบริการของบุคคลที่สามที่รับ webhooks

ความมหัศจรรย์: สิ่งนี้เกิดขึ้นโดยอัตโนมัติเมื่อ AI ของคุณตรวจจับความตั้งใจของลูกค้าเฉพาะ — ไม่ต้องทำงานด้วยตนเอง!


ข้อกำหนดเบื้องต้น

Section titled “ข้อกำหนดเบื้องต้น”

ก่อนตั้งค่า Intent Webhooks ตรวจสอบให้แน่ใจว่าคุณเข้าใจ:

  1. Intent ทำงานอย่างไร — อ่าน คู่มือเพิ่ม Intent เพื่อเรียนรู้ว่า AI ของคุณตรวจจับความตั้งใจของลูกค้าอย่างไร
  2. แนวคิด API พื้นฐาน — คุณจะต้องสร้าง webhook endpoint ที่สามารถรับคำขอ POST
  3. เป้าหมายการผสานรวมของคุณ — ทราบว่าคุณต้องการเชื่อมต่อระบบภายนอกใดและข้อมูลใดที่คุณต้องการแลกเปลี่ยน

สำคัญ: Intent Webhooks ถูกกำหนดค่าภายในแต่ละ Intent สร้างหรือแก้ไข intent ก่อน จากนั้นกำหนดค่า webhook ที่ด้านล่างของหน้ากำหนดค่า intent


วิธีเข้าถึงการตั้งค่า Intent Webhook

Section titled “วิธีเข้าถึงการตั้งค่า Intent Webhook”

การกำหนดค่า intent webhook แสดง URL, secret key และช่อง checkbox

ในการกำหนดค่า webhooks สำหรับ intent:

  1. เข้าสู่ระบบแดชบอร์ด DealDroid ของคุณ
  2. ไปที่ TuningIntents จากแถบด้านข้างซ้าย
  3. คลิกที่ intent ที่มีอยู่หรือสร้างใหม่
  4. เลื่อนไปที่ด้านล่างของหน้ากำหนดค่า intent
  5. ค้นหาส่วน “Call third party API”

นี่คือที่ที่คุณจะกำหนดค่าวิธี DealDroid สื่อสารกับระบบภายนอกของคุณ


คำอธิบายฟิลด์การกำหนดค่า

Section titled “คำอธิบายฟิลด์การกำหนดค่า”

นี่คือ 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) เพื่อความยืดหยุ่นในอนาคต

โทเค็นความลับที่ไม่ซ้ำใครที่ DealDroid จะรวมไว้กับทุกคำขอไปยัง endpoint ของคุณ ช่วยให้คุณตรวจสอบว่าคำขอมาจากบอท DealDroid ของคุณจริงๆ และไม่ใช่จากแหล่งที่ไม่ได้รับอนุญาต

ตัวอย่าง: your_secure_secret_key_2024

แนวทางปฏิบัติที่ดีที่สุด:

  • ใช้สตริงแบบสุ่มที่ยาว (แนะนำอย่างน้อย 32 อักขระ)
  • จัดเก็บอย่างปลอดภัยเป็นตัวแปรสภาพแวดล้อมบนเซิร์ฟเวอร์ของคุณ
  • ไม่เคยคอมมิตไปยัง version control หรือเปิดเผยในโค้ดฝั่งไคลเอ็นต์
  • หมุนเวียนเป็นระยะเพื่อความปลอดภัย
  • สามารถเว้นว่างได้หาก endpoint ของคุณไม่ต้องการการรับรองความถูกต้อง (ไม่แนะนำสำหรับ production)

หมายเหตุด้านความปลอดภัย: ตรวจสอบความลับนี้บนเซิร์ฟเวอร์ของคุณเสมอก่อนประมวลผลคำขอ หากความลับไม่ตรงกัน ปฏิเสธคำขอด้วย 403 Forbidden response


Allow bot to send messages from provider URL

Section titled “Allow bot to send messages from provider URL”

เมื่อเลือก สิ่งนี้จะเปิดใช้งานการสื่อสารแบบสองทางระหว่าง DealDroid และระบบของคุณ:

  1. DealDroid → ระบบของคุณ: เมื่อ intent เรียกใช้ DealDroid จะส่งข้อมูลลูกค้าไปยัง URL ของคุณ
  2. ระบบของคุณ → DealDroid: endpoint ของคุณสามารถตอบกลับด้วยข้อความที่ DealDroid จะส่งให้ลูกค้า
  3. ระบบของคุณ → DealDroid (ภายหลัง): ระบบของคุณยังสามารถส่งข้อความได้ตลอดเวลาโดยใช้ webhook endpoint

กรณีการใช้งาน:

  • เปิดใช้งาน: ระบบของคุณสร้างการตอบสนองแบบไดนามิก (ลิงก์ชำระเงิน, การยืนยันคำสั่งซื้อ, ข้อเสนอส่วนบุคคล)
  • ปิดใช้งาน: คุณต้องการบันทึกข้อมูลหรือเรียกใช้กระบวนการแบ็กเอนด์เท่านั้นโดยไม่ตอบกลับลูกค้า

เคล็ดลับ: เว้นสิ่งนี้ไว้สำหรับกรณีการใช้งานส่วนใหญ่ มันให้ความยืดหยุ่นสูงสุดในการตอบสนองลูกค้าแบบไดนามิก


Intent Webhooks ทำงานอย่างไร

Section titled “Intent Webhooks ทำงานอย่างไร”

นี่คือขั้นตอนทั้งหมดเมื่อลูกค้าเรียกใช้ intent ที่มีการผสานรวม webhook:

  1. ลูกค้าส่งข้อความ — “ฉันต้องการซื้ออาหารสุนัข 2 ถุง”
  2. AI วิเคราะห์ intent — ตรวจจับ intent “Purchase”
  3. DealDroid ส่ง webhook — คำขอ POST ไปยัง URL ที่กำหนดค่าของคุณพร้อมบริบทที่สมบูรณ์
  4. ระบบของคุณประมวลผล — สร้างลิงก์ชำระเงิน, สร้างคำสั่งซื้อ, อัปเดต CRM ฯลฯ
  5. ระบบของคุณตอบกลับ — ส่งข้อความกลับไปให้ลูกค้า
  6. DealDroid ส่งมอบ — ส่งข้อความของคุณให้ลูกค้าอย่างราบรื่น
  7. ภายหลัง: ระบบของคุณสามารถส่งข้อความเพิ่มเติม — ใช้ webhook endpoint เพื่อส่งการอัปเดต (การยืนยันการชำระเงิน, การอัปเดตการจัดส่ง ฯลฯ)

สิ่งนี้สร้างประสบการณ์ที่ราบรื่นที่ระบบภายนอกขับเคลื่อนการสนทนาโดยที่ลูกค้าไม่รู้ถึงความซับซ้อนเบื้องหลัง


รูปแบบคำขอ: DealDroid → ระบบของคุณ

Section titled “รูปแบบคำขอ: DealDroid → ระบบของคุณ”

เมื่อ intent เรียกใช้ DealDroid จะส่งคำขอ POST ไปยัง URL ที่กำหนดค่าของคุณพร้อมบริบทการสนทนาที่ครอบคลุม

คำจำกัดความประเภท TypeScript

Section titled “คำจำกัดความประเภท 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;
};

ตารางอ้างอิงฟิลด์

Section titled “ตารางอ้างอิงฟิลด์”
ฟิลด์ประเภทคำอธิบาย
midstringตัวระบุข้อความที่ไม่ซ้ำสำหรับการติดตาม
customer_idstringตัวระบุลูกค้าที่ไม่ซ้ำ (ใช้สำหรับ webhook callback)
intentstringชื่อของ intent ที่ถูกเรียกใช้
address_parsingobjectส่วนประกอบที่อยู่จัดส่งที่แยกวิเคราะห์โดย AI
payment_methodstringวิธีการชำระเงินที่ลูกค้าต้องการ
shopping_cartobjectตะกร้าสินค้าพร้อมสินค้า ยอดรวม และความพร้อมใช้งาน
contact_infoobjectรายละเอียดการติดต่อลูกค้าที่รวบรวมโดย AI
secretstringAPI Secret Key ของคุณสำหรับการตรวจสอบ
folderstringตัวระบุองค์กรภายใน
estringตัวระบุสภาพแวดล้อม/พื้นที่ทำงาน
product_typestringประเภทของสินค้าในการสนทนา

การผสานรวม Webhook: ระบบของคุณ → DealDroid

Section titled “การผสานรวม Webhook: ระบบของคุณ → DealDroid”

นอกเหนือจากการตอบสนองต่อการเรียกใช้ intent แล้ว ระบบของคุณยังสามารถส่งข้อความถึงลูกค้าได้ตลอดเวลาโดยใช้ webhook endpoint ของ DealDroid เหมาะสำหรับการอัปเดตแบบอะซิงโครนัส เช่น การยืนยันการชำระเงิน การแจ้งเตือนการจัดส่ง หรือการเปลี่ยนแปลงสถานะ

URL: https://app.dealdroid.net/api/provider/webhook/
Method: POST
Content-Type: application/json

{
customer_id: string; // customer_id จากคำขอ intent webhook
messages: string[]; // อาร์เรย์ของข้อความที่จะส่ง
}

ตัวอย่าง: การยืนยันการชำระเงิน

Section titled “ตัวอย่าง: การยืนยันการชำระเงิน”
{
"customer_id": "b9d35283-131d-4c85-9d66-c43d830daec0",
"messages": [
"✅ รับชำระเงินแล้ว ขอบคุณค่ะ!",
"📦 กำลังเตรียมคำสั่งซื้อของคุณ",
"🚚 คาดว่าจะจัดส่งภายใน 2-3 วันทำการ"
]
}

ตัวอย่าง: การอัปเดตการจัดส่ง

Section titled “ตัวอย่าง: การอัปเดตการจัดส่ง”
{
"customer_id": "b9d35283-131d-4c85-9d66-c43d830daec0",
"messages": [
"🚚 คำสั่งซื้อของคุณถูกจัดส่งแล้ว!",
"📦 เลขติดตามพัสดุ: TH789456123",
"ติดตามที่นี่: https://track.thailand-post.com/TH789456123"
]
}

การส่งข้อความสำเร็จจะได้รับ:

  • Status Code: 200 OK
  • Response Body: [OK]

ความปลอดภัยและแนวทางปฏิบัติที่ดีที่สุด

Section titled “ความปลอดภัยและแนวทางปฏิบัติที่ดีที่สุด”

ตรวจสอบ 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)

Section titled “คำถามที่พบบ่อย (FAQ)”
คำถามคำตอบ
intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้ไหม?ไม่ได้ แต่ endpoint ของคุณสามารถเรียกใช้ระบบปลายทางหลายตัวได้
จะเกิดอะไรขึ้นหาก webhook ส่ง error กลับมา?DealDroid จะดำเนินการต่อตามปกติ แต่ response จะไม่ถูกส่ง จัดการ error อย่างเหมาะสม
ฉันมีเวลาตอบกลับนานแค่ไหน?ภายใน 5 วินาที สำหรับกระบวนการที่นานกว่า ให้ตอบทันทีและใช้ async webhook สำหรับอัปเดต
สามารถส่งรูปภาพผ่าน webhook ได้ไหม?ไม่ได้ รองรับเฉพาะข้อความ กำหนดค่ารูปภาพใน intent settings
มีการจำกัดอัตราหรือไม่?ขึ้นอยู่กับแผนของคุณ ติดต่อฝ่ายสนับสนุนสำหรับรายละเอียด
สามารถทดสอบโดยไม่สร้างออเดอร์จริงได้ไหม?ได้! ใช้ test endpoint หรือสร้าง test mode

ถาม: intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้หรือไม่?

Section titled “ถาม: intent หนึ่งสามารถเรียกใช้ webhook หลายตัวได้หรือไม่?”

ตอบ: ไม่ได้ แต่ละ intent สามารถเรียกใช้ webhook URL ได้เพียงหนึ่งเดียว อย่างไรก็ตาม webhook endpoint ของคุณสามารถเรียกใช้ระบบปลายทางหลายตัวได้

ถาม: จะเกิดอะไรขึ้นหาก webhook ของฉันส่ง error กลับมา?

Section titled “ถาม: จะเกิดอะไรขึ้นหาก webhook ของฉันส่ง error กลับมา?”

ตอบ: DealDroid จะดำเนินการสนทนาต่อไปตามปกติ แต่การตอบกลับจาก webhook ของคุณจะไม่ถูกส่ง ตรวจสอบให้แน่ใจว่าจัดการข้อผิดพลาดอย่างเหมาะสมและส่งข้อความสำรองกลับ

ถาม: ฉันสามารถแก้ไขข้อความของลูกค้าก่อนตอบกลับได้หรือไม่?

Section titled “ถาม: ฉันสามารถแก้ไขข้อความของลูกค้าก่อนตอบกลับได้หรือไม่?”

ตอบ: ไม่ได้ แต่คุณสามารถส่งข้อความที่แนะนำการสนทนา ตัวอย่างเช่น หากข้อมูลไม่สมบูรณ์ ให้ขอคำชี้แจง

ถาม: ฉันมีเวลาตอบกลับนานแค่ไหน?

Section titled “ถาม: ฉันมีเวลาตอบกลับนานแค่ไหน?”

ตอบ: เซิร์ฟเวอร์ของคุณควรตอบกลับภายใน 5 วินาที สำหรับกระบวนการที่นานกว่า ให้ตอบกลับทันทีด้วยข้อความสถานะและใช้ async webhook เพื่อส่งการอัปเดตภายหลัง

ถาม: ฉันสามารถส่งรูปภาพผ่านการตอบกลับ webhook ได้หรือไม่?

Section titled “ถาม: ฉันสามารถส่งรูปภาพผ่านการตอบกลับ webhook ได้หรือไม่?”

ตอบ: ปัจจุบันการตอบกลับ webhook รองรับเฉพาะข้อความข้อความเท่านั้น สำหรับรูปภาพ คุณจะต้องกำหนดค่าโดยตรงในการตั้งค่า intent

ถาม: มีการจำกัดอัตราหรือไม่?

Section titled “ถาม: มีการจำกัดอัตราหรือไม่?”

ตอบ: การจำกัดอัตราขึ้นอยู่กับแผน DealDroid ของคุณ ติดต่อฝ่ายสนับสนุนสำหรับข้อจำกัดเฉพาะในบัญชีของคุณ


ตอนนี้คุณพร้อมเชื่อมต่อบอท DealDroid ของคุณกับระบบภายนอกใดๆ แล้ว!

Intent Webhooks ปลดล็อกความเป็นไปได้ในการทำงานอัตโนมัติที่ทรงพลัง — ตั้งแต่การสร้างลิงก์ชำระเงินไปจนถึงการผสานรวมกับโครงสร้างพื้นฐานธุรกิจทั้งหมดของคุณ ด้วยการตรวจจับ intent แบบเรียลไทม์และการสื่อสารแบบสองทาง คุณสามารถสร้างเวิร์กโฟลว์ที่ซับซ้อนที่รู้สึกราบรื่นสำหรับลูกค้าของคุณ

สิ่งสำคัญ:

  • 🎯 กำหนดค่า webhooks ภายในแต่ละ intent
  • 🔒 ตรวจสอบ secret key เสมอ
  • ⚡ ตอบกลับอย่างรวดเร็ว (ภายใน 5 วินาที)
  • 🔄 ใช้ async webhooks สำหรับการอัปเดต
  • 📊 บันทึกทุกอย่างเพื่อการดีบัก

พร้อมสร้างสิ่งที่น่าทึ่งแล้วหรือยัง? เริ่มต้นด้วยเครื่องมือสร้างลิงก์ชำระเงินแบบง่ายและขยายจากที่นั่น!

ต้องการความช่วยเหลือ? เราพร้อมสนับสนุนคุณ! 😊