~/blog/wordpress-user-behavior-auto-tagging-crm-automation.md
SEO 與數位行銷 · 2025 / 12 / 29

精準分眾行銷第一步:用 WordPress 程式碼捕捉使用者行為自動上標籤

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
精準分眾行銷第一步:用 WordPress 程式碼捕捉使用者行為自動上標籤
目錄 table-of-contents.md

分眾行銷的本質,其實是一張不斷更新的標籤表:誰看了定價頁、誰下載了白皮書、誰在購物車前猶豫了三次。這些行為 WordPress 全都看得到,只是預設沒有人把它記下來。這篇就來實作社群標籤自動化(Social Tagging Automation)使用者行為追蹤,用程式碼自動上標籤,讓行銷不再亂槍打鳥。

你是否曾經遇過這種情況?你的 CRM 裡躺著一萬個名單,但你完全不知道誰對「網站架設」感興趣,誰又是只來看「SEO 教學」的。結果你發了一封關於「Laravel 開發服務」的促銷信給所有人,然後開信率低到讓你懷疑人生,甚至被一堆人封鎖。

這就是典型的「亂槍打鳥」。

在 2025 年的現在,如果你的 WordPress 網站還只會被動地等使用者填表單告訴你他喜歡什麼,那你真的落伍了。真正的數位資產,應該要具備「讀心術」。這不是魔法,這是程式碼加上邏輯

今天這篇文章,我不講空泛的行銷理論,我要帶你從技術底層,用 WordPress 的 Hook 機制、AJAX 技術,配合外部 CRM(如 ActiveCampaign 或 HubSpot),打造一套「依據使用者行為自動貼上興趣標籤」的自動化系統。

為什麼你需要「行為標籤」而不是「靜態標籤」?

在深入程式碼之前,我們先釐清觀念。標籤(Tag)分為兩種:

  • 靜態標籤 (Explicit Tags): 使用者在表單勾選「我對網頁設計有興趣」。這是使用者「說」的。
  • 行為標籤 (Implicit/Behavioral Tags): 使用者連續看了 5 篇關於 WooCommerce 的文章,並在價格頁面停留了 3 分鐘。這是使用者「做」的。

身為工程師,我們都知道:使用者常說謊,但數據不會。

透過行為追蹤自動化,我們可以捕捉到那些「潛水」的高意圖使用者。例如,當某人從 Facebook 廣告點進來(社群來源),並且瀏覽了你的「企業方案」頁面,我們就該立刻給他貼上 Source: FacebookInterest: Enterprise 的標籤,並觸發自動化信件。

系統架構:WordPress + AJAX + CRM API

我們要實作的邏輯如下:

  1. 監聽端 (Front-end): 使用 JavaScript 在瀏覽器端監聽特定行為(如:頁面捲動深度、點擊特定按鈕、停留時間)。
  2. 傳送端 (Transport): 觸發行為後,透過 AJAX 將數據傳送到 WordPress 後端。
  3. 處理端 (Back-end): WordPress 接收數據,透過 API (或 Webhook) 將標籤資訊傳送給 CRM 或自動化工具 (如 n8n)。

Step 1: 前端監聽埋設 (JavaScript)

首先,我們需要在 WordPress 載入一段 JS。這裡我們模擬一個場景:當使用者點擊「索取報價」的按鈕,或者閱讀特定分類文章超過 30 秒時,觸發標籤。

請將以下程式碼加入你的 JavaScript 檔案中(記得要用 wp_enqueue_script 載入並使用 wp_localize_script 傳遞 nonce,這點安全性還是要有的):


(function($) {
    $(document).ready(function() {
        // 設定計時器,30秒後觸發
        setTimeout(function() {
            // 假設我們判斷這是一篇關於 SEO 的文章
            if ($('body').hasClass('category-seo')) {
                applyTag('Interest: SEO', 'Read 30s+');
            }
        }, 30000);

        // 監聽按鈕點擊
        $('.btn-get-quote').on('click', function() {
             applyTag('Action: Clicked Quote', 'High Intent');
        });

        function applyTag(tagName, note) {
            $.ajax({
                url: roam_vars.ajax_url, // 透過 wp_localize_script 傳過來的
                type: 'POST',
                data: {
                    action: 'roamer_apply_behavior_tag',
                    security: roam_vars.nonce,
                    tag: tagName,
                    note: note
                },
                success: function(response) {
                    console.log('Tag Applied:', response);
                }
            });
        }
    });
})(jQuery);

