เชื่อมต่อ Slack
รับการแจ้งเตือนใน Slack ทันทีเมื่อเอกสารถูกประมวลผล เกิดข้อผิดพลาด หรือ Batch ประมวลผลเสร็จสิ้น การเชื่อมต่อ Slack ของ Ocriva ใช้ฟีเจอร์ Incoming Webhooks ของ Slack โดยตรง — ไม่ต้องพึ่งพา Middleware จากบุคคลที่สาม
สิ่งที่ต้องเตรียม
- Slack Workspace ที่คุณมีสิทธิ์ติดตั้งแอป (สิทธิ์ Admin หรือสิทธิ์ติดตั้งแอป)
- องค์กร Ocriva ที่มี Webhook Quota เหลืออยู่
ขั้นตอนที่ 1: สร้าง Slack Incoming Webhook
- ไปที่ Slack API: Incoming Webhooks
- คลิก Create New App (หรือเลือกแอปที่มีอยู่แล้วที่คุณเป็นเจ้าของ)
- ภายใต้ Features เลือก Incoming Webhooks แล้วสลับเป็น On
- คลิก Add New Webhook to Workspace
- เลือกช่องที่ต้องการรับการแจ้งเตือน (เช่น
#document-notifications) - คลิก Allow — Slack จะสร้าง Webhook URL ในรูปแบบ:
https://hooks.slack.com/services/T.../B.../...- คัดลอก Webhook URL ทั้งหมด — คุณจะต้องใช้ในขั้นตอนถัดไป
TIP
สร้างช่องเฉพาะสำหรับ Ocriva เช่น #ocriva-notifications เพื่อแยก Event ของเอกสารออกจากบทสนทนาของทีม คุณสามารถส่ง Event ประเภทต่าง ๆ ไปยังช่องที่ต่างกันได้โดยการสร้าง Webhook หลายอัน
ขั้นตอนที่ 2: กำหนดค่าใน Ocriva
- ไปที่หน้า Integrations ในแดชบอร์ด Ocriva
- ค้นหาการ์ด Slack แล้วคลิก
- วาง Slack Webhook URL ลงในช่อง URL
- เลือก Event ที่ต้องการรับ (ค่าเริ่มต้น:
document.processed,document.failed,batch.completed) - ตรวจสอบ Payload Template ที่กรอกไว้ล่วงหน้า — สามารถใช้ตามเดิมหรือปรับแต่งได้ (ดู การปรับแต่ง Payload)
- คลิก Create Endpoint
Endpoint จะมีสถานะ active ทันที และ Ocriva จะเริ่มส่ง Event ไปยังช่อง Slack ของคุณ
Payload Template
Slack Payload เริ่มต้นใช้การจัดรูปแบบ Block Kit เพื่อสร้างข้อความที่มีโครงสร้างและอ่านง่าย:
{
"text": "{{eventType}} - {{payload.fileName}}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*{{eventType}}*\n>File: {{payload.fileName}}\n>Status: {{payload.status}}\n>Time: {{timestamp}}"
}
}
]
}ตารางอ้างอิง Variable
| Variable | คำอธิบาย | ตัวอย่าง |
|---|---|---|
{{eventType}} | Event ที่เกิดขึ้น | document.processed |
{{payload.fileName}} | ชื่อไฟล์ที่อัปโหลด | invoice-2026-03.pdf |
{{payload.status}} | ผลลัพธ์การประมวลผล | completed หรือ failed |
{{timestamp}} | Timestamp ของ Event ในรูปแบบ ISO 8601 | 2026-04-05T09:30:00Z |
ลักษณะข้อความที่แสดงใน Slack
Template นี้สร้างข้อความสองส่วน: บรรทัด Plain-text สำรอง (ใช้ในการแจ้งเตือนและการค้นหา) และส่วน Block Kit ที่แสดงผลใน Slack Client ส่วน Block Kit จะแสดงเป็น Quoted Block พร้อมหัวข้อ Event Type ตัวหนา ชื่อไฟล์ สถานะ และ Timestamp แยกบรรทัดกัน
การปรับแต่ง Payload
คุณสามารถแก้ไข Payload Template โดยตรงในการตั้งค่า Endpoint เพื่อเพิ่มฟิลด์ข้อมูลเพิ่มเติมได้
การเพิ่มข้อมูลที่ดึงออกมา
หากต้องการรวมเนื้อหาที่ AI ดึงออกมา — เช่น ยอดเงินรวมจากใบแจ้งหนี้ — เพิ่ม {{payload.extractedData}} ลงใน Block:
{
"text": "{{eventType}} - {{payload.fileName}}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*{{eventType}}*\n>File: {{payload.fileName}}\n>Status: {{payload.status}}\n>Extracted: {{payload.extractedData}}\n>Time: {{timestamp}}"
}
}
]
}การเพิ่มคะแนนความมั่นใจ
"text": "*{{eventType}}*\n>File: {{payload.fileName}}\n>Status: {{payload.status}}\n>Confidence: {{payload.confidence}}\n>Time: {{timestamp}}"สำหรับรายการ Template Variable ทั้งหมดที่รองรับ ดูที่ Webhook Events reference
WARNING
Payload ต้องเป็น JSON ที่ถูกต้องหลังจากแทนค่า Variable แล้ว หาก {{payload.extractedData}} มีอักขระพิเศษ (เครื่องหมายคำพูด ขึ้นบรรทัดใหม่) อาจทำให้โครงสร้าง JSON เสียหายได้ แนะนำให้ใช้เฉพาะฟิลด์ Scalar เช่น payload.fileName, payload.status และ payload.confidence ภายในค่า String ของ JSON
ตัวอย่าง: การแจ้งเตือนการประมวลผลใบแจ้งหนี้
สถานการณ์: ผู้ใช้อัปโหลด invoice-2026-03.pdf AI ของ Ocriva ดึงข้อมูลเสร็จสิ้นและส่ง Event document.processed
สิ่งที่ Ocriva ส่งไปยัง Slack:
{
"text": "document.processed - invoice-2026-03.pdf",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*document.processed*\n>File: invoice-2026-03.pdf\n>Status: completed\n>Time: 2026-04-05T09:30:00Z"
}
}
]
}ลักษณะที่แสดงใน Slack: ข้อความพร้อมหัวข้อ document.processed ตัวหนา ตามด้วยสามบรรทัด Quoted แสดงชื่อไฟล์ สถานะ และ Timestamp Plain-text Fallback ยังแสดงในการแจ้งเตือน Push บนเดสก์ท็อปและมือถือด้วย
การทดสอบการเชื่อมต่อ
- เปิด Endpoint ที่เพิ่งสร้างแล้วคลิกปุ่ม Test
- Ocriva จะส่ง Payload ตัวอย่าง
document.processedไปยัง Slack Webhook URL ของคุณ - ตรวจสอบว่าข้อความปรากฏในช่อง Slack ที่เลือกไว้
- เปิดแท็บ Logs บน Endpoint เพื่อยืนยันว่าสถานะการส่งเป็น
successและ HTTP Response Code เป็น200
TIP
ทดสอบทันทีหลังสร้าง Endpoint ก่อนอัปโหลดเอกสารจริง วิธีนี้ยืนยันว่า Webhook URL ถูกต้องและช่องมีสิทธิ์ที่เหมาะสม
การแก้ไขปัญหา
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ไข |
|---|---|---|
| ไม่มีข้อความปรากฏในช่อง | Webhook URL ผิด หรือช่องถูกลบ | ตรวจสอบว่า URL ที่คัดลอกจาก Slack API ตรงกันทุกตัวอักษร หากช่องไม่มีอยู่แล้วให้สร้าง Webhook ใหม่ |
ข้อผิดพลาด invalid_payload ใน Logs | JSON ใน Payload Template ไม่ถูกต้อง | ตรวจสอบ Template หาเครื่องหมายคำพูดที่ไม่ได้ Escape หรือคอมมาที่เกินมา ใช้ JSON Validator ช่วยตรวจสอบ |
การส่งล้มเหลวด้วย HTTP 403 | Slack Webhook ถูกปิดใช้งานหรือถูกเพิกถอน | ไปที่การตั้งค่า Slack App สร้าง Incoming Webhook ใหม่ แล้วอัปเดต URL ใน Ocriva |
การส่งล้มเหลวด้วย HTTP 404 | Slack App ถูกลบแล้ว | สร้าง Slack App ใหม่ เปิดใช้ Incoming Webhooks และสร้าง URL ใหม่ |
| Variable แสดงเป็นข้อความตรงตัว | พิมพ์ชื่อ Variable ผิด | ชื่อ Variable คำนึงถึงตัวพิมพ์เล็ก-ใหญ่ — ใช้ {{payload.fileName}} ไม่ใช่ {{payload.filename}} |
