G Gaia

Switch factory

CYTO-11 — Balakong Jaya CTSB CYTO-29 CTSB CYTOWELL-54 — Taming Jaya PIC/S CTWSB CYTOCNGZ-602 — Guangzhou CTCNGZ

Only factories you are granted appear here (Filament tenant menu).

Leo Lim

leo@navi.my · Owner / Admin

Profile settings Change password

Theme

Sign out
RetailSellR&DMakeBuyStockPlanItemsGMPOpsAdminInsights
← CRM — deals pipeline / Yes Global — AlphaMax V+ repeat run

AlphaMax V+ repeat run

CTSB

Yes Global · Vincent Yap · est RM 186,000

Click a stage to move the deal (mock). Sampling (R&D) mirrors the linked R&D request's 5-status model; Lost captures an objection / lost-reason below.

Activity diary · newest first

  • Sample sent

    Shipped TRL-26-014 flavour B (2 × 500g) via Pos Laju EP998877665MY. Vincent to run their internal taste panel this week.

    2026-07-04 · Kevin Wong · next follow-up 2026-07-10

  • WhatsApp

    Vincent confirmed the sample ship-to (Yes Global HQ, PJ). Flagged he wants slightly reduced sweetness vs the 2025 batch.

    2026-07-02 · Kevin Wong

  • Quote sent

    Re-sent indicative pricing Q-2026-018 for the 20k-unit repeat run — RM 186,000. Vincent reviewing with their finance.

    2026-06-27 · Kevin Wong

  • Meeting

    Site visit at CTSB with Vincent + Jason (R&D). Walked the line, agreed the repeat run should match the 2025 spec with the sweetness tweak.

    2026-06-20 · Jason Teh

  • Call

    Vincent enquired about a repeat run of AlphaMax V+ (2025 formula). Came in via our Alibaba listing. Opened the deal at Sampling — R&D to re-trial the tweak.

    2026-06-16 · Kevin Wong

Entries can't be edited or deleted — this is the deal's diary. Types: Call · WhatsApp · Meeting · Email · Quote sent · Sample sent · Note. Each is timestamped + by-user; an optional next-follow-up date feeds the weekly review.

Objection / lost-reason

Captured if this deal is lost. Move the stage pill to Lost to record why and feed the weekly Objections breakdown.

Stored on the deal (lost_reason enum + lost_note). Feeds the Objections breakdown on the CRM weekly-review panel.

People (PIC)

1 primary · 1 collaborator
Kevin Wong primary Jason Teh R&D

One primary owner + collaborators (deal_pics pivot — is_primary flag). The primary shows in the CRM list; collaborators get the deal's notifications.

Lead source

Alibaba

Pick-list: Alibaba · Referral / word of mouth · Exhibition / trade show · Website / online enquiry · WhatsApp / social DM.

Stage-edge actions

Create quote Raise R&D request Create SO

Sampling (R&D) reflects the linked R&D request's 5-status model. Create SO prefills the factory tenant's SO form (customer + entity). This deal converts on Won.

Project Gaia — static mockup in Filament v3 idiom. No backend. Founder's worked example — appears in crm.html as the Yes Global · Sampling (R&D) row.

Deal detail — field manifest

FieldFilament componentTypeSourceFK target
Company / ContactTextEntry::url() / TextEntryFK + stringstored: deals.customer_id (nullable pre-conversion), deals.contact_namecustomers.id
StagePill row → Select; auto-logs on changeenumstored: deals.stage — lead → quoted → sampling → ready_to_convert → won / lost. Sampling mirrors the linked rnd_request 5-status
Est. valueTextEntry moneymoneystored: deals.est_value
FlagIconColumn / ToggleButtonboolstored: deals.flag — surfaces the deal in the weekly-review "Flagged" section
Lead sourceSelect (tag chip)enumstored: deals.source — Alibaba / Referral / Exhibition / Website / WhatsApp-social
People (PIC)Repeater / attach — chipspivotstored: deal_pics (deal_id, user_id, is_primary) — one is_primary=true (owner shown in the list) + N collaboratorsusers.id
Activity diaryRelationManager (append-only)child tablestored: deal_activities (type enum Call / WhatsApp / Meeting / Email / Quote sent / Sample sent / Note, note, at, by_user_id, next_follow_up_date nullable) — insert-only: no edit, no deletedeals.id / users.id
Log activityAction::form() modal on the diary RMchild insertwrites one deal_activities row (type, note, at=now, by=current user, next_follow_up_date optional). Also updates deals.last_activity_at (derived)deal_activities
Objection / lost-reasonSection::visible(stage=lost) → Select + Textareaenum + textstored: deals.lost_reason (Price / Lead time / MOQ too high / Went with competitor / No budget-timing / Ghosted / Spec mismatch), deals.lost_note — set when stage moves to Lost
Stage-edge actionsActions → prefilled create formsnavigationCreate quote (quote-new), Raise R&D request (rnd-request-new), Create SO (so-new). Links to the deal's quote_id / rnd_request_id when presentquotes / rnd_requests / sales_orders

Engine notes

  • The diary is append-only (founder decision): a deal_activities row is never editable or deletable — it's the deal's trustworthy history. Corrections are new Note entries.
  • Multiple PICs: deal_pics pivot with one is_primary owner; the CRM list shows the primary chip + a "+N" of collaborators. Collaborators receive the deal's follow-up notifications.
  • Stage Sampling (R&D) is the bridge to the R&D module — the deal links a rnd_requests row whose own 5-status (Requested → In development → Sample sent → Confirmed / Cancelled) drives the sampling sub-state.
  • ready_to_convert is the new pre-Won holding stage: quote accepted / sample approved, waiting on PO — the weekly review watches these for conversion.
  • No kanban — list view + weekly-review panel per the house UX rule. This detail page exists so the append-only diary has a home (the CRM slide-over is create-only).