Ocriva Logo

Documents

เชื่อมต่อ Slack

ส่งการแจ้งเตือนการประมวลผลเอกสารไปยังช่อง Slack

integrationsslackmessagingnotifications

Published: 4/5/2026

เชื่อมต่อ Slack

รับการแจ้งเตือนใน Slack ทันทีเมื่อเอกสารถูกประมวลผล เกิดข้อผิดพลาด หรือ Batch ประมวลผลเสร็จสิ้น การเชื่อมต่อ Slack ของ Ocriva ใช้ฟีเจอร์ Incoming Webhooks ของ Slack โดยตรง — ไม่ต้องพึ่งพา Middleware จากบุคคลที่สาม


สิ่งที่ต้องเตรียม

  • Slack Workspace ที่คุณมีสิทธิ์ติดตั้งแอป (สิทธิ์ Admin หรือสิทธิ์ติดตั้งแอป)
  • องค์กร Ocriva ที่มี Webhook Quota เหลืออยู่

ขั้นตอนที่ 1: สร้าง Slack Incoming Webhook

  1. ไปที่ Slack API: Incoming Webhooks
  2. คลิก Create New App (หรือเลือกแอปที่มีอยู่แล้วที่คุณเป็นเจ้าของ)
  3. ภายใต้ Features เลือก Incoming Webhooks แล้วสลับเป็น On
  4. คลิก Add New Webhook to Workspace
  5. เลือกช่องที่ต้องการรับการแจ้งเตือน (เช่น #document-notifications)
  6. คลิก Allow — Slack จะสร้าง Webhook URL ในรูปแบบ:
https://hooks.slack.com/services/T.../B.../...
  1. คัดลอก Webhook URL ทั้งหมด — คุณจะต้องใช้ในขั้นตอนถัดไป

TIP

สร้างช่องเฉพาะสำหรับ Ocriva เช่น #ocriva-notifications เพื่อแยก Event ของเอกสารออกจากบทสนทนาของทีม คุณสามารถส่ง Event ประเภทต่าง ๆ ไปยังช่องที่ต่างกันได้โดยการสร้าง Webhook หลายอัน


ขั้นตอนที่ 2: กำหนดค่าใน Ocriva

  1. ไปที่หน้า Integrations ในแดชบอร์ด Ocriva
  2. ค้นหาการ์ด Slack แล้วคลิก
  3. วาง Slack Webhook URL ลงในช่อง URL
  4. เลือก Event ที่ต้องการรับ (ค่าเริ่มต้น: document.processed, document.failed, batch.completed)
  5. ตรวจสอบ Payload Template ที่กรอกไว้ล่วงหน้า — สามารถใช้ตามเดิมหรือปรับแต่งได้ (ดู การปรับแต่ง Payload)
  6. คลิก 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 86012026-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 บนเดสก์ท็อปและมือถือด้วย


การทดสอบการเชื่อมต่อ

  1. เปิด Endpoint ที่เพิ่งสร้างแล้วคลิกปุ่ม Test
  2. Ocriva จะส่ง Payload ตัวอย่าง document.processed ไปยัง Slack Webhook URL ของคุณ
  3. ตรวจสอบว่าข้อความปรากฏในช่อง Slack ที่เลือกไว้
  4. เปิดแท็บ Logs บน Endpoint เพื่อยืนยันว่าสถานะการส่งเป็น success และ HTTP Response Code เป็น 200

TIP

ทดสอบทันทีหลังสร้าง Endpoint ก่อนอัปโหลดเอกสารจริง วิธีนี้ยืนยันว่า Webhook URL ถูกต้องและช่องมีสิทธิ์ที่เหมาะสม


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

อาการสาเหตุที่เป็นไปได้วิธีแก้ไข
ไม่มีข้อความปรากฏในช่องWebhook URL ผิด หรือช่องถูกลบตรวจสอบว่า URL ที่คัดลอกจาก Slack API ตรงกันทุกตัวอักษร หากช่องไม่มีอยู่แล้วให้สร้าง Webhook ใหม่
ข้อผิดพลาด invalid_payload ใน LogsJSON ใน Payload Template ไม่ถูกต้องตรวจสอบ Template หาเครื่องหมายคำพูดที่ไม่ได้ Escape หรือคอมมาที่เกินมา ใช้ JSON Validator ช่วยตรวจสอบ
การส่งล้มเหลวด้วย HTTP 403Slack Webhook ถูกปิดใช้งานหรือถูกเพิกถอนไปที่การตั้งค่า Slack App สร้าง Incoming Webhook ใหม่ แล้วอัปเดต URL ใน Ocriva
การส่งล้มเหลวด้วย HTTP 404Slack App ถูกลบแล้วสร้าง Slack App ใหม่ เปิดใช้ Incoming Webhooks และสร้าง URL ใหม่
Variable แสดงเป็นข้อความตรงตัวพิมพ์ชื่อ Variable ผิดชื่อ Variable คำนึงถึงตัวพิมพ์เล็ก-ใหญ่ — ใช้ {{payload.fileName}} ไม่ใช่ {{payload.filename}}