เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
ทริกเกอร์ Webhook ใช้สำหรับให้ URL ที่ระบบภายนอกสามารถเรียกใช้งานได้ผ่านคำขอ HTTP ครับ/ค่ะ เมื่อเกิดเหตุการณ์จากระบบภายนอก ระบบจะส่งคำขอ HTTP ไปยัง URL นี้เพื่อเริ่มการทำงานของเวิร์กโฟลว์ เหมาะสำหรับระบบภายนอกที่ต้องการส่งการแจ้งเตือน เช่น การแจ้งเตือนการชำระเงิน (Payment Callback) หรือข้อความต่างๆ ครับ/ค่ะ
เมื่อสร้างเวิร์กโฟลว์ ให้เลือกประเภทเป็น “Webhook event” ครับ/ค่ะ

ความแตกต่างระหว่างเวิร์กโฟลว์แบบ “ซิงโครนัส” (Synchronous) และ “อะซิงโครนัส” (Asynchronous) คือ เวิร์กโฟลว์แบบซิงโครนัสจะรอให้เวิร์กโฟลว์ทำงานจนเสร็จสิ้นก่อนจึงจะส่งการตอบกลับ ในขณะที่เวิร์กโฟลว์แบบอะซิงโครนัสจะส่งการตอบกลับที่กำหนดไว้ในการตั้งค่าทริกเกอร์ทันที และจะดำเนินการในเบื้องหลังแบบคิวครับ/ค่ะ

URL สำหรับทริกเกอร์ Webhook จะถูกสร้างขึ้นโดยอัตโนมัติโดยระบบ และผูกกับเวิร์กโฟลว์นี้ คุณสามารถคลิกปุ่มทางด้านขวาเพื่อคัดลอก และนำไปวางในระบบภายนอกได้เลยครับ/ค่ะ
สำหรับเมธอด HTTP จะรองรับเฉพาะ POST เท่านั้น เมธอดอื่นๆ จะส่งคืนข้อผิดพลาด 405 ครับ/ค่ะ
ปัจจุบันรองรับการยืนยันตัวตนแบบ HTTP Basic Authentication ครับ/ค่ะ คุณสามารถเปิดใช้งานตัวเลือกนี้และตั้งค่าชื่อผู้ใช้และรหัสผ่านได้ โดยให้รวมส่วนของชื่อผู้ใช้และรหัสผ่านไว้ใน Webhook URL ของระบบภายนอก เพื่อใช้ในการยืนยันตัวตน Webhook อย่างปลอดภัย (ดูรายละเอียดมาตรฐานได้ที่: MDN: HTTP authentication)
เมื่อมีการตั้งค่าชื่อผู้ใช้และรหัสผ่านแล้ว ระบบจะตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านในคำขอตรงกันหรือไม่ หากไม่มีการระบุหรือไม่ตรงกัน ระบบจะส่งคืนข้อผิดพลาด 401 ครับ/ค่ะ
เมื่อระบบภายนอกเรียกใช้งาน Webhook ข้อมูลที่ส่งมาในคำขอจะต้องถูกแยกวิเคราะห์ก่อนจึงจะสามารถนำไปใช้ในเวิร์กโฟลว์ได้ หลังจากแยกวิเคราะห์แล้ว ข้อมูลจะกลายเป็นตัวแปรทริกเกอร์ที่สามารถอ้างอิงได้ในโหนดถัดไปครับ/ค่ะ
การแยกวิเคราะห์คำขอ HTTP แบ่งออกเป็นสามส่วนดังนี้ครับ/ค่ะ
ส่วนหัวของคำขอ (Request Headers)
ส่วนหัวของคำขอโดยทั่วไปจะเป็นคู่คีย์-ค่า (Key-Value Pair) แบบสตริงที่เรียบง่าย ฟิลด์ส่วนหัวของคำขอที่ต้องการใช้งานสามารถกำหนดค่าได้โดยตรง เช่น Date, X-Request-Id เป็นต้นครับ/ค่ะ
พารามิเตอร์คำขอ (Request Parameters)
พารามิเตอร์คำขอคือส่วนของพารามิเตอร์การสืบค้น (Query Parameters) ใน URL เช่น พารามิเตอร์ query ใน http://localhost:13000/api/webhook:trigger/1hfmkioou0d?query=1 คุณสามารถวางตัวอย่าง URL แบบเต็ม หรือเฉพาะส่วนของพารามิเตอร์การสืบค้น แล้วคลิกปุ่มแยกวิเคราะห์เพื่อแยกวิเคราะห์คู่คีย์-ค่าโดยอัตโนมัติครับ/ค่ะ

