小關實戰筆記GUAN'S NOTES
← 回到全部筆記

我怎麼用 Claude 把 CRM 自動化,一封信都不用自己寄

📅 2026年9月10日

上次有朋友問我 CRM 怎麼做自動化,這篇一次講完。 前半是我踩過來的故事,後半是你可以直接丟給 Claude Code 的指令。


一、我原本用的 CRM 停更了

我之前用一套 CRM 的體驗版,今年 4 月它停止更新了。 名單還在那邊,八千多個有 email 的客人,但我完全不知道誰該在什麼時候被叫一下

那時候我對 CRM 的理解很簡單:多久沒買,就發一封「好久不見」。 60 天沒買發一封,120 天再一封,180 天最後一封。大家不都這樣做嗎?

結果我請 Claude 先別急著寫信,先幫我回測一件事: 拿半年前的名單,看這些人後來到底有沒有回來買。

二、回測打臉我的第一個假設

數字出來我愣了一下。

只買過一次的人 之後 6 個月回購率
距上次購買 60 天內 13.7%
61~120 天 13.1%
121~180 天 14.0%
超過 180 天 13.0%

一條水平線。 不管他是上個月買的還是去年買的,回來的機率都是 13% 左右。

可是買過兩次以上的人就不一樣了:

回購過的人 之後 6 個月回購率
60 天內 45.3%
61~120 天 35.8%
121~180 天 29.6%

這條會掉。而且掉得很明顯。

所以「多久沒買」這個尺,對只買過一次的人根本量不出東西。 而只買過一次的人,佔我名單的 77%。 我以前的 CRM 花了七成力氣,在切一個不存在的差異。

三、CRM 不是廣播,是每個人家裡的冰箱

想通這件事之後我換了一個想法。

每個客人的冰箱大小不一樣、吃的速度不一樣。 有人一個月就清空一次冷凍庫,有人三個月才想起來還有一包在裡面。 CRM 該做的不是在固定的日子拿喇叭廣播,而是記住每個人冰箱空掉的時間,快空了才敲門。

所以現在每個回購客都有一個自己的「節奏」: 拿他過去幾次購買的平均間隔乘 1.5,最短 45 天、最長 120 天。 只買過一次的人沒節奏可算,用全站第一次到第二次的中位數 57 天。

超過自己的節奏還沒回來,才叫「鬆動」。 在節奏內的人,不要吵他。

四、六個分群,看到什麼做什麼

分群的主軸變成「買過幾次」,「多久沒買」只拿來判斷回購客有沒有超期。

分群 條件 我怎麼處理
新客 買 1 次,60 天內 出貨後 7 天寄一封「好不好吃」的評鑑信,其他不動
單次沉睡 買 1 次,超過 60 天 首購後 60 天寄一封推薦信,推他沒買過的。不急,反正機率都一樣
主力 買 2~3 次,節奏內 不吵
主力鬆動 買 2~3 次,超期 最急的一群,回購率正從 42% 往 32% 掉。寄關懷信
鐵粉 買 4 次以上,節奏內 不吵
鐵粉鬆動 買 4 次以上,超期 人數少、價值最高。不群發,人工一個一個聯絡

這張表是整套的心臟。信件、排程、後台儀表板全部掛在它上面。

五、三封信,各有一條不能破的規矩

信的文案我自己定稿,但每一封都有一條 Claude 幫我守住的鐵則。

評鑑信(出貨後 7 天) 絕對不放折扣碼。給了就變成花錢買評價,之後的分數全部失真。

關懷信(主力鬆動) 信裡要點出他自己的節奏。「你平常大概 45 天會回來一次,這次好像過了一點」。 這句話是我比一般群發信比較準的地方,也是他會感覺到「你有在記我」的地方。

推薦信(單次沉睡) 不能寫「好久不見」。回測已經證明,對這群人「多久」其實沒有意義,那句話就只是廢話而已。

還有一條是三封信共用的:第一批不給折扣。 我算過,免運對我沒用,因為 92% 的訂單本來就達免運門檻。 折扣的損益平衡點又很高,回購率要拉高三分之一才回本。 更重要的是,第一批就給折扣,我永遠不會知道信本身有沒有用。 所以分三組:不寄信的對照組、寄信不給折扣、寄信給折扣。

六、四道安全閘,這才是自動化敢開的原因

自動寄信最怕的不是沒效,是把客人惹毛。 一封被檢舉,整個寄信網域的信譽就開始掉。所以我請 Claude 在寄出去之前擋四道:

做法
退訂 退一次永遠不寄,跟我另一套挽回信系統共用同一份名單
冷卻 同一個人 60 天內最多一封。評鑑信例外,因為收它的人剛買完
硬退信 信箱不存在的,寄信服務回報一次就標記,以後不挑
對照組 固定留 10% 不寄。用 email 的雜湊值決定,不用亂數,不然每天挑出來的人不一樣就沒有對照可言

