BoardMark
เอกสาร

Sales & Billing: ใบเสนอราคา สัญญา และงวดเงิน

template สำหรับทีมขายและธุรการ: ดีล 1 ฉบับ = การ์ด 1 ใบ งวดเงินในการ์ด ป้ายรอเซ็น ถึงรอบวางบิล ใกล้ครบกำหนด เลยกำหนด คำนวณจากวันที่ แจ้งเตือนอัตโนมัติ และสิ่งที่ AI agent ตอบได้

การ์ดดีลคืออะไร?

Sales & Billing ตอบคำถามสามข้อของทีมขายและธุรการ: ลูกค้าเซ็นกลับมาหรือยัง ถึงรอบวางบิลหรือทวงถามหรือยัง และเก็บครบหรือยัง การ์ดหลัก 1 ใบ = ใบเสนอราคาหรือสัญญา 1 ฉบับ (ดีล) บนบอร์ด Kanban ที่มีคอลัมน์มาให้ ลากการ์ดเปลี่ยนสถานะได้เหมือน Kanban ปกติ และหัวคอลัมน์รวมมูลค่าของคอลัมน์

คอลัมน์หมวดความหมาย
Drafttodoกำลังทำใบเสนอราคา
Sentin_progressส่งใบเสนอราคาแล้ว รอลูกค้าเซ็น
Signedin_progressเซ็นแล้วหรือได้ PO แล้ว
In deliveryin_progressกำลังส่งมอบงาน
Billingin_progressส่งมอบแล้ว กำลังวางบิลและเก็บเงิน
Closeddoneเก็บครบแล้ว
Lostdoneไม่ได้งาน (สีเทา ไม่นับเป็นสำเร็จ)
  • ฟิลด์ของดีล: customer (จำเป็น แสดงบนการ์ด) · quote_no · amount (จำเป็น แสดงบนการ์ด) · sent_at · signed_at · valid_until · payment_terms (One-time · 50-50 · 30-40-30 · Custom) · owner (คนดูแลดีล)
  • แนบใบเสนอราคาและสัญญาที่เซ็นแล้วเป็นไฟล์แนบของการ์ดตามปกติ
  • การ์ดแสดง customer และ amount ป้ายจากวันที่ แถบ paid / total และ “เก็บแล้ว n จาก N งวด” — และแถบ “ส่งมอบ · N %” เมื่อดีลเชื่อมกับ Release หรืองานของทีมพัฒนา (ดูหัวข้อ ส่งมอบโดย)
  • คอลัมน์แก้ได้ตามกติกาคอลัมน์บอร์ด (Premium) เช่น เพิ่ม On hold

งวดเงินอยู่ที่ไหน?

งวดเงินเป็น issue ประเภท subtask ที่มีดีลเป็น parent แต่ไม่ปรากฏเป็นการ์ดบนบอร์ด — อยู่ในตารางงวดของการ์ดดีล และในมุมมองรายการเมื่อสลับเป็น “งวด” สถานะของงวดคำนวณจากวันที่ ไม่ใช่คอลัมน์: Not yet (ยังไม่มี invoiced_at) → Invoiced (มี invoiced_at ยังไม่มี paid_at) → Paid (มี paid_at)

  • ฟิลด์ของงวด: amount (จำเป็น) · bill_on (วันที่ต้องวางบิล จำเป็น) · invoiced_at · invoice_no · due_on (ครบกำหนดชำระ จำเป็น) · paid_at · paid_amount
  • “สร้างงวดจากเงื่อนไข” สร้างชุดงวดจาก payment_terms × amount: One-time 1 งวด, 50-50 2 งวด, 30-40-30 3 งวด — bill_on เริ่มจาก signed_at (หรือวันนี้) ห่างกันงวดละ 2 เดือน due_on = bill_on + 15 วัน ยอดปัดเศษและงวดสุดท้ายรับเศษ แก้ทีหลังได้ทุกช่อง
  • “เพิ่มงวด” เพิ่มแถวเองสำหรับเงื่อนไขแบบกำหนดเอง
  • กดป้ายสถานะของงวดเพื่อบันทึกว่าวางบิลแล้ว (invoiced_at = วันนี้) หรือรับเงินแล้ว (paid_at = วันนี้ และ paid_amount = ยอดงวด) แก้วันที่และยอดจริงทีหลังได้
  • ลบหรือย้ายดีล งวดตามไปด้วย ดีลที่ถูกลบกู้คืนได้ 30 วันพร้อมงวด

