CSV 審批流程範本(按毛利率的折扣審批)
一份可以直接以 CSV 貼進來的折扣審批流程:三個毛利率分段、四條審批人泳道,以及幾條修訂迴路——它們的「連線至」值向上指回檔案,指向一個比自己所在那列更小的列號。
甚麼是CSV 審批流程範本(按毛利率的折扣審批)流程
這個檔案幾乎肯定不是你寫的。一份報價審批步驟的 CSV 是由某樣東西吐出來的——一份 CPQ 報表、一次 CRM 匯出、有人對 ERP 跑過並存起來的一條查詢,或者一份定價工作簿的其中一個分頁,因為對面那套系統只肯收這個格式而被另存為 .csv。這正是 CSV 最根本的事實,也是它與它出身的那個工作簿行為不同的原因。它沒有公式,只有那些公式在匯出那一刻所產生的值。它沒有第二個工作表、沒有儲存格顏色、沒有合併標題、沒有欄寬。它就是一列一列的文字,第一列說明有哪些欄。讀者要重建這條流程所需要的一切,都必須在那些字元裡,否則它根本不在那裡。
QueryChart 讀的是一小組欄名。「形狀」是方框類型——Start、Process、Decision、End、Success、Reject 等等。「方框文字」是方框裡的標籤。「連線至」是這一列所連往的那一列,以列號書寫。「連線文字」是那條連接線上的標籤。「連線樣式」、「橫向泳道」與「縱向泳道」承載連接線的樣式與兩條泳道軸,而「備註」與「連結」在你需要時也在。比對依據是標題名稱而不是欄的位置,所以你的欄次序無關緊要,而匯出檔一併帶來的任何額外欄——報價編號、客戶、負責人、建立日期——都會原封帶過並被忽略。把 .csv 拖到編輯器的試算表區域,或者直接把 CSV 文字貼進去。
一列就是一個方框,而一列在檔案裡的位置就是它的號碼:第一列資料是 1、第二列是 2,而一個「連線至」寫 7,意思就是第七列資料。審批流程正是在這裡與一份簡單程序分道揚鑣。程序順著檔案往下跑,每一個「連線至」都大過它所在那一列。審批鏈不是這樣。一張被退回修訂的報價必須回到一個已經發生過的步驟,所以它的「連線至」值細過它自己的列號,而那支箭嘴向上指回檔案。下面這張圖有三條邊正是這樣做:第 16 列指向 3、第 17 列指向 13、第 20 列指向 15。弄錯其中一條,是一份手工編號的審批 CSV 匯入後變成一片方框、少了一支箭嘴的最常見成因,因為不會有任何東西投訴——一個指向不存在的列的「連線至」會被丟棄,不留訊息。
這張圖本身是一條按毛利率而不是按折扣百分比運作的折扣審批。橫向五個階段、縱向四個角色,以及三個決定由誰過目的門檻:達到 40% 或以上由銷售代表批准,30 至 40 交給銷售經理,20 至 30 交給財務,低於 20 交給商務總監。有兩位審批人可以把報價退回,兩者都退到同一個修訂步驟,而那個步驟會回到毛利率計算,因為價格改了就是毛利率改了,可能落在另一個分段。這條迴路在第二次退回時封頂。四個結局覆蓋一張報價真正停下來的方式:入帳、被拒、因毛利理由放棄,以及無人回覆而到期。
本流程圖涵蓋的內容
本範本包含
- 五欄階段——報價、毛利檢查、審批、修訂與發出——交叉四條角色泳道:銷售代表、銷售經理、財務與商務總監。在檔案裡那就是「橫向泳道」與「縱向泳道」兩個欄,一列一個值,而屬於同一條泳道的每一列都要寫得一模一樣。
- 一道三級毛利率階梯,而不是單一道審批關卡:「毛利率是否達到 40% 或以上?」在銷售代表這一級放行,「毛利率是否達到 30% 或以上?」喚醒銷售經理,「毛利率是否達到 20% 或以上?」喚醒財務,而低於 20% 的一律走向「為商務總監準備這單生意的摘要」。
- 兩條退回路線匯入同一個修訂步驟。「銷售經理是否批准?」與「財務是否批准?」都帶一支分支通往「修訂折扣、價格或條款」,所以檔案裡只有一個修訂步驟,而不是一位審批人一個,並有兩列各自以「連線至」值指名它。
- 這個系列一直提醒的那條向後的邊。「是否同一位審批人第二次退回?」是第 16 列,而它第一次修訂那一支的「連線至」是 3——向上指回檔案裡的「計算折扣後的毛利率」,因為改動過的價格是一個新的毛利率,可能落在另一個分段。
- 一條封了頂的迴路,而不是一條開口的。「是否同一位審批人第二次退回?」把第二次退回帶出這個循環,送到「堅持這個折扣還是放棄這單生意?」,在那裡這單生意要麼往上呈交總監、要麼停下來,於是沒有東西可以在銷售代表與某一位審批人之間無止境地來回。
- 一條客戶端的迴路與四個各自獨立的結局。「客戶是否在報價到期前接受?」可以把報價送回去修訂,而整條流程結束於「訂單以獲批毛利率入帳」、「折扣被拒,報價結案」、「因毛利理由放棄這單生意」或「報價到期而沒有訂單」。
何時使用本範本
- 你們的 CRM 或 CPQ 把報價審批匯出成一個 CSV,而有人問你這條審批流程實際上是甚麼。
- 折扣在聊天與電郵裡獲得批准,門檻靠口耳相傳,而沒有人拿得出一份寫下來的階梯。
- 你有一個檔案裝著一張審批步驟表,而每一次嘗試用人手把它重畫出來,都會丟失那些退回路線,因為它們是向後跑的。
- 你匯入的一個 CSV 畫出了方框卻不是全部箭嘴,而你懷疑問題出在那些把工作送回去的列。
- 你正在為一次審計或一份董事會文件撰寫折扣政策,需要把分段、審批人與升級放在同一頁上。
生成呢個圖嘅 CSV 檔
每行一個步驟。「連線至」欄入面嘅數字係行號——就係佢畫出啲連線,亦係大多數檔案缺咗嗰欄。
| # | 形狀 | 方框文字 | 連線至 | 連線文字 | 橫向泳道 | 縱向泳道 |
|---|---|---|---|---|---|---|
| 1 | Start | 收到客戶提出的折扣要求 | 2 | 報價 | 銷售代表 | |
| 2 | Process | 輸入明細項目、標價與所要求的折扣 | 3 | 報價 | 銷售代表 | |
| 3 | Process | 計算折扣後的毛利率 | 4 | 報價 | 銷售代表 | |
| 4 | Process | 寫下要求這個折扣的理由 | 5 | 報價 | 銷售代表 | |
| 5 | Decision | 毛利率是否達到 40% 或以上? | 6, 7 | 40% 或以上, 低於 40% | 毛利檢查 | 銷售代表 |
| 6 | Approval | 在銷售代表這一級批准並蓋上毛利率 | 19 | 審批 | 銷售代表 | |
| 7 | Decision | 毛利率是否達到 30% 或以上? | 8, 10 | 30% 至 40%, 低於 30% | 毛利檢查 | 銷售經理 |
| 8 | Process | 銷售經理檢查理由與承諾採購量 | 9 | 審批 | 銷售經理 | |
| 9 | Decision | 銷售經理是否批准? | 19, 15, 22 | 批准, 退回修訂, 拒絕這個折扣 | 審批 | 銷售經理 |
| 10 | Decision | 毛利率是否達到 20% 或以上? | 11, 13 | 20% 至 30%, 低於 20% | 毛利檢查 | 財務 |
| 11 | Process | 財務對照客戶往績檢查毛利率 | 12 | 審批 | 財務 | |
| 12 | Decision | 財務是否批准? | 19, 15, 13 | 批准, 退回修訂, 呈交總監 | 審批 | 財務 |
| 13 | Process | 為商務總監準備這單生意的摘要 | 14 | 審批 | 商務總監 | |
| 14 | Decision | 商務總監是否批准? | 19, 18, 22 | 批准, 有條件批准, 拒絕這個折扣 | 審批 | 商務總監 |
| 15 | Process | 修訂折扣、價格或條款 | 16 | 修訂 | 銷售代表 | |
| 16 | Decision | 是否同一位審批人第二次退回? | 3, 17 | 第一次修訂, 第二次修訂 | 修訂 | 銷售經理 |
| 17 | Decision | 堅持這個折扣還是放棄這單生意? | 13, 23 | 堅持並呈交總監, 因毛利理由放棄 | 修訂 | 商務總監 |
| 18 | Process | 把總監的條件記在報價上 | 19 | 審批 | 商務總監 | |
| 19 | Process | 把獲批的報價發給客戶 | 20 | 發出 | 銷售代表 | |
| 20 | Decision | 客戶是否在報價到期前接受? | 21, 15, 24 | 接受, 要求更大折扣, 到期前沒有回覆 | 發出 | 銷售代表 |
| 21 | Success | 訂單以獲批毛利率入帳 | 發出 | 銷售代表 | ||
| 22 | Reject | 折扣被拒,報價結案 | 發出 | 銷售經理 | ||
| 23 | End | 因毛利理由放棄這單生意 | 發出 | 商務總監 | ||
| 24 | End | 報價到期而沒有訂單 | 發出 | 銷售代表 |
#,形狀,方框文字,連線至,連線文字,橫向泳道,縱向泳道
1,Start,收到客戶提出的折扣要求,2,,報價,銷售代表
2,Process,輸入明細項目、標價與所要求的折扣,3,,報價,銷售代表
3,Process,計算折扣後的毛利率,4,,報價,銷售代表
4,Process,寫下要求這個折扣的理由,5,,報價,銷售代表
5,Decision,毛利率是否達到 40% 或以上?,"6, 7","40% 或以上, 低於 40%",毛利檢查,銷售代表
6,Approval,在銷售代表這一級批准並蓋上毛利率,19,,審批,銷售代表
7,Decision,毛利率是否達到 30% 或以上?,"8, 10","30% 至 40%, 低於 30%",毛利檢查,銷售經理
8,Process,銷售經理檢查理由與承諾採購量,9,,審批,銷售經理
9,Decision,銷售經理是否批准?,"19, 15, 22","批准, 退回修訂, 拒絕這個折扣",審批,銷售經理
10,Decision,毛利率是否達到 20% 或以上?,"11, 13","20% 至 30%, 低於 20%",毛利檢查,財務
11,Process,財務對照客戶往績檢查毛利率,12,,審批,財務
12,Decision,財務是否批准?,"19, 15, 13","批准, 退回修訂, 呈交總監",審批,財務
13,Process,為商務總監準備這單生意的摘要,14,,審批,商務總監
14,Decision,商務總監是否批准?,"19, 18, 22","批准, 有條件批准, 拒絕這個折扣",審批,商務總監
15,Process,修訂折扣、價格或條款,16,,修訂,銷售代表
16,Decision,是否同一位審批人第二次退回?,"3, 17","第一次修訂, 第二次修訂",修訂,銷售經理
17,Decision,堅持這個折扣還是放棄這單生意?,"13, 23","堅持並呈交總監, 因毛利理由放棄",修訂,商務總監
18,Process,把總監的條件記在報價上,19,,審批,商務總監
19,Process,把獲批的報價發給客戶,20,,發出,銷售代表
20,Decision,客戶是否在報價到期前接受?,"21, 15, 24","接受, 要求更大折扣, 到期前沒有回覆",發出,銷售代表
21,Success,訂單以獲批毛利率入帳,,,發出,銷售代表
22,Reject,折扣被拒,報價結案,,,發出,銷售經理
23,End,因毛利理由放棄這單生意,,,發出,商務總監
24,End,報價到期而沒有訂單,,,發出,銷售代表運作方式
匯入之前先用文字編輯器打開檔案
先看原始字元。分隔符是逗號還是分號?凡是系統清單分隔符為分號的地方,Excel 就寫分號,而那是歐洲大陸大部分地方的情況,因為逗號在那裡已經是小數點。一個分號檔案被當成逗號檔案去讀,會給你一個把整列裝在裡面的欄。也檢查那些帶重音的字元:如果它們以亂碼形式送到,這個檔案就不是它被當成的那個編碼。而如果只有第一個欄怎樣都對不上,通常的原因是 Excel 的「CSV UTF-8」匯出在第一個標題前面寫了一個看不見的位元組順序記號——把那個標題重新打一次,或者存成普通 CSV。
給檔案編輯器讀得懂的標題名稱
第一列必須說明有哪些欄:「形狀」、「方框文字」、「連線至」、「連線文字」、「連線樣式」、「橫向泳道」、「縱向泳道」。比對依據是名稱,所以欄的次序自由,而你匯出檔產生的每一個額外欄都會一併帶過並被忽略。把坐在標題上方的任何標題文字或篩選條件列刪掉——CSV 沒有標題區塊這個概念,所以第一列的一個報表標題會令你真正的標題變成普通資料。一個拼錯的標題也不算錯誤;它只不過是一個甚麼都不做的欄,所以每一個你打算使用的欄,都要確認它真的到位。
在寫下第一個「連線至」之前先為列編號
一列的號碼就是它在資料裡的位置:第一列資料是 1、第二列是 2,如此類推。在連接任何東西之前先把號碼寫在旁邊,然後才寫連接。之後插入一列會令它下面每一列重新編號,也令每一個曾經指向它們的「連線至」重新指向別處,所以先把列的清單完成,再開始處理箭嘴。
最後才寫那些向後的邊,並把每一條讀出聲
每一次退回都是一個細過自己列號的「連線至」。這裡「是否同一位審批人第二次退回?」是第 16 列,而它第一次修訂的「連線至」是 3;第 17 列指向 13;第 20 列指向 15。把每一條當成一句話說出來——第 16 列回到第 3 列,也就是「計算折扣後的毛利率」——因為一個差了一的向後號碼坐在檔案裡時看起來完全合理,而它會畫出一支指進錯誤方框的箭嘴,而不是一支都沒有。
不要讓逗號進入「連線至」與「連線文字」
那兩個欄是按同一次序讀的逗號分隔清單,所以第 20 列的「連線至」讀作 21,15,24,而它的「連線文字」讀作 接受,要求更大折扣,到期前沒有回覆——三個目標、三個標籤,按位置對齊。分支標籤裡的一個逗號會被讀成另一條分支,這正是為甚麼這張圖裡沒有一個連接線標籤含有逗號。「方框文字」是單一個值,所以只要那個欄位加了引號,逗號就沒有問題:「輸入明細項目、標價與所要求的折扣」可以完整地走完一趟,而同樣的文字沒有加引號就會變成兩個欄。
把你們自己的數字放進分段
40、30 與 20 是佔位符。按你們自己的價目表去訂,令最高那一段覆蓋大部分報價;如果你們大多數生意都掉在第一個門檻之下,那麼每一張報價都會變成一次審批,而隊列就會變成流程本身。順手把毛利率的意思定義清楚——折扣後的毛利率,對照的是哪一個成本——因為一個門檻可靠到甚麼程度,取決於與它比較的那個數字,而在一個 CSV 裡,那個數字是一個背後沒有公式的快照。
常見問題
在 CSV 裡怎樣寫一條修訂迴路?
用一個細過它所在那列的「連線至」值。CSV 裡沒有箭嘴;唯一能造出一條邊的,就是「連線至」欄裡的一個列號,而沒有任何規定要求那個號碼大過當前這一列。一條退回路線的寫法跟其他任何連接一模一樣,唯一分別是它向上指回檔案而不是向下。在這張圖裡,修訂步驟是第 15 列,而第 9、12 與 20 列都指名它:前兩者是來自審批人的向前引用,第三個是來自客戶那一步的向後引用。然後第 16 列指回第 3 列。有兩件事要留神。一條沒有出口的迴路會順順利利地匯入,並讀成一條永遠完成不了的流程,所以要用一個判斷替它封頂——在這裡就是「是否同一位審批人第二次退回?」。而一個指向不存在的列的「連線至」會被丟棄、不留訊息,所以一條向後的邊差了一,顯示出來會是少了一支箭嘴,而不是一個錯誤。
一個 CSV 要有哪些欄才匯入得成流程圖?
有七個在做事。「形狀」設定方框類型——Start、Process、Decision、End、Success、Reject,以及編輯器認得的其他形狀。「方框文字」是標籤。「連線至」放這一列所連往的一個或多個列號,以逗號分隔。「連線文字」按同一次序放連接線標籤,這也是為甚麼這兩個欄必須一起讀。「連線樣式」接受一段描述,例如綠色虛線。「橫向泳道」與「縱向泳道」把這一列放在兩條泳道軸上。此外還有「備註」與「連結」。欄是按標題名稱而不是按位置比對的,而你匯出檔產生的其他任何欄都會帶過並被忽略——所以一個直接由 CRM 出來、有十五個欄的 CSV 可以順利匯入,而只有要緊的那七個會被讀取。
為甚麼我的 CSV 匯入後有方框卻沒有箭嘴?
四個成因,大致按出現頻率排列。「連線至」欄裡放的是步驟名稱而不是列號,而一個標籤不是一個引用。標題列不見了、拼錯了,或者坐在一個報表標題之下,於是那個欄從來沒有被比對上。檔案是以分號分隔卻被當成以逗號分隔去讀,於是整列都塞進第一個欄,令每一列都有一個形狀而別無他物。或者那些號碼根本就是錯的,通常是因為插入了一列而沒有重新編號。最後一種最難察覺,因為一條指向不存在的列的邊會被無聲丟棄:那張圖照樣畫得出來、看上去完成了,只是少了一條路線。
折扣審批流程應該用甚麼門檻?
用毛利率的分段而不是折扣百分比的分段,而且數目要少到人記得住。折扣百分比是錯的那條軸,因為同樣減一成半,在一件產品上很舒服,在另一件上已經低過成本;折扣後的毛利率則可以在整份價目表上互相比較。三個分段配四級審批人是常見的形狀,也是這裡畫出來的那一種:銷售代表放行 40% 或以上的任何東西,銷售經理接手 30 至 40,財務接手 20 至 30,而低於 20 交給商務總監。數字由你們來訂。一組門檻好不好,看的是有多大比例的報價在第一級就通過——如果大部分都要別人過目,那麼不是價目表就是門檻出了問題,而審批流程會為兩者背黑鍋。
在這件事上,CSV 與一個 Excel 檔案有甚麼分別?
CSV 是一套系統的輸出,而不是一個你動手做事的地方。它承載值而不承載公式,所以一個在早上十時匯出的毛利率欄,放的是那條公式在早上十時所產生的數字,而成本改動之後重新匯出會得到另一個檔案,而檔案裡沒有任何東西說明有東西動過。它只有一張表、沒有第二個工作表,所以你毛利率公式所指向的那張對照表並沒有跟著過來。它完全沒有格式,而這一點在這裡只有一個要緊之處:在工作簿裡以儲存格顏色顯示的審批級別,在 CSV 裡甚麼都不代表,如果那個級別要緊,它就需要一個自己的欄。相對地,CSV 是純文字——你可以讀它、可以比對它,也可以確切看見系統交了甚麼給你,包括「連線至」欄裡的那些列號。