# MICE Sales Tracker — App Requirement v1

## เป้าหมาย
เปลี่ยน Excel ข้อมูลลูกค้าและ inquiry งาน MICE ของโรงแรม เป็น workflow ติดตามงานร่วมกัน เซลส์ดูแลงานของตัวเอง หัวหน้าเห็นภาพรวมทีม เริ่มจากต้นแบบที่ใช้ข้อมูลจำลอง

## ผู้ใช้และสิทธิ์
- เซลส์: ดูลูกค้าที่รับผิดชอบ ประวัติการขาย สร้างงานติดตาม และบันทึกผล
- หัวหน้า: ดูข้อมูลทั้งทีม มอบหมายผู้รับผิดชอบ และตรวจงานค้าง
- ตรวจสิทธิ์ฝั่งระบบทุกครั้งที่อ่านหรือแก้ข้อมูล การซ่อนปุ่มไม่ใช่การควบคุมสิทธิ์ การสลับบทบาทในเดโมเป็นเพียงการจำลอง

## โครงสร้างข้อมูล
- Customer: customer_id, company_name, contact_name (ว่างได้), contact_email (ว่างได้), owner_id
- Sales record: record_id, customer_id, event_name, event_date (ว่างได้), package_name, pax, unit_price_thb, total_thb, status (Open/Won/Lost), follow_up_date (ว่างได้)
- Follow-up: task_id, customer_id, owner_id, due_date, action, status (Pending/Done), outcome, next_follow_up_date, created_at, updated_at
- แยกชื่อผู้ติดต่อลูกค้าออกจากชื่อเซลส์ผู้ดูแลบัญชี

## นำเข้าข้อมูล
นำเข้า MICE_Sales_History.xlsx และ Customers.xlsx เชื่อมด้วย customer_id มีหน้าตรวจ mapping และข้อผิดพลาดก่อนบันทึก ตรวจรหัสซ้ำ รหัสที่เชื่อมไม่ได้ วันที่ผิด ราคาติดลบ และผู้ติดต่อที่ขาด เก็บข้อมูลต้นทาง ไม่เติมข้อมูลที่ไม่รู้เอง แสดงที่มาและวันที่ของข้อมูลที่ใช้แนะนำ

## หน้าจอและ workflow
1. รายการลูกค้าที่ควรดู: งานเลยกำหนด ลูกค้าเดิมที่ควรคุย และข้อมูลไม่ครบ พร้อมเหตุผล ให้ทีมปรับลำดับเองได้
2. รายละเอียดลูกค้า: ประวัติงาน แพ็กเกจ ราคาเสนอหรือยอดที่ขายได้ ผู้ติดต่อ ผู้ดูแล และประวัติการติดตาม
3. สร้างงาน: เลือกสิ่งที่จะทำ ผู้รับผิดชอบ และวันติดตาม ตรวจข้อมูลบังคับและป้องกันกดบันทึกซ้ำ
4. บันทึกผล: ปิดงาน บันทึกสิ่งที่คุย และนัดครั้งถัดไปได้
5. ภาพรวมหัวหน้า: กรองตามผู้ดูแลและสถานะ เห็นงานค้างและงานเลยกำหนด

## ข้อมูลจำลอง
วันที่อ้างอิง 29 ก.ย. 2026 ราคาด้านล่างเป็นยอดแพ็กเกจตัวอย่าง ไม่รวมบริการที่ตกลงเพิ่ม และไม่ได้แสดงการคำนวณภาษี

| ID | บริษัท | ผู้ติดต่อ | เซลส์ผู้ดูแล |
|---|---|---|---|
| C001 | Northstar | Arun | Narin |
| C002 | Meridian | Kanya | Mali |
| C003 | Bloom | ยังไม่มี | Pim |

| รายการ | ลูกค้า | งาน | วันที่จัด | แพ็กเกจ | คน | บาท/คน | รวมบาท | สถานะ | วันติดตาม |
|---|---|---|---|---|---:|---:|---:|---|---|
| S001 | C001 | Annual Meeting | 2025-10-16 | Full-day Meeting | 100 | 1800 | 180000 | Won | |
| S002 | C002 | Dealer Conference | | Conference + Lunch | 120 | 2000 | 240000 | Open | 2026-09-22 |
| S003 | C003 | Product Launch | | Launch + Cocktail | 80 | 2000 | 160000 | Open | |

- Meridian: เลยวันติดตาม 7 วัน ให้เช็กว่าอัปเดตข้อมูลแล้วหรือยัง ไม่สรุปว่าดีลเสีย
- Northstar: มี inquiry วันที่ 28 ก.ย. 2026 ขอจัด 120 คน วันที่ 16 ต.ค. 2026 ยังไม่เปิดดีลปีนี้ ใช้ประวัติปี 2025 ประกอบการเสนอแนวทาง
- Bloom: ให้ Pim เติมผู้ติดต่อ
- งานถัดไปในเดโมกำหนด 30 ก.ย. 2026 ไม่มีการติดต่อลูกค้าจริง

## เกณฑ์ตรวจรับ
- เชื่อมข้อมูลด้วย customer_id ถูกต้อง และยอดแพ็กเกจตัวอย่างคำนวณตรงกัน
- เลือกลูกค้าแล้วเห็นประวัติและเหตุผลที่ตรงกับรายนั้น
- สร้างงานครั้งเดียว ไม่ซ้ำ ผู้ดูแลและหัวหน้าเห็นงานเดียวกัน แอปฉบับเต็มต้องเก็บข้อมูลหลัง refresh
- บันทึกผล นัดครั้งต่อไป และเก็บประวัติการเปลี่ยนแปลงได้
- ผู้ไม่มีสิทธิ์อ่านหรือแก้บัญชีอื่นไม่ได้ ทั้งหน้าจอและ API
- มีสถานะไม่มีข้อมูล นำเข้าผิดพลาด บันทึกล้มเหลว และป้องกันการส่งซ้ำ
- รองรับคีย์บอร์ด สีอ่านง่าย และภาษาไทย/อังกฤษ

