活動名單還在用 Excel 手動分?用 Webhook 打造 WordPress 全自動『業務派單』系統
☰ 目錄 table-of-contents.md
展覽結束的隔天早上,行銷同事把報名資料匯出成 .csv,整個團隊圍著一台電腦在 Excel 裡奮戰:手動清理、分類,再一筆一筆複製貼上,用 Email 通知業務「這個客戶交給你囉」。這套流程跑一次要半天,名單冷掉的速度卻是以小時計。其實只要在 WordPress 表單上掛一條 Webhook,就能讓系統在訪客送出表單的瞬間,自動把名單派給對的業務。
天啊,這流程光是用想的,我的工程師魂就在吶喊了。這不只是浪費時間,更是潛在的災難。手動操作,意味著會有打錯字、分錯人、甚至漏掉黃金潛在客戶的風險。商機,往往就在這一來一往的延遲與失誤中溜走了。
今天,我就要來當一次「流程終結者」。我們要徹底告別這種石器時代的作法,用工程師的思維,打造一個強韌、全自動的「活動名單自動分流系統」。我們會利用 WordPress 網站現有的工具,搭配 Webhook 這項神器,建立一個 24 小時待命、絕不出錯的業務派單機器人。準備好了嗎?泡杯咖啡,我們開始動手。
系統架構的思考:為什麼不單純用一個外掛搞定?
很多人的第一反應可能是:「這功能,去找個 WordPress 外掛不就好了?」嗯,這問題問得很好,但也暴露了「外掛思維」的侷限性。身為一個囉嗦的工程師,我得先跟你聊聊架構。
市面上確實有些 CRM 外掛或表單外掛宣稱能做到這點,但它們通常有幾個問題:
- 缺乏彈性: 你的分派邏輯可能很複雜,例如「A 產品的線索給甲業務團隊」、「台北地區的線索給乙業務」,單一外掛很難滿足所有客製化規則。
- 廠商綁定: 你會被綁死在某個 CRM 系統或特定服務上。未來想換系統?那整套流程可能就要打掉重練。
- 效能與穩定性: 把所有邏輯都塞在 WordPress 裡,當流量一大、邏輯一複雜,很容易拖垮網站效能。而且,如果第三方 CRM 的 API 暫時掛了,外掛的錯誤處理機制不夠好的話,資料可能就直接遺失了。
所以,我們這次要採用的是一種更專業、更具擴展性的「解耦」架構。我們的黃金組合是:
- WordPress 表單: 作為資料的「訊號發射器」。它只負責一件事:收集報名資料,然後用最快的速度把資料射出去。
- 自動化中介層 (n8n): 這是我們系統的「大腦與指揮中心」。它接收來自 WordPress 的訊號,執行所有複雜的分派邏輯,然後再把指令傳遞下去。
- 目標應用 (CRM/Email/Slack): 作為指令的「接收與執行者」。例如,在 CRM 建立客戶資料、發送 Email 通知業務等。
這三者之間溝通的橋樑,就是我們今天的主角—— Webhook。你可以把 Webhook 想像成一個專屬的電話號碼,WordPress 一有新報名,就立刻撥打這個號碼,把資料即時「說」給我們的指揮中心聽。這種架構,乾淨、高效,而且未來不管你想換哪個 CRM,或增加什麼新的通知方式,都只需要調整指揮中心的邏輯,WordPress 端完全不用動,這才是可維護的系統啊!
第一步:架設 WordPress 的「訊號發射器」
首先,我們得讓 WordPress 具備發射 Webhook 訊號的能力。這通常需要一個功能強大的表單外掛來達成。
挑選合適的表單外掛
市面上有許多選擇,關鍵在於它是否「原生支援」或可以輕易擴充 Webhook 功能。以下是我的幾個建議:
- Gravity Forms: 這是我的首選,雖然是付費外掛,但它的 Webhooks Add-On 非常穩定且強大,幾乎是業界標準。
- Fluent Forms: 近年來的新星,功能完整,免費版就提供 Webhook 功能,CP 值很高。
- Contact Form 7: 雖然本身不直接支援,但可以透過一些第三方外掛(例如 'Contact Form 7 - Webhook')來補強。不過穩定性需要多方測試。
無論你選擇哪一個,設定的邏輯都大同小異。你需要找到表單設定中的「Webhook」或「整合」選項。你會看到一個欄位,要求你輸入「Webhook URL」。這個 URL 先留空,它是我們下一步要從指揮中心那裡拿到的。
第二步:用 n8n 打造「自動化指揮中心」
接下來,我們要建立系統的大腦。這裡我們使用 n8n 這個工具。它是一個開源、可自架設的低程式碼自動化平台,對於想完全掌控資料流與邏輯的工程師來說,簡直是夢幻逸品。(當然,你也可以用 Zapier 或 Make,但 n8n 帶來的控制權與自由度是無可比擬的。)
1. 建立 Webhook 監聽節點
在 n8n 中,建立一個新的工作流 (Workflow),第一個節點就是 `Webhook` 節點。建立後,n8n 會自動產生一個「Test URL」。這個 URL 就是我們夢寐以求的專屬電話號碼!
把它複製下來,回到你的 WordPress 表單設定,貼到剛剛那個「Webhook URL」欄位裡,然後儲存。接著,回到 n8n,點擊「Listen for test event」,然後去你的網站前台,實際送出一次表單報名。
成功的話,你會在 n8n 的 Webhook 節點看到剛剛送出的表單資料,被完整地捕捉下來了!這一步非常關鍵,因為我們拿到了資料的「結構」,後續才能針對這些欄位做處理。
2. 撰寫核心分派邏輯:輪流派單 (Round Robin)
現在資料進來了,我們要決定把它分給誰。最常見也最公平的,就是「輪流派單」。假設你有三位業務:A、B、C。第一筆資料給 A,第二筆給 B,第三筆給 C,第四筆再輪回給 A。這在程式中可以用一個計數器和取餘數 (%) 運算輕鬆實現。
在 n8n 中,我們可以在 Webhook 節點後加上一個 `Function` 節點,用幾行 JavaScript 來實現這個邏輯。這也是 n8n 比起其他平台更受開發者喜愛的地方——需要的時候,隨時可以跳進去寫 Code!
在 `Function` 節點中,貼上以下程式碼:
// 這裡我們定義一個業務團隊的列表
// 在真實應用中,這個列表可以來自 Google Sheets、資料庫,或是直接寫死在這裡
const salesReps = [
{ name: '王牌業務 A', email: 'sales-a@roamer-tech.com', slackId: 'U0XXXXXX1' },
{ name: '銷售戰將 B', email: 'sales-b@roamer-tech.com', slackId: 'U0XXXXXX2' },
{ name: '市場開拓 C', email: 'sales-c@roamer-tech.com', slackId: 'U0XXXXXX3' }
];
// n8n 的 $runIndex 會記錄這是工作流第幾次執行 (從 0 開始)
// 這是一個完美的天然計數器!
const runIndex = $runIndex;
// 使用取餘數運算子 (%) 來決定這次該輪到誰
const assignedIndex = runIndex % salesReps.length;
const assignedRep = salesReps[assignedIndex];
// 將分派結果附加到原始資料上,方便後續節點使用
// 注意:$item 是 n8n 中代表單筆資料的物件
$item.assigned_rep = assignedRep;
// 回傳處理過的資料
return $item;
這段程式碼做的事情很單純:定義一個業務列表,然後用 n8n 內建的執行次數 (`$runIndex`) 來當計數器,算出這次該輪到列表中的哪一位業務,最後把這位業務的資訊(姓名、Email 等)附加到我們收到的資料上。
第三步:將指令傳送到最終目的地
大腦已經做出了決策,現在就要執行命令了。
1. 在 CRM 中建立線索
在 `Function` 節點後,加上一個 `HTTP Request` 節點(或者如果 n8n 有你 CRM 的專屬節點,如 HubSpot, Salesforce,就直接用)。
- URL: 填入你的 CRM 用來「新增聯絡人/線索」的 API 端點 (Endpoint)。
- Authentication: 設定 API 金鑰或 OAuth 認證。千萬記得要把金鑰存在 n8n 的 Credentials 裡,不要直接寫在節點上!這是資安基本功。
- Body: 這裡就是資料對應的地方。你需要把從 Webhook 收到的報名資料(如姓名、電話、公司),以及我們剛剛在 `Function` 節點中附加的 `assigned_rep`,對應到 CRM API 要求的 JSON 格式裡。例如,把 `assigned_rep.email` 對應到 CRM 裡的「負責人」欄位。
2. 即時通知相關業務
光把資料丟進 CRM 還不夠,我們要主動出擊!在 `HTTP Request` 節點之後,可以並行新增一個 `Slack` 或 `Email` 節點。
在訊息內容中,你可以動態地插入資料,打造一則個人化的通知。例如,在 Slack 節點中設定訊息:
「嗨 @{{ $item.assigned_rep.name }}!來自【{{ $json.body.event_name }}】活動的新線索來囉!客戶姓名:{{ $json.body.customer_name }},聯絡電話:{{ $json.body.phone }}。請立即跟進!」
這樣一來,業務員在手機上就能立刻收到通知,點開就能看到客戶資訊,跟進速度比對手快上好幾倍!
最終加固:一個工程師的偏執
系統上線前,我總會多想一步:如果出錯了怎麼辦?例如,CRM 的伺服器剛好在維護,API 呼叫失敗了,那這筆寶貴的客戶資料不就人間蒸發了?
這就是專業系統與玩具系統的差別。在 n8n 中,你可以在節點的「Settings」中設定「Retry on Fail」,讓它在失敗時自動重試幾次。更進一步,你可以設定一個專門的「Error Workflow」,當重試幾次都失敗後,自動觸發另一個流程,例如發一封緊急通知給系統管理員,並把失敗的資料記錄到一個備用的 Google Sheets,確保 100% 不漏單。
看到這裡,你是不是也覺得手癢了?從一團亂麻的 Excel 表格,到一個井然有序、全自動化的派單系統,這中間的轉變,不僅是效率的提升,更是企業數位化成熟度的體現。這套架構的彈性極高,你可以輕易地擴充更複雜的規則,例如根據報名者填寫的「預算」欄位,自動將高預算的客戶指派給最資深的業務。這才是數據驅動的真正威力!
延伸閱讀
- 2026 企業 CRM 選型指南:HubSpot、Salesforce 與客製化系統完整比較
- 活動名單還在手動 Key-in?揭秘 WordPress + CRM 自動分流術,讓你的業務線索『秒速』就位!
- 告別人肉複製貼上!n8n 聯手 Google Sheets,打造 WordPress 表單自動化印鈔機
- 別再用「貴賓」稱呼每個人!WordPress + CRM 終極聯動,打造看人下菜碟的『智慧文案』系統
讓我們幫您打造自動化流程
覺得自己動手太複雜,或是有更進階的客製化需求嗎?浪花科技專精於企業級的 WordPress 開發與自動化流程設計。我們能為您打造穩定、高效、可擴展的系統,讓您的團隊專注在更有價值的事情上。立即與我們聯繫,讓浪花科技的工程師團隊,成為您數位轉型的最佳夥伴!
常見問題
為什麼自動派單系統建議用解耦架構,而不是單一 WordPress 外掛?
Webhook 在自動派單系統裡扮演什麼角色?
哪些 WordPress 表單外掛支援 Webhook?
如何用 n8n 實現業務輪流派單(Round Robin)?
串接 CRM API 時,API 金鑰應該放在哪裡才安全?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。