辦活動累得半死,名單還在手動 Key?2026 WordPress「活動名單自動分流」實戰:從報名秒匯入到業務自動指派的技術解方

2026/02/23 | API 串接與自動化, CRM 應用, WP 開發技巧, 技術教學資源

辦活動累得半死,名單還在手動 Key?WordPress「活動名單自動分流」實戰

我是 Eric,浪花科技的資深工程師。如果你跟我們公司那些行銷夥伴一樣,每次辦完線上研討會或實體活動,第一件事就是打開後台,下載 CSV,然後開始痛苦地手動複製貼上,把名單分給業務部門,那你真的該停下來看看這篇文章了。

現在都已經 2026 年了,AI Agent 都能幫你寫 Code 了,為什麼你的「活動名單自動分流」還停留在石器時代?

在這篇文章中,我不會跟你談什麼空泛的數位轉型,我要直接教你怎麼用 WordPress 結合 Webhook 和一點點 PHP 魔法(或是 n8n),實現「活動名單自動分流:報名資料自動匯入並指派業務」的自動化流程。讓你的業務在客戶按下「送出」報名表的 3 秒內,就能收到通知並開始跟進。

為什麼你需要自動分流?不只是為了偷懶

工程師常被說懶,但我們的懶是為了效率。在活動行銷的戰場上,速度就是成交率。根據 2025 年的銷售數據統計,潛在客戶在填寫表單後的 5 分鐘內接到電話,成交機率是 30 分鐘後的 21 倍。是的,你沒看錯,是 21 倍。

如果你的流程是:

  • 使用者填單。
  • 行銷人員每天下午 5 點下載 Excel。
  • 行銷人員手動整理,依照地區或產品分配給業務 A、B、C。
  • 寄 Email 給業務。
  • 業務隔天早上看到信才聯絡。

恭喜你,你已經完美錯過了黃金成交期。你的客戶早就忘記他填過什麼,甚至已經跟別家廠商簽約了。

技術架構:如何實現報名資料自動匯入並指派業務?

要達成這個目標,我們通常有兩種路徑:

  1. 純代碼派 (Code-First): 直接在 WordPress 內寫 Hook,根據邏輯分配後,呼叫 CRM API。
  2. 低代碼派 (Low-Code): 使用 Webhook 將資料拋送到中介平台 (如 n8n),在那裡處理分流邏輯。

身為工程師,我兩種都愛,但為了系統的穩定性與可維護性,針對複雜的「輪替 (Round-Robin)」邏輯,我建議在 WordPress 端就先處理好「指派」的標記,再送出去。

實戰場景:業務輪替 (Round-Robin) 分派

假設你有 3 位業務:Alice, Bob, Charlie。我們希望報名名單依序分給他們,確保公平。如果在 Excel 裡做,你要算得頭昏眼花;但在 WordPress 裡,這只是一個簡單的計數器。

實作教學:使用 PHP Hook 進行自動指派

這裡以最常見的表單外掛(如 Gravity Forms 或 WS Form)為例。我們不需要裝一堆肥大的 CRM 外掛,只需要一段精簡的 PHP 程式碼。

請將以下程式碼加入你的子佈景主題的 functions.php 或使用 Code Snippets 外掛:

1. 建立業務輪替邏輯


// 定義業務名單與 Webhook URL
function get_sales_team_config() {
    return [
        'team' => ['Alice', 'Bob', 'Charlie'],
        'crm_webhook' => 'https://your-n8n-or-crm-endpoint.com/webhook/lead'
    ];
}

// 核心邏輯:取得下一位業務 (Round-Robin)
function get_next_sales_rep() {
    $config = get_sales_team_config();
    $team = $config['team'];
    
    // 從資料庫取得上一次指派的索引值 (使用 Option API)
    $last_index = get_option('roamer_last_sales_index', -1);
    
    // 計算下一位
    $next_index = ($last_index + 1) % count($team);
    
    // 更新索引值
    update_option('roamer_last_sales_index', $next_index);
    
    return $team[$next_index];
}

2. 綁定表單提交動作

這段程式碼會在表單送出後觸發,自動將「活動名單自動分流」的結果寫入,並發送給外部系統。


// 以 Gravity Forms 為例 (gform_after_submission)
add_action('gform_after_submission', 'roamer_auto_assign_leads', 10, 2);

