ROOM64 / KNOWLEDGE / N8N

การอนุมัติ

Approvals — เรียนรู้ว่าผู้อนุมัติสามารถอนุมัติหรือปฏิเสธการดำเนินการ workflow n8n โดยตรงภายใน Slack ด้วยการดำเนินการส่งและรอการตอบกลับของ node Slack ได้อย่างไร

อ่านต้นฉบับที่ n8n Official Docs ↗
คำแปลอัตโนมัติภาษาไทย แปลด้วย Google Translate / M2M100 จากเอกสาร n8n ณ วันที่ 2026-09-28 ยังไม่ได้ตรวจทานทางเทคนิคทุกหน้า โค้ดและ expression คงตามต้นฉบับ ชื่อ node เมนู และศัพท์เทคนิคคงภาษาอังกฤษเพื่อเทียบกับหน้าจอ n8n

App nodes · เชื่อมต่อแอป · Approvals

← Slack

สารบัญในหน้านี้

เรียนรู้ว่าผู้อนุมัติสามารถอนุมัติหรือปฏิเสธการดำเนินการ workflow n8n โดยตรงภายใน Slack ด้วยการดำเนินการส่งและรอการตอบกลับของ node Slack ได้อย่างไร

ด้วยการ Message > Send and Wait for Response ผู้อนุมัติสามารถอนุมัติหรือปฏิเสธได้โดยตรงภายใน Slack ไม่มีหน้าเบราว์เซอร์เปิดขึ้น: workflow จะดำเนินการต่อทันทีที่มีคนตอบกลับ และบันทึกผลลัพธ์ที่ตอบกลับ

มันแตกต่างจากปุ่มลิงค์อย่างไร

อะไร ปุ่มลิงค์ (ค่าเริ่มต้น) การอนุมัติใน Slack
การตัดสินใจเกิดขึ้นที่ไหน เปิดหน้า n8n ในเบราว์เซอร์ คลิกเพียงครั้งเดียวภายใน Slack
ใครตอบได้บ้าง ใครสามารถคลิกลิงค์ได้เลยนะครับ เฉพาะผู้อนุมัติที่คุณระบุ (รายการว่างช่วยให้ใครก็ตามที่เห็นข้อความตอบกลับได้) ใครก็ตามที่ได้รับบันทึกส่วนตัว คุณสามารถพูดเองได้ และขั้นตอนการทำงานก็ยังคงรออยู่
เอาท์พุต approved และ respondedAt เพิ่มผู้ที่ตอบกลับ (ID ชื่อ ชื่อผู้ใช้ และอีเมล) รวมถึงช่องทางและข้อความ
ข้อความหลังการตัดสินใจ ไม่เปลี่ยนแปลง ปุ่มต่างๆ จะยังคงคลิกได้ แต่การคลิกในภายหลังจะแสดงหน้า "ไม่ต้องดำเนินการใดๆ" การตัดสินใจครั้งแรกยืนหยัด ทางเลือกของคุณ: แสดงผลและลบปุ่มออก (ค่าเริ่มต้น) ลบเฉพาะปุ่มเท่านั้น หรือปล่อยให้ข้อความไม่เปลี่ยนแปลง
ความปลอดภัย ลิงก์ที่เซ็นชื่อ: ไม่มีใครสามารถยุ่งเกี่ยวกับ URL หรือการกระทำของมันได้ แต่ใครก็ตามที่มีลิงก์สามารถตอบสนองได้ และ n8n ไม่สามารถบอกได้ว่าใครคลิก n8n ตรวจสอบทุกการโทรกลับมาจาก Slack (โดยใช้การลงนามคำขอของ Slack) และตรวจสอบผู้ตอบกลับกับรายชื่อผู้อนุมัติของคุณ

ข้อกำหนด

