Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .changeset/pipeline-kanban-column-total-and-sales-nav-names.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
'hotcrm': patch
---

Write the pipeline board's column total to what a kanban can actually show, and
name the two non-object Sales sidebar entries the app really ships.

**A kanban column carries one total, and it is unweighted.**
`content/docs/sales/pipeline-management.mdx` (and both zh pages) told a rep that
the top of every board column shows two numbers — an unweighted total and a
weighted one. A board cannot show two: `KanbanConfigSchema` in
`@objectstack/spec` declares `summarizeField` as a single optional string
("Field to sum at top of column"), so one column total is the shape of the
feature, and `pipeline_kanban` in `src/views/opportunity.view.ts` binds that one
field to `amount`. The weighted half of the promise therefore never existed, and
a rep looking for it on the board read the unweighted sum of Amount as though
the probability coefficient were already in it — the same class of error the
page's *How expected revenue is calculated* section was just corrected for, one
screen higher. The page now states the single column total for what it is and
sends the weighted forecast to where it genuinely lives: the *Expected Revenue*
column sums on **Open Deals** and **All Opportunities**.

**Two Sales sidebar entries were named by names the sidebar does not carry.**
`content/docs/sales/index.mdx` listed *Sales Pipeline* and *Sales Dashboard*
under "Where to find things" — a section whose whole job is to say what a reader
will see in the nav. `src/apps/crm.app.ts` labels those two entries **Pipeline**
and **Sales Performance**. *Sales Pipeline* is real, but it is the label of the
kanban *view* (`pipeline_kanban`), not of the sidebar entry that opens it;
*Sales Dashboard* is neither, and is the same phantom already removed from the
pipeline page's roll-up list and its forecast paragraph. Both bullets now carry
the nav label, with the view's own label named beside it, the way
`content/docs/sales/opportunities.mdx` already describes the pair. The third
occurrence of the same mix-up — the pipeline page's "sidebar shortcut **Sales
Pipeline**" — now names the view and the sidebar entry separately too.

Docs only, all three locales — no `src/` change.
4 changes: 2 additions & 2 deletions content/docs/sales/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ Just type into the chat: *"qualify this lead"*, *"draft a follow-up email"*, *"w
The **Enterprise CRM app** sidebar groups everything under **Sales**:

- Leads · Accounts · Contacts · Opportunities · Quotes · Contracts
- **Sales Pipeline** — the kanban board view of opportunities
- **Sales Dashboard** — your daily KPIs
- **Pipeline** — the kanban board view of opportunities. That is the sidebar label; the view it opens carries its own label, **Sales Pipeline** (`pipeline_kanban`).
- **Sales Performance** — your daily KPIs, from the `sales_dashboard` dashboard. No sidebar item is called *Sales Dashboard*.

## Start here

Expand Down
4 changes: 2 additions & 2 deletions content/docs/sales/index.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ Lead ──► Account + Contact ──► Opportunity ──► Quote
**Enterprise CRM 应用**的侧边栏将所有内容归到**销售**之下:

- 线索 · 客户 · 联系人 · 商机 · 报价 · 合同
- **销售管道**——商机的看板视图
- **销售仪表盘**——你的每日 KPI
- **销售管道**(Pipeline)——商机的看板视图。侧边栏上的 label 就是这个;它打开的那个视图自身的 label 是**销售流水线**(Sales Pipeline,`pipeline_kanban`)。
- **销售业绩**(Sales Performance)——你的每日 KPI,来自 `sales_dashboard` 仪表盘。没有任何侧边栏条目叫 *销售仪表盘* / *Sales Dashboard*。

## 从这里开始

Expand Down
4 changes: 2 additions & 2 deletions content/docs/sales/index.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ Lead ──► Account + Contact ──► Opportunity ──► Quote
**Enterprise CRM 應用**的側邊欄將所有內容歸到**銷售**之下:

- 潛在客戶 · 客戶 · 聯絡人 · 商機 · 報價 · 合約
- **銷售管道**——商機的看板視圖
- **銷售儀表板**——你的每日 KPI
- **銷售管道**(Pipeline)——商機的看板視圖。側邊欄上的 label 就是這個;它打開的那個視圖自身的 label 是**銷售流水線**(Sales Pipeline,`pipeline_kanban`)。
- **銷售業績**(Sales Performance)——你的每日 KPI,來自 `sales_dashboard` 儀表板。沒有任何側邊欄條目叫 *銷售儀表板* / *Sales Dashboard*。

## 從這裡開始