工程師碎碎念:這裡用 jQuery 是為了方便許多還在使用經典編輯器或舊佈景主題的讀者理解。如果你是用 Vue 或 React 開發 Headless WP,邏輯是一樣的,只是語法不同。

Step 2: 後端接收與處理 (PHP)

接下來,在 functions.php 或你的客製化外掛中,處理這個 AJAX請求。這裡有一個重點:不要把所有數據都塞在 WordPress 資料庫!

我看過太多專案把使用者行為紀錄寫進 wp_postmeta 或自訂資料表,結果資料庫幾個月就爆肥,網站變慢。最好的做法是透過 API 把這些「標籤」直接丟給 CRM 或 n8n。


add_action('wp_ajax_roamer_apply_behavior_tag', 'roamer_handle_behavior_tag');
add_action('wp_ajax_nopriv_roamer_apply_behavior_tag', 'roamer_handle_behavior_tag');

function roamer_handle_behavior_tag() {
    // 1. 安全性檢查
    check_ajax_referer('roamer_nonce_action', 'security');

    // 2. 獲取資料
    $tag = sanitize_text_field($_POST['tag']);
    $note = sanitize_text_field($_POST['note']);
    
    // 辨識使用者身份 (這裡假設使用者已登入,或是你有追蹤 Cookie ID)
    // 如果是未登入訪客,通常會記錄在 Cookie 或 LocalStorage,待他填表單時一併送出
    $user_id = get_current_user_id();
    
    if ($user_id) {
        $user_email = get_the_author_meta('user_email', $user_id);
        
        // 3. 呼叫外部 API (例如傳送給 n8n Webhook)
        $webhook_url = 'https://n8n.your-domain.com/webhook/apply-tag';
        
        $response = wp_remote_post($webhook_url, array(
            'body' => json_encode(array(
                'email' => $user_email,
                'tag'   => $tag,
                'source' => 'WordPress Behavior Tracking',
                'timestamp' => current_time('mysql')
            )),
            'headers' => array('Content-Type' => 'application/json')
        ));

        if (is_wp_error($response)) {
            wp_send_json_error('API connection failed');
        } else {
            wp_send_json_success('Tag sent to CRM');
        }
    } else {
        // 訪客處理邏輯:通常會存入 Cookie
        wp_send_json_success('Guest tracked locally');
    }

    wp_die();
}

Step 3: 自動化流程的中樞 (n8n 應用)

為什麼我在上面的 PHP 程式碼中是把資料丟給 n8n,而不是直接串接 HubSpot 或 Salesforce API?

這是一個系統架構的思維。如果在 WordPress 裡面寫死 CRM 的 API 串接,萬一你要換 CRM,或者 API 改版,你就得改 PHP 程式碼並重新部署。透過 n8n 這種自動化工具作為「中介層」,你可以隨時在圖形化介面修改邏輯。

n8n 的 Workflow 設計思路:

  1. Webhook Trigger: 接收來自 WordPress 的 JSON 數據。
  2. 資料清洗: 檢查標籤名稱是否標準化(例如將 "SEO Article" 統一為 "Interest: SEO")。
  3. CRM 更新: 呼叫 HubSpot/ActiveCampaign API,透過 Email 找到聯絡人,並「Add Tag」。
  4. 社群分眾 (Social Segmentation): 如果標籤包含 Source: Facebook,還可以自動將該用戶加入 Facebook 廣告的自訂受眾 (Custom Audience),這就是進階的自動化閉環!

進階技巧:UTM 參數的自動標籤化

除了站內行為,最常見的需求就是依據使用者「從哪裡來」進行標籤化。這對於計算 ROI 至關重要。

我們可以寫一個簡單的 PHP 函式,在使用者第一次進站時捕捉 URL 中的 UTM 參數,並存入 Cookie。


