我的好朋友 Claude
第 096 期|Cowork|創作者、老闆|

Cowork 自由業者每月 1 號自動出 invoice:抽工時表 → 計鐘數 → email 客戶

香港自由業者 / 顧問每月 1 號自動出 invoice 嘅 Cowork 流程:Claude 抽 Toggl / Clockify 工時表、按客戶分組、計鐘數 × 收費、出 PDF、起稿 email 等你過目。手做半日嘅出單收返做 30 分鐘檢視。

難度 ★★時間 45 分鐘用具 Claude Desktop (Pro/Max)、Timesheet (Toggl / Clockify / Google Sheet)、Email + 客戶 list
【編者撰】一個香港人

情境

你係自由身設計師 / 顧問 / 寫手,手頭通常有 4–8 個客戶,每個客戶月底要出 invoice。手做嘅流程:

8 個客戶做晒,4 個鐘冇咗。而且月月做、月月一樣。

呢個任務完全係 Cowork 嘅強項 — 重覆、多來源、有明確輸出、但最後一步要你親自 send。設定一次,每月 1 號 10am 自動起晒稿,你坐低半個鐘檢視 + 撳 send 就完。

注意:Cowork 仲係 research preview,要 Pro / Max plan。唔好叫佢自動 send invoice email — invoice 出錯(收費計錯、發錯客)係要追嘅,草稿模式永遠係最後一道閘。

跟住做

1. 預備工時表來源 + 客戶主檔

Cowork 要兩樣嘢做基礎:

工時表來源(揀其中一個):

客戶主檔 — 開一個 ~/Documents/freelance/clients.csv

client_id,client_name,contact_email,hourly_rate_hkd,currency,payment_terms,billing_address
ACME,Acme Co Ltd,billing@acme.hk,800,HKD,NET 30,Unit 1201 Cheung Sha Wan
TKO,TKO Studio,finance@tko.studio,1000,HKD,NET 14,
ZEN,Zenith Tokyo,ap@zenith.jp,150,USD,NET 30,3-1-1 Shibuya Tokyo

呢張表係唯一依據 — Claude 唔會自己估收費、自己估 email,全部由呢度攞。

再開個 invoice 範本資料夾:~/Documents/freelance/invoices/2026/。範本用 markdown 或者 .docx 都得(Claude 可以出 PDF)。

2. 核心 prompt — 計鐘數、套收費、加稅 / 折扣、起稿 invoice

入 Claude Desktop Cowork mode,畀佢呢個 prompt:

完整 prompt — 每月 1 號自動起稿 invoice
我係香港自由身顧問,每月 1 號早上 10 點要起稿上個月嘅 invoice 畀我所有現有客戶。流程如下:輸入來源:
Toggl Track(用我個 API token,已存喺 keychain)— 抽上個月(即係今日減 1 個月至今日減 1 日)所有時間紀錄
~/Documents/freelance/clients.csv — 客戶主檔(包括收費、email、找數期、幣值)
~/Documents/freelance/invoices/template.md — invoice 範本
~/Documents/freelance/invoices/last-invoice-number.txt — 上一張 invoice 嘅編號(用嚟遞增)
第一步:抽 + 分組
攞上個月 Toggl 嘅紀錄
按 Toggl 入面個 client 欄位分組
每個客戶計:總鐘數、紀錄清單(日期 / 描述 / 鐘數)
同 clients.csv 對 client_name,揾返收費 / email / 找數期
第二步:計數
小計 = 總鐘數 × 時薪
如果客戶幣值唔係 HKD(即 currency 欄係 USD / RMB / JPY),保留原幣顯示
如果我喺 ~/Documents/freelance/adjustments-[月份].txt 入面為某個客戶寫咗折扣或可報銷開支,套落去(折扣減、開支加)
香港自由業者通常唔收 GST/VAT,所以預設唔加稅;如果某個客戶喺 clients.csv 有 tax_rate 欄,就加返
第三步:起稿 invoice
每個客戶出一份:

Invoice 編號:順序遞增,由 last-invoice-number.txt 開始(例:INV-2026-042、INV-2026-043...)

第一次跑一定要預演:「即場跑一次上個月嘅 data,輸出晒所有檔案但唔好真係 schedule」。睇下收費計啱冇、email 語氣啱唔啱、PDF 格式過唔過到客戶嘅財務部。冇問題先啟用 schedule。

3. PDF / markdown 輸出 + email 草稿(唔好自動 send)

最後輸出應該係呢個資料夾結構:

~/Documents/freelance/invoices/2026/05/
├── INV-2026-042-ACME.pdf
├── INV-2026-042-ACME.eml     ← draft,未 send
├── INV-2026-043-TKO.pdf
├── INV-2026-043-TKO.eml
├── INV-2026-044-ZEN.pdf
├── INV-2026-044-ZEN.eml
├── summary.md                  ← 你睇呢度先
├── untagged.csv                ← 有嘢漏 tag 嘅
└── last-invoice-number.pending ← 檢視完先 promote