## ขอบเขตและเรื่องที่ต้องตกลงก่อนใช้งานจริง
เดโมในสไลด์เป็นลำดับจำลอง ตั้งแต่ signal ปรึกษา AI เปิดดีล ดู dashboard และ forecast ยังไม่มี login ฐานข้อมูลถาวร การนำเข้า หรือ workflow เต็มตามเอกสารนี้ ต้องตกลงระบบ hosting, login, อายุการเก็บข้อมูล, การเชื่อม CRM, ภาษี/ค่าบริการ และนิยามสถานะก่อนขึ้นใช้งานจริง ไม่ส่ง email, LINE, ใบเสนอราคา หรือจองงานอัตโนมัติ คำแนะนำต้องให้ทีมตรวจและตัดสินใจ

## เดโม Northstar เพิ่มเติม
- Inquiry I004: C001 รับวันที่ 28 ก.ย. 2026, Annual Meeting 2026, ขอจัด 16 ต.ค. 2026, 120 คน, ขอแพ็กเกจ Full-day Meeting เป็น inquiry ไม่ใช่ยอดขายที่ปิดแล้ว
- AI ใช้ราคาเดิม ฿1,800/คน เป็นฐานประมาณการ: 120 × 1,800 = ฿216,000 ต้องตรวจราคาปัจจุบัน สิ่งที่รวม และห้องว่างก่อนเสนอจริง
- เมื่อผู้ใช้ยืนยัน เปิดดีล O004 ให้ Narin ดูแล สถานะ Qualified ติดตาม 30 ก.ย. พร้อมงานเช็กราคา ห้องว่าง และ requirement ไม่มีการส่งราคา / จองห้อง
- Dashboard รวม Northstar ฿216,000 + Meridian ฿240,000 + Bloom ฿160,000 = open pipeline ฿616,000 มีงานเลยกำหนด 1 รายคือ Meridian
- Forecast ครอบคลุมสามดีลจำลอง คาดปิด ต.ค. 2026 ทีมตั้งโอกาสปิด 50%, 50%, 25% ตามลำดับ คำนวณ ฿108,000 + ฿120,000 + ฿40,000 = ฿268,000 ก่อนเพิ่ม Northstar คือ ฿160,000 เปอร์เซ็นต์เป็นสมมติฐาน ไม่ใช่ความมั่นใจ AI และแยกยอด Won ออก
- เพิ่มหน้าภาพรวมผู้บริหารและ forecast ที่ดูสูตรได้ แอปฉบับเต็มต้องอัปเดตจากดีลที่บันทึกจริงชุดเดียวกัน ไม่คัดลอกข้อมูลซ้ำ ส่วนในสไลด์จำลองผลเพื่อเล่าเรื่อง


## AI ที่เริ่มจาก signal และทางเลือกเปิดดีลโดยตรง
- วางปุ่ม “เปิดดีลใหม่” คู่กับ “ปรึกษา AI” บน signal ของลูกค้า
- เมื่อเลือกปรึกษา AI ให้ใช้ inquiry และประวัติการขายของลูกค้านั้นเพื่อเสนอแนวทางทันที โดยไม่ต้องให้เซลส์พิมพ์โจทย์ซ้ำ
- เซลส์ถามต่อได้ เช่น ต้องยืนยันข้อมูลใดก่อนส่งราคา โดย AI อ้างอิงข้อมูลที่มีและระบุสิ่งที่ยังไม่ทราบ
- ปุ่ม “เลือก Suggestion นี้” เปิดร่างดีลและงานติดตามให้เซลส์ตรวจแก้ก่อนบันทึก ไม่ส่งใบเสนอราคาหรือยืนยันบริการอัตโนมัติ
- เซลส์เปิดดีลใหม่โดยตรงได้โดยไม่ผ่าน AI ข้อมูลจาก inquiry ถูกนำมาช่วยกรอก ส่วนราคาและเงื่อนไขต้องตรวจยืนยัน

## บอร์ดงานและ Forecast รายเดือน
- บอร์ดงานแยก To do, In progress, Waiting on client และ Done โดยแต่ละงานเชื่อมดีล ผู้รับผิดชอบ และวันครบกำหนด สถานะงานแยกจากขั้นตอนดีล
- Forecast รวมทั้งโรงแรม: แยกรายได้จริงตามเดือนจัดงาน, confirmed backlog ที่ยังไม่จัดงาน และ weighted open pipeline โดยไม่รวมซ้ำ


### Extended fictional hotel outlook (THB, as of 29 Sep 2026)
| Event month | Actual revenue | Confirmed backlog | Weighted open pipeline |
|---|---:|---:|---:|
| Jul |420000|0|0|
| Aug |510000|0|0|
| Sep (through 29 Sep) |390000|0|0|
| Oct |0|320000|268000|
| Nov |0|450000|180000|
| Dec |0|380000|240000|

Q4 backlog 1150000 + weighted pipeline 688000 = outlook 1838000. October weighted pipeline retains Northstar 108000, Meridian 120000 and Bloom 40000. Additional fictional bookings and future deals are included only in this hotel-wide view; the earlier dashboard is the three-deal sample. Forecast is grouped by event month, not close month; future event dates for Meridian and Bloom are assumed October in this demo. The weighted figures use team assumptions and are not recognized revenue.
