業績不是靠拜拜!2026 自建「AI 銷售預測模型」實戰:結合 CRM 數據與 Python 演算法的技術指南
☰ 目錄 table-of-contents.md
老闆要的從來不是「我覺得下個月會成長 10%」這種感覺,而是有數據支撐的預測。與其在 Excel 拉一條趨勢線碰運氣,不如把 CRM 裡躺著的歷史成交資料餵給 Python 演算法,自建一套 AI 銷售預測模型。這篇從資料清洗、特徵工程到模型選擇,把整條技術路線完整走一遍。
過去幾年,隨著 Google Antigravity 和各種 Agentic AI 的普及,技術門檻已經大幅降低。今天這篇文章,我不談虛無縹緲的商業策略,我們要來點硬核的:如何利用 WordPress (WooCommerce) 累積的交易數據,結合 CRM 的客戶行為標籤,打造一個屬於企業私有的「AI 銷售預測模型」。
這不是魔法,這是統計學加上算力的暴力美學。喝口咖啡,我們開始。
為什麼你需要「銷售預測模型」而非「銷售報表」?
很多客戶(甚至是一些資淺的 PM)常把這兩者搞混。報表是「後照鏡」,告訴你過去發生了什麼;模型是「擋風玻璃」,告訴你前面有沒有坑,或是哪個彎道該加速。
在 2026 年的現在,一個合格的銷售預測模型 (Sales Prediction Model) 必須具備以下特徵:
- 多維度輸入:不能只看歷史訂單金額,還要把 CRM 中的「客戶活躍度」、「開信率」、「網頁停留時間」甚至「總體經濟指標」納入考量。
- 季節性調整:自動識別雙 11、黑色星期五或淡季的波動,而不是傻傻地做線性回歸。
- 動態修正:模型需要每天根據新進來的數據(Data Ingestion)自我校正權重。
架構設計:從 WordPress 到 AI 推論引擎
我們不走彎路,直接上架構圖的概念。要實現這個功能,我們通常採用 ELT (Extract, Load, Transform) 流程:
- 資料源 (Data Source): WordPress 資料庫 (WooCommerce 訂單表) + CRM 系統 (HubSpot/Salesforce 或自建 CRM)。
- 中轉站 (Middleware): 使用 Laravel 或 Python (FastAPI) 建立 API 介面,清洗髒數據。
- 預測核心 (AI Core): 使用 Python (Prophet, XGBoost, 或 LSTM) 進行訓練與推論。
- 視覺化 (Dashboard): 將預測結果回傳至 WordPress 後台或獨立的 BI 儀表板。
第一步:清洗並提取關鍵特徵 (Feature Engineering)
垃圾進,垃圾出 (Garbage In, Garbage Out) 是 AI 界的鐵律。在 WordPress 中,訂單資料分散在 wp_posts 和 wp_postmeta,直接丟給 AI 會跑死人。我們需要先用 SQL 或 PHP 整理出「特徵值」。
以下是一個 PHP 範例,用於提取「每日銷售額」與「活躍會員數」作為訓練數據:
/**
* 提取每日銷售數據供 AI 模型訓練使用
*
* @return array JSON 格式的訓練數據
*/
function eric_extract_sales_features() {
global $wpdb;
// 查詢過去 365 天的日銷售總額
$query = "
SELECT
DATE(p.post_date) as ds,
SUM(pm.meta_value) as y
FROM {$wpdb->prefix}posts p
JOIN {$wpdb->prefix}postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'shop_order'
AND p.post_status IN ('wc-completed', 'wc-processing')
AND pm.meta_key = '_order_total'
AND p.post_date >= DATE_SUB(NOW(), INTERVAL 1 YEAR)
GROUP BY DATE(p.post_date)
ORDER BY ds ASC
";
$results = $wpdb->get_results($query, ARRAY_A);
if (empty($results)) {
return new WP_Error('no_data', '沒有足夠的歷史數據進行訓練');
}
// 這裡通常還會結合 CRM API 抓取當日的 Lead 數量,這裡先省略
return rest_ensure_response($results);
}
// 註冊一個 REST API 端點供 Python 腳本呼叫
add_action('rest_api_init', function () {
register_rest_route('roamer-ai/v1', '/training-data', array(
'methods' => 'GET',
'callback' => 'eric_extract_sales_features',
'permission_callback' => function () {
return current_user_can('manage_options'); // 安全第一,記得加驗證
}
));
});
第二步:構建預測模型 (Python 實戰)
拿到數據後,我們要把它餵給模型。在 2026 年,雖然 LLM (大型語言模型) 很強,但處理純數值序列預測 (Time Series Forecasting),傳統的強演算法如 Facebook Prophet (雖然老但好用) 或基於 Transformer 的 TimeGPT 依然是性價比最高的選擇。
這裡我們用 Python 寫一個簡單的微服務腳本,模擬接收數據並回傳預測值:
import pandas as pd
from prophet import Prophet
import requests
import json
# 1. 從 WordPress API 獲取數據
wp_api_url = "https://your-site.com/wp-json/roamer-ai/v1/training-data"
response = requests.get(wp_api_url, auth=('admin', 'application_password'))
data = response.json()
# 2. 轉換為 DataFrame
df = pd.DataFrame(data)
df['ds'] = pd.to_datetime(df['ds'])
df['y'] = pd.to_numeric(df['y'])
# 3. 建立 Prophet 模型 (加入假期效應是關鍵)
# Eric 小囉嗦:台灣的假期跟國外不同,記得自定義 holiday dataframe
m = Prophet(daily_seasonality=True, yearly_seasonality=True)
m.fit(df)
# 4. 預測未來 30 天
future = m.make_future_dataframe(periods=30)
forecast = m.predict(future)
# 5. 提取預測結果
prediction = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(30)
# 將結果轉為 JSON 準備回傳給 WordPress
result_json = prediction.to_json(orient='records', date_format='iso')
print("預測完成,準備寫入資料庫...")
# 實際應用中,這裡會透過 POST 請求把預測值傳回 WordPress 儲存
這段程式碼的核心在於利用 Prophet 處理季節性波動。很多電商網站的流量在週末會下降,週一回升,或者每個月初發薪水時會有一波高峰,這些都是 AI 能自動捕捉的模式。
結合 CRM 數據:讓預測更精準
單純看歷史訂單有一個致命傷:它無法預測「新客」帶來的爆發。這就是為什麼我們必須引入 CRM 數據。
想像一下,你的 CRM 顯示上週「新增潛在客戶 (Leads)」暴增了 50%,但訂單還沒進來。傳統模型會預測下週業績持平,但加入 CRM 變數的模型會知道:「喔!這批 Leads 根據過往轉換率,預計在 7 天後會轉化為訂單。」
在技術實作上,我們會在上述的 Python DataFrame 中加入額外的 Regressor (回歸量):
marketing_spend(廣告投放金額)new_leads_count(CRM 新增名單數)email_open_rate(行銷信件開信率)
這就是「多變量時間序列預測」,也是企業級預測與路邊攤算命的差別。
2026 年的趨勢:Agentic Workflow (代理人工作流)
到了 2026 年,我們不只滿足於「看到數字」。最新的趨勢是結合 Agentic AI (代理人 AI)。當模型預測「下週二業績可能下滑 20%」時,系統不只是顯示紅字,而是會觸發一個 Agent:
- 診斷原因: Agent 自動分析是不是因為沒有行銷活動?還是季節性淡季?
- 提出解法: Agent 建議:「根據庫存,建議對『沉睡客戶』發送 9 折優惠券。」
- 自動執行: 經主管確認後,Agent 直接呼叫 WooCommerce API 生成優惠券,並透過 LINE OA 推送。
這才叫做自動化,這才叫做數位轉型。
Eric 的工程師小囉嗦
老實說,建立模型最難的永遠不是寫 Code,而是「資料清洗」。我見過太多客戶的 CRM 裡電話號碼格式亂七八糟,有的有 +886,有的有 09,有的還有破折號。如果你的基礎數據是髒的,就算用了 Google 最新的 Gemini 3.0 模型,跑出來的結果也只是精美的垃圾。
所以,在想著預測未來之前,先回頭看看你的資料庫,把它掃乾淨吧。
延伸閱讀
如果你對數據處理與自動化有興趣,建議參考以下幾篇深度技術文章,這對於建立準確的模型至關重要:
常見問題
銷售預測模型和銷售報表有什麼差別?
自建 AI 銷售預測模型的整體架構長怎樣?
預測銷售時為什麼要用 Facebook Prophet 之類的時間序列模型,而不是直接用 LLM?
為什麼只看歷史訂單的預測不夠準?該如何改善?
提供給 AI 訓練的 WordPress 訂單資料該如何準備?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。