另外還有一條暖機曲線:新網域第一週每天最多 25 封,慢慢放到 100 封。 寄信服務看到新網域突然一天噴一千封,就當你是垃圾信。

七、踩過的四個坑

老實說中間有幾個坑,寫出來省你的時間。

退訂連結被掃描器點掉。 第一版做成「點連結就退訂」。結果有些企業信箱的安全閘道,會自動抓信裡每一個連結去掃一遍。 客人根本沒動作,就被掃描器退訂了。改成兩段式:點進去先看確認頁,按了按鈕才算數。

每天同步把寄信紀錄洗掉。 每天早上同步訂單時用的是「整份覆蓋」,階段一沒事,因為欄位全部從訂單算得出來。 階段二加了「上次寄信日」這個欄位,隔天就被洗掉,已經寄過的人又被挑中,冷卻期形同虛設。 改成「合併寫入」才對。

推薦資料永遠是空的。 Claude 把推薦邏輯寫好了,但沒有任何地方呼叫它,管線是斷的。 測試的時候看推薦信推不出任何商品才發現。所以每一段程式都要真的跑一次看輸出,不能只看它寫得對不對。

寄信 API 回 403。 第一次打寄信服務被擋,錯誤碼是 Cloudflare 的不是寄信服務的,原因是程式的 User-Agent 被當機器人。 換個工具打就過了。遇到這種先看錯誤碼是誰回的,不要先懷疑金鑰。

八、整套架構長這樣

你的購物車平台 API(撈訂單)
        ↓ 每天 08:00 自動同步近 10 天訂單
Firestore(每個客人一份輪廓:買幾次、最後買哪天、自己的節奏、下次該碰的日子)
        ↓ 每天 10:30 挑出今天該寄的人 → 過四道閘 → 照暖機上限寄
Resend(寄信服務,免費層每月 3,000 封、每天 100 封)
        ↓ 信裡帶一次性連結
回饋表單(免登入,填了直接進後台)
        ↓
後台儀表板(六群人數、RFM 九宮格、寄送紀錄、回饋)
成本 金額
Firebase(資料庫+排程+主機) 每天算一次統計約 8,000 次讀取,在免費額度內
Resend 免費層夠用(每天 100 封)
金鑰月租 每組約 NT$20,我只新建一組,其他跟既有系統共用
寄信網域 用自己網域開一個子網域,$0

整套一個月不到 NT$50。

九、整套流程怎麼跑(給要動手的人)

上面是故事,這裡是操作。整套分兩階段,中間一定停一次,名單看過才開寄信。

你要先準備的三樣東西

東西 怎麼確認
訂單拿得出來 購物車後台有 API、或能每天匯出 CSV、或你本來就登在 Google Sheet。至少要有:訂單號、email、日期、金額、商品名、狀態。沒有 email 這套做不了
Firebase 帳號 用 Google 帳號建專案,升 Blaze(要綁卡,但用量在免費額度內),設 NT$100 預算警示保險
Resend 寄信帳號 用公司信箱註冊,寄件網域用子網域 send.你的網域,三筆 DNS 加完顯示 Verified 才算

階段一:建名單,一封都不寄(約半天)

  1. Claude 先跑 node test.mjs 給你看規則沒錯(16 項:節奏、分群、對照組、暖機、挑人、回測)
  2. 接你的訂單來源,轉成統一格式,只留有效訂單
  3. 跑回測:拿半年前當觀察日,看六群之後 6 個月實際回購率。這張表就是你要不要寄信的依據
  4. 用你的資料重算「第 1 次到第 2 次」的中位數,換掉預設 57 天
  5. 建資料庫、每天 08:00 同步、後台看六群人數與名單
  6. 停下來:抽幾個人核對分群對不對

階段二:寄信(約半天)

  1. 三封信照骨架做,文案用你自己的口氣改
  2. 四道閘、暖機曲線、優先序全照範本
  3. 退訂兩段式+簽章+ Gmail 原生退訂鈕
  4. 部署後預設不寄,Claude 不代按開關
  5. 寄一封測試信給自己看排版
  6. 第一批 25 封你自己按,觀察 3~4 天沒退信沒檢舉,再跟 Claude 說「開寄信」

Skill 裝好之後,平常只要講這幾句

你想做的事 跟 Claude 說
看今天會寄給誰(試跑不寄) 「今天寄給誰」
真的開自動 「開寄信」(它會帶你自己改開關)
先停一下 「停寄信」
看六群人數 「看分群」
早上沒同步 「CRM 沒同步」
多一封信 「加一封 XX 信,對象是 XX 群」

十、Skill 包裡有什麼、怎麼裝

👇 Skill 整包放在訂閱者專屬站(訂閱者用本月密碼進去就能下載):

https://kuan-member.web.app/#/c/KqOssdG4wRHnmx5e77Ie