หากต้องการอนุมัติภายใน Slack คุณต้องมี:

  • อินสแตนซ์ n8n ของคุณสามารถเข้าถึงได้จาก Slack ผ่าน HTTPS สาธารณะ Slack จะเรียกอินสแตนซ์ของคุณกลับมาเมื่อมีคนตอบกลับ ดังนั้นอินสแตนซ์ที่ทำงานบน localhost จะไม่ทำงาน
  • credentials Slack โดยใช้ token การเข้าถึง API หรือ OAuth2
  • ที่ Signature Secret ช่อง credentials Slack ของคุณต้องมีความลับในการลงนามของแอป Slack ซึ่งพบใน Settings > Basic Information . หากไม่มีปุ่มดังกล่าวจะแสดงผล แต่การคลิกจะไม่ดำเนินการต่อตามขั้นตอนการทำงาน
  • Response Type ตั้งค่าเป็น Approval.
  • ที่ users:read และ users:read.email ขอบเขต ID ชื่อ และชื่อผู้ใช้ของผู้ตอบกลับมาจาก payload การโต้ตอบของ Slack อีเมลมาจาก Slack API และต้องการขอบเขตเหล่านี้ ขอบเขตที่ขาดหายไปเพียงหมายความว่า output ละเว้นอีเมล หากคุณใช้ credentials OAuth2 ที่สร้างขึ้นก่อนที่จะมีคุณลักษณะนี้ ให้เชื่อมต่อใหม่เพื่อให้รับ users:read.email ขอบเขต

ตั้งค่าการอนุมัติ

1. สร้างแอป Slack และข้อมูลประจำตัว (1. Create a Slack app and credential)

ติดตาม การใช้ token การเข้าถึง API หรือ การใช้ OAuth2 เพื่อสร้างแอป Slack และตั้งค่า credentials ของคุณ เมื่อคุณกำหนดค่าขอบเขตของแอป ให้เพิ่ม users:read และ users:read.email ดังนั้นผลลัพธ์จึงสามารถรวมอีเมลของผู้ตอบกลับได้

2. Turn on Interactivity

  1. ไปที่ แอพของคุณ ใน Slack แล้วเลือกแอปที่คุณต้องการใช้
  2. ไปที่ Features > การโต้ตอบและทางลัด (Interactivity & Shortcuts) และเปิดเครื่อง Interactivity.
  3. ใน Request URL , เข้า https://<your-n8n-instance>/webhook-waiting-slack . workflow ทั้งหมดบนอินสแตนซ์แชร์ URL เดียวนี้ หากคุณเปลี่ยน N8N_ENDPOINT_WEBHOOK_WAIT ตัวแปรสภาพแวดล้อม ปรับเส้นทางให้ตรงกัน
  4. เลือก Save Changes.

หย่อนช่วยให้หนึ่ง Request URL ต่อแอป ดังนั้นแอป Slack หนึ่งแอปจึงให้บริการหนึ่งอินสแตนซ์ n8n

3. เพิ่มความลับในการลงนามใน credentials ของคุณ (3. Add the signing secret to your credential)

  1. ในแอป Slack ของคุณ ให้ไปที่ Settings > Basic Information และคัดลอกไฟล์ Signing Secret จาก App Credentials ส่วน
  2. ใน n8n ให้วางลงในไฟล์ Signature Secret ช่อง credentials Slack ของคุณ

n8n ใช้ความลับในการลงนามเพื่อตรวจสอบว่าการโทรกลับแต่ละครั้งมาจาก Slack n8n ปฏิเสธการโทรกลับที่ไม่ผ่านการตรวจสอบ และ workflow ยังคงรอต่อไป

4. กำหนดค่า node (4. Configure the node)

ใน node Slack ให้เลือก Message ทรัพยากรด้วย Send and Wait for Response การดำเนินงานและการตั้งค่า Response Type ถึง Approval . การตั้งค่าด้านล่างจะปรากฏใต้ Advanced Interactivity ส่วนหัวของส่วน

  • Capture Who Responded : เปิดสิ่งนี้เพื่อสลับปุ่มอนุมัติเป็นปุ่มโต้ตอบของ Slack และบันทึกผู้ที่ตอบกลับ การตั้งค่าที่เหลือจะปรากฏขึ้นเมื่อเปิดเครื่อง
  • Restrict Who Can Approve : เลือกผู้ใช้ที่ได้รับอนุญาตให้ดำเนินการ คุณยังสามารถระบุ ID ผู้ใช้ด้วย expression ได้ ใครก็ตามที่ไม่อยู่ในรายชื่อที่คลิกจะได้รับการแจ้งเตือนส่วนตัว และขั้นตอนการทำงานก็จะรอต่อไป
  • Unauthorized Reply : ข้อความส่วนตัว (ชั่วคราว) ที่แสดงต่อผู้ที่คลิกแต่ไม่อยู่ในรายชื่อผู้อนุมัติ ค่าเริ่มต้นเป็น You are not authorized to respond to this request.
  • After Decision : จะเกิดอะไรขึ้นกับข้อความ Slack ดั้งเดิมเมื่อมีคนอนุมัติหรือปฏิเสธ
    • Show Outcome and Remove Buttons (ค่าเริ่มต้น): เอาปุ่มออกและเพิ่มบรรทัดตั้งชื่อการตัดสินใจและผู้ตอบกลับ
    • Remove Buttons Only : ลบปุ่มโดยไม่ต้องเพิ่มบรรทัดผลลัพธ์
    • Keep Message Unchanged : ออกจากข้อความตามที่ส่งแล้ว รวมปุ่มต่างๆ การคลิกในภายหลังจะไม่เปลี่ยนแปลงการตัดสินใจที่บันทึกไว้ ซึ่งเป็นการตัดสินใจครั้งแรก

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