你做嘅事:

  1. summary.md,掃一眼總計 — 同你印象中嘅月收入差幾多?差太遠就有嘢錯
  2. untagged.csv — 處理漏咗 tag 嘅紀錄(手動分返客戶或者當 admin 時間)
  3. 隨機抽 1–2 個客戶嘅 PDF 開嚟睇 — 項目明細有冇重覆、收費啱唔啱、找數限期啱唔啱
  4. 開每個 .eml(macOS 㩒兩下會喺 Mail 度開做 draft),檢一檢語氣,撳 send

點解唔自動 send? Invoice 錯一次嘅成本(追數、改 invoice、同客戶解釋)遠高過你檢視嗰半個鐘。Cowork 嘅哲學係「機械工序自動化、判斷工序留返畀人」,invoice send 就係嗰條判斷線。

4. 收款追蹤 — 點更新狀態

出咗 invoice 之後仲有跟進:邊張找咗數、邊張過期。再開一個 ~/Documents/freelance/ar-tracker.csv

invoice_number,client_id,issue_date,due_date,amount,currency,status,paid_date,notes
INV-2026-042,ACME,2026-05-01,2026-05-31,12800,HKD,sent,,
INV-2026-043,TKO,2026-05-01,2026-05-15,8000,HKD,paid,2026-05-12,
INV-2026-044,ZEN,2026-05-01,2026-05-31,3750,USD,overdue,,sent reminder 06/05

每月 1 號嗰個任務加多一步:「跑完 draft 之後,將今次新出嘅 invoice 加落 ar-tracker.csv,預設 status = 'draft'。我撳 send 嗰陣,我會手動改去 'sent'。」

再加一個每星期一 9am 嘅輕量任務:「掃 ar-tracker.csv,如果有 status='sent' 而 today > due_date 嘅,標記做 '過期' 同寄個每週 summary 畀我」。呢個係下面變化 3 嘅基礎。

變化

變化 1:Retainer 版(固定每月金額 + 附交付物 summary)

有啲客戶唔係按鐘計,係月費 retainer(例:每月 HKD 25,000,包乜乜乜)。

變化 1 — Retainer 客戶
(喺 clients.csv 加多兩欄:billing_type = "hourly" 或 "retainer"、monthly_fee_hkd)對於 billing_type = "retainer" 嘅客戶:
唔使計鐘數 × 收費,小計直接用 monthly_fee_hkd
但係仍然抽佢嗰個月嘅 Toggl 紀錄 — 用嚟生成「Deliverables this month」嗰段夾落 invoice:

用描述分組(design / strategy / meetings...)
每組寫總鐘數同 1–2 句重點(由紀錄描述抽出嚟)
唔顯示時薪


額外加一句頁尾:「Retainer covers up to [X] hours/month per agreement; this month: [Y] hours.」
如果 Y > X 多過 10%,喺 summary.md 標記「ACME exceeded retainer cap」等我考慮傾加價

呢個轉變令 retainer 客戶收 invoice 嘅時候唔係淨係見到「HKD 25,000,due NET 30」— 仲見到佢哋畀嘅錢買咗啲乜,續約 / 加價傾起上嚟易好多。

變化 2:Multi-currency(USD / HKD / RMB 客戶混合)

香港自由業者客源好多時分開 — 本地客戶收 HKD、日本 / 新加坡客戶收 USD、大陸客戶收 RMB。

變化 2 — 多幣值處理
(clients.csv 已經有 currency 欄)對於非 HKD 客戶:
Invoice 完全用客戶嘅幣值出(USD 客戶見到嘅係 USD 金額、唔好喺 invoice 度顯示 HKD 換算 — 會搞亂佢個 AP)
時薪用 clients.csv 入面客戶自己嘅幣值(即 ZEN 嘅收費係 150 USD,唔係 1170 HKD 換算)
但係 summary.md 入面我自己睇嗰個版本要:
每個客戶顯示原幣 + 用今日中銀牌價換算 HKD(標明匯率同日期)
Grand total 顯示「HKD equivalent: X」— 我用嚟同上個月比、同銀行戶口比
找數指示按幣值分:
HKD:本地過數資料
USD:Wise / SWIFT 資料
RMB:支付寶 / WeChat Pay 資料
由 ~/Documents/freelance/payment-instructions-[currency].md 各自匯入

呢個變化解決一個實際痛點:用單一幣值畀所有客戶會出事(USD 客戶收到一張 HKD invoice 要自己財務部換、好多時佢哋直接退返畀你)。

變化 3:加自動跟進催數(過期 >14 日自動起稿催收 email)

最辛苦嘅自由業工作唔係出 invoice,係催數。

變化 3 — 過期跟進草稿
每星期一早上 9 點額外跑:第一步:掃 ~/Documents/freelance/ar-tracker.csv
揾所有 status = 'sent' 而 (today - due_date) > 0 嘅 invoice
分三層:

