# MICE Sales Tracker — App Requirements v1

## Goal
Turn hotel MICE inquiry and customer spreadsheets into a shared follow-up workflow. Salespeople manage assigned accounts; managers see team progress. Build a working prototype with fictional data first.

## Users and permissions
- Salesperson: view assigned customers, read their sales history, create follow-ups and record outcomes.
- Manager: see all team accounts, assign owners, review overdue tasks and team progress.
- Enforce authorization on the server for every read and write. Hiding UI controls is not authorization. Role switching in a demo is simulation only.

## Data model
- Customer: customer_id, company_name, contact_name (nullable), contact_email (nullable), owner_id.
- Sales record: record_id, customer_id, event_name, event_date (nullable), package_name, pax, unit_price_thb, total_thb, status (Open/Won/Lost), follow_up_date (nullable).
- Follow-up: task_id, customer_id, owner_id, due_date, action, status (Pending/Done), outcome, next_follow_up_date, created_at, updated_at.
- Keep contact identity separate from the salesperson who owns the account.

## Import
Import MICE_Sales_History.xlsx and Customers.xlsx; join on customer_id. Preview field mappings and validation errors before saving. Flag duplicate IDs, unmatched customer IDs, invalid dates, negative prices and missing contacts. Preserve original records; do not silently invent missing data. Show the source and date for each recommendation.

## Screens and workflow
1. Review queue: overdue follow-ups, past customers worth contacting, incomplete contact records. Explain why each account is shown; priorities remain editable by the team.
2. Customer detail: event and package history, quoted or won value, contact, account owner, task history.
3. Create follow-up: choose action, owner and due date; validate required fields and prevent accidental duplicate submissions.
4. Log outcome: mark task done, record the result, optionally schedule the next task.
5. Manager overview: filter by owner and status; show outstanding and overdue work.

## Fictional demo records
Snapshot date: 2026-09-29. Prices are illustrative package totals, excluding any separately negotiated services; no tax calculation is implied.

| ID | Company | Contact | Sales owner |
|---|---|---|---|
| C001 | Northstar | Arun | Narin |
| C002 | Meridian | Kanya | Mali |
| C003 | Bloom | missing | Pim |

| Record | Customer | Event | Event date | Package | Pax | THB/pax | Total THB | Status | Follow-up |
|---|---|---|---|---|---:|---:|---:|---|---|
| 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: follow-up is seven days overdue; ask whether the record is current, not whether the deal has been lost.
- Northstar: a new inquiry arrived on 2026-09-28 for 120 guests on 2026-10-16; no 2026 opportunity has been opened yet. Use the 2025 sale as historical context.
- Bloom: ask Pim to complete the missing contact.
- Demo next tasks are due 2026-09-30. Do not contact real clients.

## Acceptance criteria
- Records match by customer_id, and package totals in the sample are consistent.
- Selecting an account displays the matching history and evidence.
- Saving a follow-up creates one task visible to its owner and the manager; updates persist across reloads in the complete app.
- Outcomes and next dates can be recorded with an audit trail.
- Unauthorized users cannot read or alter other accounts through either UI or API.
- Empty states, import errors, save failures and duplicate submissions have clear feedback.
- Keyboard access, readable contrast and Thai/English UI are supported.

## Boundaries and open questions
The slide demo is a scripted local walkthrough of signals, AI advice, opportunity creation, management and forecast screens; it does not implement authentication, durable storage, imports or the complete workflow above. Confirm hosting, identity provider, data retention, existing CRM integration, tax/service-charge rules and final status definitions before production. No automatic emails, LINE messages, quotes or bookings. Recommendations are reviewable suggestions, not autonomous sales decisions.

## Extended Northstar walkthrough
- Inquiry I004: C001, received 2026-09-28, Annual Meeting 2026, requested event date 2026-10-16, 120 guests, Full-day Meeting requested. It is an inquiry, not a won sale.
- AI advice uses last year’s ฿1,800/person as a reference estimate only: 120 × 1,800 = ฿216,000. Confirm current rate, inclusions and venue availability before quoting.
- On user confirmation, create opportunity O004, owner Narin, stage Qualified, next follow-up 2026-09-30, with tasks to confirm rate, availability and requirements. No quote or booking is sent.
- Management shows Northstar ฿216,000, Meridian ฿240,000 and Bloom ฿160,000: total open pipeline ฿616,000. One overdue follow-up belongs to Meridian.
- Forecast scope: these three demo deals are expected to close in October 2026. Team-entered probabilities are 50%, 50% and 25%, respectively. Weighted forecast = ฿108,000 + ฿120,000 + ฿40,000 = ฿268,000. Before Northstar it was ฿160,000. Probabilities are assumptions, not AI confidence; won revenue is separate.
- Add forecast and manager dashboard screens with traceable formulas. In the full app, creating an opportunity must update these views from the same stored record, not duplicate data. The slide only simulates this transition.


## Signal-led AI advice and direct opportunity creation
- Show New opportunity beside Ask AI on the customer signal.
- Ask AI immediately uses that customer's inquiry and sales history to suggest next actions; no repeated initial prompt is required.
- Sales can ask follow-up questions about checks before quoting. AI distinguishes known records from missing details.
- Choose this suggestion opens an editable draft opportunity and follow-up tasks for human review. It never sends quotes or confirms services automatically.
- Direct opportunity creation remains available without AI. Reuse inquiry details, but require current price and service confirmation.

## Task board and monthly forecast
- Provide To do, In progress, Waiting on client and Done columns. Each task links to an opportunity, owner and due date. Task status is separate from deal stage.
- Hotel-wide monthly outlook separates actual event revenue, confirmed backlog awaiting events, and weighted open pipeline without double counting.


### 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.
