Skip to main content

เวิร์กโฟลว์อัตโนมัติ

ภาพรวม

Workflow คือ ผังอัตโนมัติแบบหลายขั้น ในลักษณะ journey builder ที่เชื่อมเหตุการณ์ เงื่อนไข และการกระทำต่อกันเป็นกราฟ ทั้งผังถูกเก็บเป็น JSONB ก้อนเดียว และมีระบบเวอร์ชันที่เก็บสแนปช็อตของผังไว้ทุกครั้งที่มีการแก้ไข

ประเด็นสำคัญคือ workflow ไม่ได้ทำงานด้วยตัวเอง แต่ถูกจุดโดย trigger rule ที่ผูกค่า workflow_id และ workflow_node_path เอาไว้ ส่วนการกระทำที่ต้องรอเวลาจะถูกบันทึกลง scheduled_action แล้วให้ worker มารันตามกำหนด

โครงสร้างข้อมูลหลัก

workflow (model Workflow)

  • name, description และ status (string, default draft)
  • definition JSONB — โครงผังทั้งหมด ทั้ง node, edge และเงื่อนไข
  • compiled_refs JSONB — ผลลัพธ์จากการ compile เช่นรายการ trigger และ asset ที่ผังนี้อ้างถึง ใช้ตรวจ dependency ก่อนลบของที่ถูกอ้าง
  • line_oa_id และ organization_id พร้อม soft delete deleted_date
  • index บน (line_oa_id, organization_id) และ (deleted_date)
  • ความสัมพันธ์ 1 : N กับ trigger_rule และ workflow_version

workflow_version (model WorkflowVersion)

  • workflow_idworkflow.id และ version (int)
  • definition JSONB — สแนปช็อตของผังในเวอร์ชันนั้น
  • event VARCHAR(20) — เหตุที่ทำให้เกิดเวอร์ชันใหม่ เช่น publish หรือ save
  • index บน (workflow_id, version DESC) สำหรับดึงเวอร์ชันล่าสุด

จำนวน workflow ที่เปิดใช้งานพร้อมกันถูกจำกัดด้วยโควตา plan_limits.maxActiveWorkflows ตามแพ็กเกจขององค์กร

ไฟล์ที่เกี่ยวข้อง

  • prisma/schema.prisma:1455 — model Workflow
  • prisma/schema.prisma:1478 — model WorkflowVersion
  • manual-sql/7.plan_limits.sql — โควตา maxActiveWorkflows
  • schema-dumps/2026-07-24/schema.sql:3166, :3207

จุดเชื่อมต่อกับ Service อื่น

  • cms-api-go — หน้าออกแบบผัง และการ publish ซึ่งจะสร้าง workflow_version พร้อม compile trigger rule ที่เกี่ยวข้องให้อัตโนมัติ
  • worker-go — ตัวรันจริง เดินตาม definition โดยเริ่มจาก node ที่ระบุใน workflow_node_path

โดเมนที่เกี่ยวข้อง: Trigger Rule (จุดเริ่มและงานตั้งเวลา), แพ็กเกจองค์กร (โควตา), Audience, คลังข้อความ, Attribute Master