logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
เวิร์กโฟลว์
ภาพรวม
เริ่มต้นใช้งาน

ทริกเกอร์

ภาพรวม
เหตุการณ์ตารางข้อมูล
งานที่กำหนดเวลา
เหตุการณ์ก่อนการดำเนินการ
เหตุการณ์หลังการดำเนินการ
เหตุการณ์การดำเนินการที่กำหนดเอง
การอนุมัติ
Webhook

โหนด

ภาพรวม

AI

LLM

การควบคุมโฟลว์

เงื่อนไข
แยกสาขาหลายเงื่อนไข
วนซ้ำ
ตัวแปร
แยกสาขาแบบขนาน
เรียกใช้เวิร์กโฟลว์
ผลลัพธ์ของโฟลว์
การแมปตัวแปร JSON
การหน่วงเวลา
สิ้นสุด

การคำนวณ

การคำนวณ
การคำนวณวันที่
การคำนวณ JSON

การดำเนินการข้อมูล

เพิ่มข้อมูล
อัปเดตข้อมูล
ค้นหาข้อมูล
ลบข้อมูล
การดำเนินการ SQL

การดำเนินการด้วยตนเอง

การดำเนินการด้วยตนเอง
การอนุมัติ
ส่งสำเนา (CC)

ขยายประเภท

คำขอ HTTP
สคริปต์ JavaScript
การแจ้งเตือน
ส่งอีเมล
การตอบกลับ
ข้อความตอบกลับ
ตัวแปร
บันทึกการดำเนินการ
การจัดการเวอร์ชัน
ตัวเลือกขั้นสูง

การพัฒนาส่วนขยาย

ภาพรวม
ขยายประเภททริกเกอร์
ขยายประเภทโหนด
การอ้างอิง API
Previous Pageการอนุมัติ
Next Pageภาพรวม
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#Webhook

This feature is provided by the commercial plugin «เวิร์กโฟลว์: Webhook ทริกเกอร์», please purchase to use

#บทนำ

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

#การสร้างเวิร์กโฟลว์

เมื่อสร้างเวิร์กโฟลว์ ให้เลือกประเภทเป็น “Webhook event” ครับ/ค่ะ

20241210105049

ข้อแนะนำ

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

#การตั้งค่าทริกเกอร์

20241210105441

#Webhook URL

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

สำหรับเมธอด HTTP จะรองรับเฉพาะ POST เท่านั้น เมธอดอื่นๆ จะส่งคืนข้อผิดพลาด 405 ครับ/ค่ะ

#ความปลอดภัย

ปัจจุบันรองรับการยืนยันตัวตนแบบ HTTP Basic Authentication ครับ/ค่ะ คุณสามารถเปิดใช้งานตัวเลือกนี้และตั้งค่าชื่อผู้ใช้และรหัสผ่านได้ โดยให้รวมส่วนของชื่อผู้ใช้และรหัสผ่านไว้ใน Webhook URL ของระบบภายนอก เพื่อใช้ในการยืนยันตัวตน Webhook อย่างปลอดภัย (ดูรายละเอียดมาตรฐานได้ที่: MDN: HTTP authentication)

เมื่อมีการตั้งค่าชื่อผู้ใช้และรหัสผ่านแล้ว ระบบจะตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านในคำขอตรงกันหรือไม่ หากไม่มีการระบุหรือไม่ตรงกัน ระบบจะส่งคืนข้อผิดพลาด 401 ครับ/ค่ะ

#การแยกวิเคราะห์ข้อมูลคำขอ

เมื่อระบบภายนอกเรียกใช้งาน Webhook ข้อมูลที่ส่งมาในคำขอจะต้องถูกแยกวิเคราะห์ก่อนจึงจะสามารถนำไปใช้ในเวิร์กโฟลว์ได้ หลังจากแยกวิเคราะห์แล้ว ข้อมูลจะกลายเป็นตัวแปรทริกเกอร์ที่สามารถอ้างอิงได้ในโหนดถัดไปครับ/ค่ะ

การแยกวิเคราะห์คำขอ HTTP แบ่งออกเป็นสามส่วนดังนี้ครับ/ค่ะ

  1. ส่วนหัวของคำขอ (Request Headers)

    ส่วนหัวของคำขอโดยทั่วไปจะเป็นคู่คีย์-ค่า (Key-Value Pair) แบบสตริงที่เรียบง่าย ฟิลด์ส่วนหัวของคำขอที่ต้องการใช้งานสามารถกำหนดค่าได้โดยตรง เช่น Date, X-Request-Id เป็นต้นครับ/ค่ะ

  2. พารามิเตอร์คำขอ (Request Parameters)

    พารามิเตอร์คำขอคือส่วนของพารามิเตอร์การสืบค้น (Query Parameters) ใน URL เช่น พารามิเตอร์ query ใน http://localhost:13000/api/webhook:trigger/1hfmkioou0d?query=1 คุณสามารถวางตัวอย่าง URL แบบเต็ม หรือเฉพาะส่วนของพารามิเตอร์การสืบค้น แล้วคลิกปุ่มแยกวิเคราะห์เพื่อแยกวิเคราะห์คู่คีย์-ค่าโดยอัตโนมัติครับ/ค่ะ

    20241210111155

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

  3. เนื้อหาคำขอ (Request Body)

    เนื้อหาคำขอคือส่วน Body ของคำขอ HTTP ปัจจุบันรองรับเฉพาะเนื้อหาคำขอที่มี Content-Type เป็น application/json เท่านั้นครับ/ค่ะ คุณสามารถกำหนดค่าพาธที่ต้องการแยกวิเคราะห์ได้โดยตรง หรือจะป้อนตัวอย่าง JSON แล้วคลิกปุ่มแยกวิเคราะห์เพื่อทำการแยกวิเคราะห์อัตโนมัติก็ได้ครับ/ค่ะ

    20241210112529

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

#การตั้งค่าการตอบกลับ

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

โดยทั่วไป การตอบกลับสำหรับเหตุการณ์ Webhook ที่ทริกเกอร์แบบอะซิงโครนัสจะมีสถานะโค้ดเป็น 200 และเนื้อหาการตอบกลับเป็น ok ครับ/ค่ะ คุณยังสามารถกำหนดสถานะโค้ด, ส่วนหัวการตอบกลับ และเนื้อหาการตอบกลับได้เองตามความเหมาะสมครับ/ค่ะ

20241210114312

#โหนดการตอบกลับ

อ้างอิง: โหนดการตอบกลับ

#ตัวอย่าง

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

20241210120655

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