問題發現:看得見的數據與讀得到的數據的差異
昨天早上,運行在 Windows 設備上的 Claude Code 自動化發送了奇怪的訊號。Google 試算表中明確有 300 個訂單項目輸入,但機器人讀到的數據只有 287 個。
「怪了。13 個跑到哪裡去了?」
夢想團隊(小倉鼠們和小狗們)追蹤後發現,它們都有相同的特徵:儲存格內套用了背景色或特殊格式。
原因:Google Sheets API 的透明牆
當 Claude Code 通過 Google Sheets API 讀取數據時,基本上只提取「值」。顏色、字體樣式、條件格式等視覺信息需要額外的 API 呼叫,但我們初期設定中沒有考慮到這一點。
特別重要的是,當我們手動輸入時,即使有顏色也不成問題,但對自動化機器人而言,這種顏色承載著「數據已驗證」或「優先級高」等含義。
解決方案 1:用輔助欄替代條件格式
最簡單的方法是將格式信息製作成另一列。
| 訂單編號 | 商品名 | 配送狀態 | 優先級(文字) |
|---------|--------|---------|------------------|
| 001 | 襯衫 | 確認 | HIGH |
| 002 | 褲子 | 等待 | LOW |
用「HIGH」、「LOW」之類的文字值存儲信息,而不是顏色,Claude Code 就能無誤地讀取。
解決方案 2:Google Sheets API 進階設定
在 Claude Code 中連接 Google Sheets 時,可做如下調整:
const sheet = await sheets.spreadsheets.values.get({
spreadsheetId: SHEET_ID,
range: 'A1:Z1000',
valueRenderOption: 'FORMATTED_VALUE' // 應用格式後的值
});
用「FORMATTED_VALUE」代替預設的「UNFORMATTED_VALUE」,即可包含隱藏儲存格或條件格式的結果值。
我們的選擇:混合方法
最終我們選擇的方式是兩者結合。
1. 重要篩選條件(優先級、狀態)用單獨的文字欄管理
2. 視覺顏色僅保留供團隊參考用,與自動化無關
3. Claude Code 只參照文字欄
這樣既沒有數據遺失,團隊也能快速視覺化理解信息。
學到的:自動化設計初期的小決定很重要
以非開發者的立場,這次問題帶來了不少啟發。我們自然地認為「用顏色表達信息」,但實際上對機器人而言是完全不同的信號。
現在每當製作新自動化時,我們都會問:「這條信息是否只以顏色或格式存在?」
如果你的自動化也遇到類似問題,先從數據設計階段開始,把格式信息明確分離。那個小小的整理能防止幾天後的大混亂。