เวิร์กโฟลว์อัตโนมัติ
ภาพรวม
Workflow คือ ผังอัตโนมัติแบบหลายขั้น ในลักษณะ journey builder ที่เชื่อมเหตุการณ์ เงื่อนไข และการกระทำต่อกันเป็นกราฟ ทั้งผังถูกเก็บเป็น JSONB ก้อนเดียว และมีระบบเวอร์ชันที่เก็บสแนปช็อตของผังไว้ทุกครั้งที่มีการแก้ไข
ประเด็นสำคัญคือ workflow ไม่ได้ทำงานด้วยตัวเอง แต่ถูกจุดโดย trigger rule ที่ผูกค่า
workflow_id และ workflow_node_path เอาไว้ ส่วนการกระทำที่ต้องรอเวลาจะถูกบันทึกลง
scheduled_action แล้วให้ worker มารันตามกำหนด
โครงสร้างข้อมูลหลัก
workflow (model Workflow)
name,descriptionและstatus(string, defaultdraft)definitionJSONB — โครงผังทั้งหมด ทั้ง node, edge และเงื่อนไขcompiled_refsJSONB — ผลลัพธ์จากการ compile เช่นรายการ trigger และ asset ที่ผังนี้อ้างถึง ใช้ตรวจ dependency ก่อนลบของที่ถูกอ้างline_oa_idและorganization_idพร้อม soft deletedeleted_date- index บน
(line_oa_id, organization_id)และ(deleted_date) - ความสัมพันธ์
1 : Nกับtrigger_ruleและworkflow_version
workflow_version (model WorkflowVersion)
workflow_id→workflow.idและversion(int)definitionJSONB — สแนปช็อตของผังในเวอร์ชันนั้นeventVARCHAR(20) — เหตุที่ทำให้เกิดเวอร์ชันใหม่ เช่น publish หรือ save- index บน
(workflow_id, version DESC)สำหรับดึงเวอร์ชันล่าสุด
จำนวน workflow ที่เปิดใช้งานพร้อมกันถูกจำกัดด้วยโควตา plan_limits.maxActiveWorkflows
ตามแพ็กเกจขององค์กร
ไฟล์ที่เกี่ยวข้อง
prisma/schema.prisma:1455— modelWorkflowprisma/schema.prisma:1478— modelWorkflowVersionmanual-sql/7.plan_limits.sql— โควตาmaxActiveWorkflowsschema-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