function roamer_auto_assign_leads($entry, $form) {
    // 假設這是活動報名表單 (Form ID = 5)
    if ($form['id'] != 5) {
        return;
    }

    // 1. 取得指派業務
    $assigned_sales = get_next_sales_rep();

    // 2. 準備要傳送的資料
    $payload = [
        'event_name'    => $form['title'],
        'lead_name'     => rgar($entry, '1.3') . ' ' . rgar($entry, '1.6'), // 假設欄位 ID
        'lead_email'    => rgar($entry, '2'),
        'lead_phone'    => rgar($entry, '3'),
        'assigned_to'   => $assigned_sales, // 這裡就是自動分流的關鍵
        'submitted_at'  => date('Y-m-d H:i:s'),
        'source'        => 'WordPress_Event_Form'
    ];

    // 3. 發送 Webhook 到 CRM 或 n8n
    $config = get_sales_team_config();
    $response = wp_remote_post($config['crm_webhook'], [
        'body'    => json_encode($payload),
        'headers' => ['Content-Type' => 'application/json'],
        'timeout' => 5,
        'blocking' => false // 非阻塞,不影響使用者體驗
    ]);

    // (選用) 可以在這裡加入 Log 紀錄以便除錯
    if (is_wp_error($response)) {
        error_log('Lead Assignment Error: ' . $response->get_error_message());
    }
}

這段程式碼做了三件事:

  1. 狀態保存: 記住上一次分給誰,確保下一次分給不同人。
  2. 資料清洗: 抓取表單資料,整理成乾淨的 JSON 格式。
  3. 即時傳送: 使用 wp_remote_post 將資料丟出去,並且設定 blocking => false,這樣使用者按下送出後不會感覺到延遲。

進階應用:依照條件分流 (Conditional Logic)

當然,現實世界往往比輪替更複雜。你可能需要根據客戶填寫的「預算」或「地區」來分派。

例如,如果是「北區」的活動,只分給北區業務;預算超過 100 萬的,直接分給王牌業務 Eric (笑)。


function get_sales_by_region($region) {
    $north_team = ['Alice', 'Bob'];
    $south_team = ['Charlie', 'David'];
    
    if ($region === 'North') {
        // 這裡可以再加入該區域的 Round-Robin 邏輯
        return $north_team[array_rand($north_team)];
    } else {
        return $south_team[array_rand($south_team)];
    }
}

把這個邏輯替換掉上面的 get_next_sales_rep(),你就完成了一套智慧化的「報名資料自動匯入並指派業務」系統。

串接後的最後一哩路:通知

資料送出去了,業務要怎麼知道?這就是 n8nZapier 登場的時候了。你的 Webhook 接收端可以設定為:

  • Slack/LINE Notify: 機器人直接標記業務:「@Alice 新的活動名單進來了,客戶是王先生,電話 0912…」
  • CRM 建立: 自動在 HubSpot 或 Salesforce 建立 Deal,並將 Owner 設為你剛剛指派的人。
  • 發送簡訊: 如果是超級 VIP 客戶,直接發簡訊叫業務起床。

資深工程師的小囉嗦:注意事項

雖然自動化很爽,但有幾個坑請務必避開:

  1. 資料重複 (De-duplication): 同一個人重複報名怎麼辦?記得在 CRM 端或 PHP 端做 Email 檢查,不要讓業務重複打電話騷擾客戶。
  2. API Rate Limit: 如果你的活動突然爆紅,一分鐘進來 500 單,直接打 CRM API 可能會被鎖。這時候建議中間加一層 Queue (佇列) 或使用 n8n 的等待機制。
  3. 業務離職: 寫死在 Code 裡的名單最怕業務離職。建議將名單設定做成一個簡單的 WordPress 後台選項頁面 (Options Page),讓行銷主管可以自己勾選誰在值班。

結論

「活動名單自動分流」不是為了炫技,而是為了將行銷的熱度無縫轉化為業務的動力。透過 WordPress 簡單的程式碼與 Webhook,我們能省下無數個整理 Excel 的夜晚,更能搶下那些稍縱即逝的訂單。

別再讓你的名單在硬碟裡發霉了,讓它們動起來吧!

延伸閱讀

如果你想進一步優化你的自動化流程與系統架構,推薦閱讀以下幾篇深度文章:

不想再手動處理成堆的活動名單?

讓浪花科技幫你打造全自動化的行銷業務流程,從名單進件到業績成交,一氣呵成。

立即聯繫我們,啟動你的自動化引擎

常見問題 (FAQ)

Q1: 如果業務請假怎麼辦?自動分流會分給他嗎?

這是一個好問題!在基礎的程式碼中如果不手動移除名單,系統確實會照分不誤。解決方法是在 WordPress 後台建立一個「業務值班表」的功能,或者在程式碼中加入檢查機制,串接 Google Calendar API 確認該業務當天是否為「休假」狀態,若是則自動跳過。

Q2: 除了 Gravity Forms,Contact Form 7 (CF7) 也可以這樣做嗎?

可以的!雖然 CF7 的 Hook 不同(通常使用 wpcf7_mail_sent),但原理完全一樣。不過 CF7 原生不支援 Webhook,你可能需要額外安裝 “CF7 to Webhook” 類型的外掛,或是自己在 functions.php 裡使用 wp_remote_post 來發送資料。

Q3: 這樣做會不會讓網站變慢?

只要程式碼寫得當(使用非阻塞模式 blocking => false),對使用者的填單體驗幾乎是零影響。資料是在背景發送的,使用者按下送出後會立刻看到感謝頁面,而不需要等待 CRM 回傳結果。