WhatsApp BSUID 遷移 7 月 7 日啟動——入站團隊的五項檢查清單 — UnifyPort
Meta 正在改變 WhatsApp API 中識別使用者的方式。從 2026 年 7 月 7 日(第一波)開始,每個 webhook 酬載中都會出現一個名為 Business-Scoped User ID(BSUID)的新欄位——而對於啟用 WhatsApp 使用者名稱的用戶,手機號碼可能會完全消失。
如果你的客服佇列、CRM 整合或 AI 代理流程中會接收 WhatsApp 訊息,這次遷移會影響到你的程式碼。影響程度取決於你的 WhatsApp 訊息在抵達後端之前經過了哪條路徑。
這篇文章是一份檢查清單。五個需要檢視的領域、一個決策矩陣,以及大多數小型團隊真正想問的問題的明確答案:「7 月 7 日之前我需要做什麼嗎?」
BSUID 到底是什麼
每個 WhatsApp 使用者都會獲得一個新的識別碼:Business-Scoped User ID。格式為兩個字母的國碼、一個點號,加上最多 128 個英數字元——例如 BR.1A2B3C4D5E6F7G8H9I0J。關鍵特性:同一個人與不同企業互動時,會得到不同的 BSUID。你的系統為使用者 Alice 產生的 BSUID,跟另一家公司的 BSUID 完全不同。
Meta 的部署時程:
| 階段 | 日期 | 範圍 |
|---|---|---|
| 第一波 | 2026 年 7 月 7 日 | 初始市場 |
| 第二波 | 2026 年 7 月 20 日 | 擴大部署 |
| 全球 | 2026 年 9 月 | 其餘所有市場 |
BSUID 自 2026 年 3 月 31 日起已經開始以新的 user_id 欄位出現在 webhook 酬載中。但真正的破壞性變更在第一波:一旦使用者啟用了 WhatsApp 使用者名稱,wa_id 和 from 欄位中的手機號碼可能就不再出現。
檢查清單:五個需要檢視的領域
1. Webhook 酬載解析
變更內容: 每個訊息 webhook 都會新增一個 user_id 欄位。對於啟用使用者名稱的用戶,原本包含手機號碼的 wa_id 和 from 欄位可能會改為 BSUID——或完全缺失。
檢查重點: 你的 webhook 處理程式是否假設 from 一定是手機號碼?是否用正規表達式比對數字、將其作為資料庫主鍵,或傳給電話號碼驗證函式庫?當 from 的值從 5511999887766 變成 BR.1A2B3C4D5E... 時,上述做法都會出錯。
2. CRM 與聯絡人比對
變更內容: 如果你的 CRM 以手機號碼作為客戶記錄的主鍵,來自啟用使用者名稱的用戶的訊息可能完全不含手機號碼,你將無法查找到該客戶。
檢查重點: 你的聯絡人資料庫能否同時儲存並比對 BSUID 和手機號碼?Meta 提供了 Contact Book API 來保留先前對話中的號碼與 BSUID 對應關係——但你需要在手機號碼從新 webhook 中消失之前就呼叫過它。
3. 對話歷史與訊息串接
變更內容: 如果你按手機號碼串接對話(例如「顯示 +5511999887766 的所有訊息」),同一個人的訊息將開始以 BSUID 識別碼出現。除非你已將舊的號碼記錄與新的 BSUID 建立關聯,否則對話歷史會一分為二。
檢查重點: 你的訊息儲存系統是否以手機號碼作為對話串的主鍵?如果是,請規劃一次回填作業:在第一波之前,使用 Contact Book 的對應關係,將現有的號碼記錄與 BSUID 連結起來。
4. 範本與外發訊息定址
變更內容: 發送範本訊息(外發)時,你最終需要以 BSUID 而非手機號碼來定址收件人——特別是那些已啟用使用者名稱、手機號碼不再公開的用戶。
檢查重點: 如果你會主動發送訊息(訂單確認、出貨通知、預約提醒),你的發送邏輯是否以手機號碼解析收件人?你需要儲存最近一次入站訊息中的 BSUID,並在未來的外發呼叫中使用它。
5. 資料儲存與合規
變更內容: BSUID 是一種新的個人可識別資料。雖然它按企業區隔(因此無法用來跨公司交叉比對使用者),但在大多數隱私法規框架下仍屬於個資。
檢查重點: 你的資料保留政策是否涵蓋新的識別碼類型?如果你有 GDPR/PDPA 的刪除流程會列舉使用者的所有已儲存識別碼,BSUID 也需要納入。
你走的是哪條路?
並非每個團隊都需要處理全部五項檢查。這取決於 WhatsApp 訊息如何抵達你的後端。
| 整合路徑 | 適用的檢查項目 | 遷移工作量 |
|---|---|---|
| Cloud API(直接串接) | 全部五項 | 高——你直接解析 Meta 的原始 webhook,每個酬載變更都會直接影響你的程式碼 |
| BSP(Wati、360dialog 等) | 第 2、3、4、5 項 | 中等——你的 BSP 可能會抽象化 webhook 格式,但 CRM 和發送邏輯仍需更新 |
| 非官方入站介面 | 無 | 零——繼續往下看 |
為什麼非官方入站不受影響
如果你的 WhatsApp 訊息是透過 UnifyPort 的非官方介面接收的,BSUID 遷移完全不會觸及你的流程。原因很簡單:UnifyPort 不透過 Meta 的 Cloud API 傳遞訊息。非官方路徑直接連接 WhatsApp——就像一支執行 WhatsApp 的手機一樣——因此你的 webhook 收到的訊息從一開始就不是 Cloud API 的酬載格式。
你的 webhook 仍然收到與以往完全相同的 message.received 事件:
{
"event": "message.received",
"account_id": "acct_3qPmRz",
"provider": "whatsapp",
"from": "user_88c1ae",
"text": "Hi, is order #2241 shipped yet?",
"timestamp": 1751875200,
"message_id": "wa_msg_f4e29a"
}
from 欄位是 UnifyPort 自有的正規化使用者識別碼——不是手機號碼,也不是 BSUID。它從來就不是手機號碼,所以當 Meta 變更識別碼機制時,你不需要進行任何遷移。你的 CRM 比對、對話串接和 webhook 解析全部照常運作。
webhook 端點上的 HMAC-SHA256 簽章驗證同樣不受影響——簽章密鑰和格式都是 UnifyPort 的,不是 Meta 的。
本週該做什麼
如果你使用 Cloud API 或 BSP:從檢查項目 1(webhook 解析)開始。記錄一批近期的入站 webhook,檢查 user_id 欄位是否已經出現——它從 3 月 31 日起就已陸續上線。如果已經存在,代表你的酬載已經在變化中。在 7 月 7 日之前完成第 2 到 5 項。
如果你使用非官方入站路徑:什麼都不用變。BSUID 遷移是 Cloud API 層面的事,你的訊息不經過 Cloud API。繼續開發就好。