Expand Down
7 changes: 3 additions & 4 deletions content/docs/sales/pipeline-management.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ No dashboard can give you the same figure. The **Sales Performance** dashboard (

## The pipeline kanban view

The **Pipeline Kanban** (sidebar shortcut **Sales Pipeline**) shows the pipeline as 7 columns — one per stage. Each card shows:
The kanban board is the **Sales Pipeline** view on Opportunities (`pipeline_kanban`), and the sidebar entry that opens it reads **Pipeline**. It shows the pipeline as 7 columns — one per stage. Each card shows:

- Opportunity name
- Account
Expand All @@ -47,10 +47,9 @@ The **Pipeline Kanban** (sidebar shortcut **Sales Pipeline**) shows the pipeline

To advance a deal, just **drag the card** to the next column. The system enforces the stage rules, so you can't drag from *Prospecting* directly to *Closed Won*.

At the top of each column you'll see two numbers:
At the top of each column you'll see **one** number: the sum of *Amount* across that column's deals — the unweighted total for that stage. One is all a kanban column can carry, by design: a board declares a single `summarizeField` (`src/views/opportunity.view.ts`), and this board binds it to `amount`.

- The **unweighted total** (sum of amount)
- The **weighted total** (sum of expected revenue)
The board has no weighted total. As *How expected revenue is calculated* says above, the weighted forecast is a list-view total: the *Expected Revenue* column sum on **Open Deals** and **All Opportunities**.

## Pipeline health signals

Expand Down
7 changes: 3 additions & 4 deletions content/docs/sales/pipeline-management.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ description: 销售管道的日常运作方式——推进交易、自动概率

## 销售管道看板视图

**销售管道看板**(侧边栏快捷方式**销售管道**)将销售管道显示为 7 列——每个阶段一列。每张卡片显示:
这块看板是商机上的**销售流水线**视图(`pipeline_kanban`),侧边栏上打开它的那个条目写作**销售管道**。它将销售管道显示为 7 列——每个阶段一列。每张卡片显示:

- 商机名称
- 客户
Expand All @@ -47,10 +47,9 @@ description: 销售管道的日常运作方式——推进交易、自动概率

要推进一笔交易,只需**拖动卡片**到下一列。系统会强制执行阶段规则,因此你无法从*寻找客户*直接拖到*成交*。

在每列顶部,你会看到两个数字:
在每列顶部你会看到**一个**数字:该列所有交易的*金额*之和,也就是这个阶段的未加权合计。看板每列只能有这一个数,这是设计使然:一块看板只声明一个 `summarizeField`(`src/views/opportunity.view.ts`),而这块板把它绑到了 `amount`。

- **未加权合计**(金额之和)
- **加权合计**(预期营收之和)
看板上没有加权合计。如上面《预期营收是如何计算的》一节所述,加权预测是列表视图上的合计:**进行中商机**与**全部商机**两个视图的*预期营收*列合计。

## 销售管道健康信号

Expand Down
7 changes: 3 additions & 4 deletions content/docs/sales/pipeline-management.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ description: 銷售管道的日常運作方式——推進交易、自動機率

## 銷售管道看板視圖

**銷售管道看板**(側邊欄快捷方式**銷售管道**)將銷售管道顯示為 7 列——每個階段一列。每張卡片顯示:
這塊看板是商機上的**銷售流水線**視圖(`pipeline_kanban`),側邊欄上打開它的那個條目寫作**銷售管道**。它將銷售管道顯示為 7 列——每個階段一列。每張卡片顯示:

- 商機名稱
- 客戶
Expand All @@ -47,10 +47,9 @@ description: 銷售管道的日常運作方式——推進交易、自動機率

要推進一筆交易,只需**拖動卡片**到下一列。系統會強制執行階段規則,因此你無法從*尋找客戶*直接拖到*成交*。

在每列頂部,你會看到兩個數字:
在每列頂部你會看到**一個**數字:該列所有交易的*金額*之和,也就是這個階段的未加權合計。看板每列只能有這一個數,這是設計使然:一塊看板只宣告一個 `summarizeField`(`src/views/opportunity.view.ts`),而這塊板把它綁到了 `amount`。

- **未加權合計**(金額之和)
- **加權合計**(預期營收之和)
看板上沒有加權合計。如上面《預期營收是如何計算的》一節所述,加權預測是清單檢視上的合計:**進行中商機**與**全部商機**兩個檢視的*預期營收*欄合計。

## 銷售管道健康訊號

Expand Down
Loading