層 1(過期 1–14 日):唔做嘢,但喺每週 summary 列出嚟
層 2(過期 15–30 日):草擬一封客氣嘅提醒 email(.eml 存喺 ~/Documents/freelance/followups/)
層 3(過期 31+ 日):草擬一封語氣堅定但仍然專業嘅跟進,加 cc 我自己一份做記錄


層 2 email 語氣:
「Hi [client],
Just a friendly reminder that invoice [number] (issued [date], due [date]) is still showing as outstanding on my end — total [amount][currency]. 可能已經 process 緊,唔該幫我確認返 status?
Thanks!
[我]」層 3 email 語氣:
「Hi [client],
Following up again on invoice [number], now [N] days past due. Could you please advise on payment status by end of this week? Happy to jump on a call if there's any issue I should know about.
Thanks for your help,
[我]」第二步:寄每週 summary 畀我
Subject:「AR Status — [N] 過期, HKD X outstanding」
Body:3 個層各自列出(invoice 編號 / 客戶 / 金額 / 過期日數 / draft 喺邊)
提醒:所有跟進 email 都係 draft,要我自己檢視 + send
絕對唔好自動 send 催收 email — 催數係關係嘅事,語氣一錯就爛咗個客戶。

催收係自由業者嘅隱形勞動 — 大部分人因為「唔好意思」拖到 60、90 日先出聲,最後傷感情又收唔到錢。Cowork 起晒稿,你淨係要決定「呢封 send 唔 send、要唔要改幾個字」就夠 — 心理門檻低好多。

拆解:點解會 work,同點解會爆

跟到上面就已經用得。下面呢段係畀**想由「試跑一次靚仔」做到「月月自動跑、月月數都啱」**嘅人——初學者可以跳過,唔影響你跟住做。

自動化出 invoice 最唔老實嘅地方係:第一次試跑一切正常,唔代表第三個月唔靜默出錯。呢個流程,實際會喺呢幾個位爆,你要預咗:

1. Toggl / Clockify API token 過期,Claude 照跑但出空 invoice API token 唔係永久有效,過期之後 Claude 抽唔到資料。問題係佢唔一定大叫「攞唔到」——有時候 API 返 empty,佢就照當「呢個月 0 小時」處理,略過個客戶或者出張空單。

2. Invoice 編號撞號或跳號,客戶財務部 reject 流程設計係「撳 send 先 promote last-invoice-number.txt」,但如果你有月份忘咗 promote(或者 promote 咗但跑咗兩次),下個月嘅號碼就會重複或者跳號。收緊 USD 嘅日本 / 新加坡客戶財務部對編號要求極嚴,撞號即刻 reject。

3. Toggl client 欄名同 clients.csv 一個字唔同,整個客戶入 untagged.csv Claude 係做字串對比 client 欄,唔係語意理解。你 clients.csv 寫「Acme Co Ltd」,但 Toggl 裡面個 client tag 打咗「Acme Co」,就係唔 match——全部時間紀錄倒入 untagged.csv,唔出 invoice。

4. adjustments 檔唔清走,上月嘅 one-off 折扣今月照套 你上月幫某客戶打咗 10% 折扣(因為交期延誤),寫入 adjustments-04.txt。流程係用 adjustments-[月份].txt,按月份揾,所以理論上唔會重複用。但如果你個 prompt 係「揾 ~/Documents/freelance/adjustments-*.txt 所有符合嘅檔案」——而唔係嚴格按月份——佢有機會連舊月份嘅都撈埋。

5. summary.md 嘅匯率係跑當日快照,唔係真正入帳日匯率 變化 2 入面,Claude 用「今日中銀牌價」換算 USD / RMB 嘅 HKD equivalent。問題係 invoice 出咗,客戶可能 NET 30 先過數,入帳當日匯率可以差好多——尤其 RMB 同 JPY 幅度大個月。

呢幾個位,就係「試跑一次靚仔」同「月月自動跑、月月數都啱」之間嘅距離。


Invoice 同催數係自由業入面最重覆、但又最影響現金流嘅工序。Cowork 嘅角色唔係搶你個最終決定權 — 係幫你由「諗起就唔想做」變返「檢視 + send」嘅 30 分鐘工。機械嘢留畀機械、判斷嘢留畀你,月月準時收錢嗰種安穩,先係自由業真正嘅自由。

文中工具 · 連結

睇完想同 Claude 一齊行一次?

撳一撳,就將成段 tutor 指示(連埋成篇文嘅內容)抄入剪貼簿。 貼入 Claude.ai 或 Claude Desktop,佢會用廣東話帶你一步一步行, 每步問你填關鍵位,最後畀返一個專為你情況寫嘅 prompt 帶走。

下期預告 · 相關情境
訂閱本副刊

每週日早上,
一道新菜送到你 inbox。

一篇 use case、一個香港情境、一個跟得到嘅做法。 冇 sell course、冇話你「再唔學就會失業」。

訂閱通道執緊緊
newsletter service 仲未接通。想第一時間收到新文章——
直接 email 我哋寫一句「訂閱」就得。

Email 「訂閱」畀我