還沒訂閱的,訂閱說明在 這裡

分享版-CRM自動化教學/
├── 安裝說明.md                   ← 四關照著做(訂單來源/Firebase/Resend/丟指令)
├── 丟給Claude的建置指令.md        ← 兩階段指令,整段貼
├── SKILL.md                      ← crm-autopilot:流程、判讀 7 條、維護表、踩雷 10 條
└── 專案範本/
    ├── lib/crm-core.js           ← 分群/節奏/RFM/對照組/暖機/挑人/回測,純函式
    ├── test.mjs                  ← 16 項測試,直接跑
    └── mail-templates.example.md ← 三封信骨架+各自鐵則

裝法(解壓縮後在終端機貼):

mkdir -p ~/.claude/skills/crm-autopilot
cp -R ~/Downloads/分享版-CRM自動化教學/SKILL.md ~/Downloads/分享版-CRM自動化教學/專案範本 ~/.claude/skills/crm-autopilot/

重開 Claude Code,貼「階段一」指令就開始了。

先講清楚這包沒有的東西:沒有整套可部署的系統,因為每家購物車的訂單格式都不同,硬給一套你也接不上;也沒有我的信件原稿,文案要用你自己的口氣寫,客人才不會覺得是機器。 給的是規則層——回測過的參數全在 crm-core.js,你的 Claude 不用重新發明。

十一、你今天就可以丟給 Claude 的指令

我建議分兩階段,第一階段只建名單不寄信,先看分群對不對,再開寄信。

階段一:先建名單,一封都不寄

幫我建一套顧客回購追蹤系統,分兩階段做,這次只做第一階段:建名單、不寄任何信。

資料來源:<我的購物車平台 API,撈訂單的方式是 ⋯⋯>
技術:Firebase Hosting + Cloud Functions + Firestore,Google 登入+白名單後台

每天早上自動同步近 10 天訂單,替每個有 email 的客人建一份輪廓:
- 買過幾次、首購日、最後購買日、累計金額、最後買的商品
- 個人回購節奏 = 過去購買平均間隔 × 1.5,限制在 45~120 天之間;只買一次的用全站中位數
- 下次該聯絡日 = 最後購買日 + 節奏

分六群,主軸是「買過幾次」:
新客(1 次、60 天內)/單次沉睡(1 次、超過 60 天)/
主力(2~3 次、節奏內)/主力鬆動(2~3 次、超期)/
鐵粉(4 次以上、節奏內)/鐵粉鬆動(4 次以上、超期)

規矩:
- 個資最小化:不存地址、電話,只存 email 跟購買行為
- Firestore 的顧客資料前端只能讀不能寫,寫入只走後端
- 後台要有六群人數、每群名單可按「最久沒買」排序、匯出 Excel
- 先幫我用半年前的名單回測:各群之後 6 個月的實際回購率是多少,我要看數字再決定寄信策略
- 一步做完回報我再做下一步

階段二:開寄信(名單看過、分群確認對了再貼)

現在做第二階段:寄信。

三封信:評鑑信(出貨後 7 天)/關懷信(主力鬆動,信裡要點出他自己的節奏幾天)/推薦信(單次沉睡,首購後 60 天,推他沒買過的)
文案我會自己給你,你先做骨架。

寄信服務用 Resend,寄件網域用 send.<我的網域>。

四道安全閘,缺一不可:
① 退訂名單永久不寄,退訂連結要兩段式(點進去先確認頁,按了才退),信件標頭帶 List-Unsubscribe
② 同一人 60 天內最多一封,評鑑信不受此限
③ 硬退信自動標記,以後不挑
④ 固定 10% 對照組不寄,用 email 雜湊決定,不用亂數

暖機:第 1~3 天每天 25 封、第 4~7 天 50 封、第 2 週 80 封、之後 100 封。

規矩:
- 程式部署後預設「不寄」,要我手動打開開關才寄;所有寄信端點沒帶 confirm=1 就只是試跑
- 第一批 25 封我自己按,觀察 4 天沒退信沒檢舉再開自動
- 每天同步顧客資料要用「合併寫入」,不能整份覆蓋,否則寄信紀錄會被洗掉
- 寄送紀錄自己存一份,寄信服務只留 30 天
- 每一段寫完真的跑一次看輸出,不要只看程式碼

十二、最後講一句

以前我以為 CRM 是「多久沒買就發信」,做完才知道那是在對一群機率不會變的人喊話。

真正有差的,是記住每個人自己的節奏,在他快忘記你的時候,剛好出現一下。 不用多,一封就好。

其實你手上的名單,比你以為的更會說話,只是以前沒人幫你聽。

一個月 60 元

訂閱小關最新商業知識與資訊

  • 我每天在幹的事,你隔天就能用在自己公司
  • 可直接下載執行的 skill、範本、落地方案
  • 卡住可以提問,每週回答最多人想知道的
歡迎訂閱喲!→