การแยกวิเคราะห์อัตโนมัติจะแปลงส่วนพารามิเตอร์ใน URL ให้เป็นโครงสร้าง JSON และสร้างพาธ (Path) เช่น query[0], query[0].a ตามลำดับชั้นของพารามิเตอร์ ชื่อพาธนี้สามารถแก้ไขได้ด้วยตนเองหากไม่ตรงตามความต้องการ แต่โดยปกติแล้วไม่จำเป็นต้องแก้ไขครับ/ค่ะ ชื่อแทน (Alias) คือชื่อที่ใช้แสดงเมื่อเป็นตัวแปร ซึ่งเป็นตัวเลือกเสริมครับ/ค่ะ พร้อมกันนี้ การแยกวิเคราะห์จะสร้างตารางพารามิเตอร์ทั้งหมดจากตัวอย่าง หากมีพารามิเตอร์ที่ไม่ต้องการใช้งาน คุณสามารถลบออกได้ครับ/ค่ะ
เนื้อหาคำขอ (Request Body)
เนื้อหาคำขอคือส่วน Body ของคำขอ HTTP ปัจจุบันรองรับเฉพาะเนื้อหาคำขอที่มี Content-Type เป็น application/json เท่านั้นครับ/ค่ะ คุณสามารถกำหนดค่าพาธที่ต้องการแยกวิเคราะห์ได้โดยตรง หรือจะป้อนตัวอย่าง JSON แล้วคลิกปุ่มแยกวิเคราะห์เพื่อทำการแยกวิเคราะห์อัตโนมัติก็ได้ครับ/ค่ะ

การแยกวิเคราะห์อัตโนมัติจะแปลงคู่คีย์-ค่าในโครงสร้าง JSON ให้เป็นพาธ เช่น {"a": 1, "b": {"c": 2}} จะสร้างพาธเช่น a, b, และ b.c ครับ/ค่ะ ชื่อแทน (Alias) คือชื่อที่ใช้แสดงเมื่อเป็นตัวแปร ซึ่งเป็นตัวเลือกเสริมครับ/ค่ะ พร้อมกันนี้ การแยกวิเคราะห์จะสร้างตารางพารามิเตอร์ทั้งหมดจากตัวอย่าง หากมีพารามิเตอร์ที่ไม่ต้องการใช้งาน คุณสามารถลบออกได้ครับ/ค่ะ
การตั้งค่าส่วนการตอบกลับของ Webhook จะแตกต่างกันไปในเวิร์กโฟลว์แบบซิงโครนัสและอะซิงโครนัสครับ/ค่ะ สำหรับเวิร์กโฟลว์แบบอะซิงโครนัส การตอบกลับจะถูกกำหนดค่าโดยตรงในทริกเกอร์ เมื่อได้รับคำขอ Webhook ระบบจะส่งการตอบกลับตามการตั้งค่าในทริกเกอร์กลับไปยังระบบภายนอกทันที จากนั้นจึงจะดำเนินการเวิร์กโฟลว์ต่อ ส่วนเวิร์กโฟลว์แบบซิงโครนัสจะต้องจัดการโดยการเพิ่มโหนดการตอบกลับ (Response Node) ในขั้นตอนการทำงานตามความต้องการทางธุรกิจครับ/ค่ะ (ดูรายละเอียดเพิ่มเติมที่: โหนดการตอบกลับ)
โดยทั่วไป การตอบกลับสำหรับเหตุการณ์ Webhook ที่ทริกเกอร์แบบอะซิงโครนัสจะมีสถานะโค้ดเป็น 200 และเนื้อหาการตอบกลับเป็น ok ครับ/ค่ะ คุณยังสามารถกำหนดสถานะโค้ด, ส่วนหัวการตอบกลับ และเนื้อหาการตอบกลับได้เองตามความเหมาะสมครับ/ค่ะ

อ้างอิง: โหนดการตอบกลับ
ในเวิร์กโฟลว์ Webhook คุณสามารถกำหนดให้มีการตอบกลับที่แตกต่างกันไปตามเงื่อนไขทางธุรกิจที่แตกต่างกันได้ ดังที่แสดงในภาพด้านล่างนี้ครับ/ค่ะ

โดยใช้โหนดเงื่อนไขแบบแยกสาขา (Conditional Branch Node) เพื่อตรวจสอบว่าสถานะทางธุรกิจบางอย่างเป็นไปตามเงื่อนไขหรือไม่ หากเป็นไปตามเงื่อนไขจะส่งคืนการตอบกลับที่สำเร็จ แต่ถ้าไม่เป็นไปตามเงื่อนไขจะส่งคืนการตอบกลับที่ล้มเหลวครับ/ค่ะ