ป้ายคำนวณจากวันที่อย่างไร?

ป้ายคำนวณจากวันที่และฟิลด์ตอนอ่าน (เวลาไทย) ไม่ได้เก็บไว้ และระบบไม่ย้ายสถานะให้เอง ทุกป้ายเป็นตัวกรองในมุมมองรายการและใช้ใน search_issues ด้วย flag ดีลที่ Lost ไม่มีป้ายอีก

flagบนป้ายเมื่อ
awaiting_signatureดีลรอเซ็น N วันอยู่ใน Sent มาแล้ว ≥ 7 วัน นับจาก sent_at (ตั้งค่าได้ใน Project settings)
bill_dueงวดถึงรอบวางบิล (เหลือง)ยังไม่วางบิล และ bill_on ≤ วันนี้
due_soonงวดใกล้ครบกำหนดวางบิลแล้ว ยังไม่จ่าย และ due_on อยู่ภายใน 3 วัน (ตั้งค่าได้)
overdueงวดเลยกำหนด N วัน (แดง)วางบิลแล้ว ยังไม่จ่าย และเลย due_on
all_paidดีลเก็บครบแล้ว — ปิดดีลทุกงวด Paid และ Σ paid_amount ≥ amount แต่ยังไม่ Closed

แจ้งเตือนเมื่อไหร่ ถึงใคร?

ทุกเช้า 08:00 (เวลาไทย) ระบบดูทุกดีลและงวด แล้วส่งถึง owner ของดีล ผู้เฝ้าดู และ assignee ทางช่องทางที่แต่ละคนเปิดไว้: กระดิ่งในแอป อีเมล LINE (Premium) และแจ้งเตือนบนเครื่อง สวิตช์ใหม่ “การเงินของดีล” ในการตั้งค่า → การแจ้งเตือน เปิดไว้ให้ตั้งแต่ต้น แต่ละเรื่องส่งครั้งเดียวต่อวัน

  • ถึงรอบวางบิล — เช้าวัน bill_on ครั้งเดียว
  • ใกล้ครบกำหนด — ครั้งเดียว วันแรกที่เหลือ ≤ 3 วัน
  • เลยกำหนด — วันถัดจาก due_on แล้วทุก 7 วันจนบันทึกว่าจ่ายแล้ว
  • รอเซ็น — ครั้งเดียวเมื่อครบ 7 วัน
  • เก็บครบแล้ว — ครั้งเดียวเมื่อป้ายปรากฏ
  • Service desk ใช้สวิตช์ของตัวเอง “ครบกำหนด SLA” ส่วน Budget planning แจ้งทางกระดิ่งอย่างเดียว

ปิดดีลอย่างไร?

  • เมื่อทุกงวด Paid และยอดที่รับครบ การ์ดแสดงแบนเนอร์ “เก็บครบแล้ว — ปิดดีล” กดแล้วการ์ดย้ายไป Closed (ระบบไม่ย้ายให้เอง)
  • ลากไป Closed ทั้งที่ยังเก็บไม่ครบ → ระบบถามยืนยัน “ยังค้าง ฿x”
  • ลากไป Lost → ไม่ต้องทำอะไรเพิ่ม งวดที่เหลือหยุดแสดงป้ายและไม่แจ้งเตือนอีก
  • Closed และ Lost อยู่หมวด done ทั้งคู่ แต่ Lost เป็นสีเทาและไม่นับเป็นสำเร็จ

ดีลนี้ส่งมอบโดยใคร ไปถึงไหนแล้ว?