5. ทดสอบดู (5. Test it)

ดำเนินการ workflow เลือก Approve ใน Slack และตรวจสอบ output ของ node

output node

เมื่อมีคนตอบกลับใน Slack node จะแสดงการตัดสินใจและผู้ตอบกลับ:

{
	"data": {
		"approved": true,
		"respondedAt": "2025-07-13T12:34:56.000Z",
		"channel": "C0123ABC456",
		"messageId": "1752407696.123456",
		"responder": {
			"id": "U0123ABC456",
			"name": "Jo Doe",
			"username": "jo.doe",
			"email": "jo@example.com",
			"source": "slack"
		}
	}
}

ด้วยปุ่มลิงค์ output จะมีเพียงเท่านั้น approved และ respondedAt.

เมื่อคุณได้รับปุ่มลิงค์แทน

node จะทำงานเหมือนเมื่อก่อน โดยส่งปุ่มที่เปิดหน้ายืนยัน n8n เมื่อมีสิ่งใดสิ่งหนึ่งต่อไปนี้:

  • Response Type คือ Free Text หรือ Custom Form.
  • Capture Who Responded ปิดอยู่

ขั้นตอนการทำงานที่มีอยู่ยังคงทำงานไม่เปลี่ยนแปลง

การแก้ไขปัญหา

  • ปุ่มไม่ทำอะไรเลย หรือ Slack แสดงคำเตือน (The buttons don't do anything, or Slack shows a warning) : ที่ Request URL ผิด อินสแตนซ์ของคุณไม่สามารถเข้าถึงได้แบบสาธารณะผ่าน HTTPS หรือ Signature Secret หายไปหรือผิด Slack จะแสดงคำเตือนเดียวกันสำหรับการโทรกลับที่ถูกปฏิเสธ เช่นเดียวกับ URL ที่ไม่สามารถเข้าถึงได้
  • มีคนได้รับคำตอบว่า "ไม่ได้รับอนุญาต" (Someone gets a "not authorized" reply) : ผู้ใช้รายนั้นไม่อยู่ในรายการ Restrict Who Can Approve . ถ้อยคำมาจาก Unauthorized Reply.
  • workflow จะไม่ดำเนินต่อแม้ว่าจะมีคนตอบกลับก็ตาม (The workflow never resumes although someone responded) : ที่ Signature Secret หายไปหรือไม่ตรงกับแอปของคุณ Signing Secret . n8n ปฏิเสธการโทรกลับที่ไม่สามารถตรวจสอบได้ และ workflow ยังคงรออยู่
เอกสารและภาพต้นฉบับ © n8n GmbH · คำแปล คู่มือประกอบ และภาพแนวคิดเพิ่มเติมโดย Room64 · เว็บไซต์นี้ไม่ใช่เอกสารทางการของ n8n · Apache 2.0 พร้อม Commons Clause

มีงานที่อยากให้ Software, AI หรือ Automation ช่วยอยู่ไหม?

เล่า workflow หรือปัญหาที่ทีมกำลังเจอ เราช่วยดูได้ว่าควรใช้ระบบสำเร็จรูป เชื่อมเครื่องมือเดิม หรือพัฒนาเพิ่มเฉพาะส่วนไหน

คุยกับเราทาง LINEhello@room64.net