function roamer_capture_utm_source() {
    if (isset($_GET['utm_source']) && !isset($_COOKIE['roamer_source'])) {
        $source = sanitize_text_field($_GET['utm_source']);
        // Cookie 有效期設為 30 天
        setcookie('roamer_source', $source, time() + 3600 * 24 * 30, '/', COOKIE_DOMAIN);
    }
}
add_action('init', 'roamer_capture_utm_source');

當使用者最後填寫「聯絡我們」表單時,你可以透過隱藏欄位 (Hidden Field) 讀取這個 Cookie 值,一併送入 CRM。這樣你就知道:「這個客戶是 20 天前從 LinkedIn 廣告進來的,期間看了 3 篇文章,最後成交。」

工程師的真心話:不要過度追蹤

雖然技術上我們可以追蹤使用者的每一個滑鼠移動,但我建議要有「數據最小化」的思維。只追蹤對商業決策有幫助的關鍵行為 (Key Events)。過多的標籤只會讓你的 CRM 變成垃圾場,讓業務人員眼花撩亂。

好的標籤策略應該是:

  • 高意圖 (High Intent): 訪問價格頁、下載白皮書、加入購物車。
  • 興趣分眾 (Interest Segment): 瀏覽特定分類文章、點擊特定主題 Banner。
  • 來源歸因 (Attribution): UTM Source, Referrer。

這套系統建立起來後,你的 WordPress 就不再只是一個展示型網站,而是一個 24 小時運作的自動化業務員。

延伸閱讀

如果你想深入了解如何將這些數據轉化為具體的行銷策略或技術細節,推薦你閱讀以下幾篇文章:

想為你的企業打造一套能夠自動獵客、自動貼標籤的 WordPress 系統嗎?別讓數據從指縫中流失,現在就聯繫我們!

// FAQ

常見問題

行為標籤和靜態標籤有什麼差別?
靜態標籤(Explicit Tags)是使用者主動勾選說出來的興趣,例如表單上選「我對網頁設計有興趣」。行為標籤(Behavioral Tags)則是根據使用者實際做了什麼自動推斷,例如連續看了多篇 WooCommerce 文章、在價格頁停留數分鐘。行為標籤能捕捉那些不會主動填表、卻有高意圖的潛水使用者。
WordPress 自動化行為標籤的系統架構怎麼運作?
整套流程分三端:前端用 JavaScript 在瀏覽器監聽特定行為(如捲動深度、點擊按鈕、停留時間);觸發後透過 AJAX 把數據傳到 WordPress 後端;後端接收後再透過 API 或 Webhook 把標籤資訊送給 CRM 或自動化工具(如 n8n、ActiveCampaign、HubSpot)。
使用者行為紀錄該存進 WordPress 資料庫嗎?
不建議把大量行為數據直接塞進 wp_postmeta 或自訂資料表,否則資料庫幾個月就會爆肥、拖慢網站。較好的做法是後端接收 AJAX 請求後,把標籤直接透過 API 丟給 CRM 或 n8n 這類外部工具處理與儲存。未登入訪客的行為則通常先記錄在 Cookie 或 LocalStorage,待其填表單時一併送出。
為什麼建議用 n8n 當中介層,而不是在 WordPress 直接串接 CRM?
若把 CRM 的 API 串接寫死在 WordPress 的 PHP 程式碼裡,一旦要換 CRM 或 API 改版,就得改程式碼並重新部署。透過 n8n 這類自動化工具作為中介層,可以隨時在圖形化介面修改邏輯,例如做資料清洗(標準化標籤名稱)、用 Email 找到聯絡人後加標籤,甚至把帶有特定來源標籤的用戶自動加入廣告自訂受眾。
用 AJAX 傳送行為標籤資料時要注意什麼安全性?
前端載入 JS 時應使用 wp_enqueue_script,並透過 wp_localize_script 傳遞 nonce;後端處理 AJAX 請求時要先用 check_ajax_referer 做 nonce 驗證,再以 sanitize_text_field 等函式清洗輸入資料,避免未經驗證或未清洗的資料進入後續流程。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
// final.exec()

準備好讓你的網站開始為你工作了嗎?