ลิ้นชักดีลมีกลุ่ม “ส่งมอบโดย” = ลิงก์ delivers ไป Release หรือ issue ของ project ทีมพัฒนาในบริษัทเดียวกัน (ลิงก์ relates ก็นับ) กดปุ่ม “เชื่อมกับ…” เลือก project → ค้นหา Release หรือ issue → ชนิดลิงก์ delivers แล้วปลายทางแสดงสดในลิ้นชัก: ชื่อ Release, state และแถบความคืบหน้า

  • ฟิลด์ delivery_progress (rollup จาก links fn progress) คำนวณ % ส่งมอบจากปลายทางเหล่านั้น: issue ที่ done นับ 100 % Release นับ % ของ issue ที่ผ่านด่านสุดท้าย (shipped = 100 %)
  • เมื่อมีค่า การ์ดดีลแสดงแถบบางเส้นที่สองใต้แถบเก็บเงิน: “ส่งมอบ · <ปลายทาง> · N %” ทีมขายเห็นได้ทันทีว่างานตามหลังเงินหรือเงินตามหลังงาน
  • project Sales & Billing ที่สร้างก่อนรอบนี้ไม่มีฟิลด์นี้ให้เอง — เพิ่มได้ที่ตั้งค่า project → ฟิลด์ (Premium) ลิ้นชักบอกไว้เมื่อฟิลด์ยังไม่มี
  • AI agent: link_issues { key: "SALE-12", type: "delivers", id: "APP/R-3" } แล้ว get_issue คืน computed.delivery_progress และ linked[]

ทีมธุรการดูภาพรวมที่ไหน?

  • มุมมองรายการสลับได้ระหว่าง “ดีล” และ “งวด” เพิ่มคอลัมน์ฟิลด์ เรียง และกรองตามวันที่หรือยอดได้
  • ตัวกรองที่บันทึกไว้มาให้เป็นชิปพร้อมจำนวน: Overdue · Bill due · Due soon · Awaiting signature · Unpaid installments ผู้ดูแล project บันทึกตัวกรองเพิ่มให้ทั้งทีมได้
  • แถวรวมท้ายตารางแสดงยอดรวมของแถวที่กรองอยู่ เช่น ค้างชำระรวมของงวดที่เลยกำหนด
  • ทุกคนใน project เห็นภาพรวมเดียวกัน ไม่ต้องขอรายงานจากใคร

AI agent ตอบอะไรได้?

ไม่มี tool ใหม่: agent ใช้ get_project (คอลัมน์ ฟิลด์ ตัวกรองที่บันทึกไว้ของ template), get_docs_context (คำอธิบาย template), create_issue / update_issue พร้อม fields และ search_issues พร้อม flag หรือ fields ตอบได้ทันทีว่า “ดีลไหนค้างชำระ” “งวดไหนถึงรอบวางบิลสัปดาห์นี้” หรือ “ใบเสนอราคาไหนรอเซ็นเกิน 7 วัน” และสร้างดีลหรือเพิ่มงวดแทนคุณได้ภายในสิทธิ์ของคุณ

ตัวอย่างการเรียก tool
search_issues { project: "SALE", flag: "overdue" }            # overdue installments (which deals are unpaid?)
search_issues { project: "SALE", flag: "awaiting_signature" } # quotations waiting for a signature
create_issue  { project: "SALE", type: "task", title: "Website redesign — Siam Logistics",
                fields: { customer: "Siam Logistics Co., Ltd.", amount: 150000, payment_terms: "50-50" } }
create_issue  { project: "SALE", type: "subtask", parent: "SALE-12", title: "Installment 1/2",
                fields: { amount: 75000, bill_on: "2026-10-03", due_on: "2026-10-18" } }
update_issue  { key: "SALE-13", version: 3, fields: { paid_at: "2026-10-20", paid_amount: 75000 } }

อะไรยังไม่มาในรอบนี้?

  • ออกใบเสนอราคาหรือใบวางบิลเป็น PDF จาก BoardMark
  • ตารางลูกค้ากลาง — ฟิลด์ customer แนะนำจากชื่อที่เคยใช้ใน project เท่านั้น
  • เชื่อม e-Tax หรือธนาคาร และค่าคอมมิชชัน
  • ปุ่ม “สร้าง project / Release จากดีลนี้” — ตอนนี้สร้าง Release ใน project ทีมพัฒนาก่อน แล้วเชื่อมด้วย “เชื่อมกับ…”