AO2 / INSIGHTS — 把知識變成下一步

Webhook 網站詢問:事件通知與可靠交接

READING INDEX

這篇指南怎麼讀

先理解問題,再選擇方法。把值得採用的一步,帶回日常工作。

Webhook 網站詢問主題封面:通知不等於完成,以橘灰流程圖呈現驗證來源、可靠接收、業務完成。
AO2 原創主題視覺|收到通知,還不等於完成

AO2 FIELD GUIDE · N113 · 行銷自動化與工具整合

Webhook 網站詢問流程把事件發送、來源驗證、接收確認與後續處理分開。用去識別事件示例和狀態表,說明 HTTP 成功、重送、去重與人工接手,不把通知當成交或處理完成。

網站有人送出需求,另一個系統要如何知道?Webhook 可以在事件發生時把通知送到指定接收點,但傳過去只是開始。還要確認來源、資料是否可用、同一件事是否處理過,以及後續失敗由誰接手。

Webhook 網站詢問,先把通知與工作分開

Webhook 是某個事件發生後,由來源系統向指定網址送出請求,讓接收方開始處理的機制。以網站詢問為例,來源可能在成功接收表單後通知整合服務,再由整合服務安排任務或寫入 CRM。各產品支援的事件、格式與認證方式不同,需要以當前官方文件核對。

通知已送達、資料已接收與商機已建立,是三種不同狀態。流程圖先把它們分開,才能知道報錯在哪一段。沒有 Webhook 也可能用排程查詢或其他方式整合;先看事件時效、工具能力和維護責任,不把這個名詞當成一定比較先進的方案。

白話例子:門鈴響了,不代表包裹已完成入庫

假想倉庫收到送貨員按門鈴。門鈴通知有人到達,門口人員還得核對送件身分、包裹標籤,留下收件紀錄,再交給庫房處理。若對講機說「收到」,不能推論庫房已放到正確貨架;送貨員沒聽見回應再按一次,也不代表多了一個包裹。

門鈴對應事件通知,身分核對是來源驗證,收件紀錄是可追查的接收狀態,入庫才是後續工作。這是假想流程示例,不是實際系統紀錄。Webhook 的請求與回應還有具體協定和安全條件,比喻只能幫助理解分工,不能取代供應商文件、權限設定與測試。

先訂事件契約,別把整份表單直接往外倒

契約至少包含事件類型、事件識別、提交識別、發生時間、資料結構版本,以及接收方實際需要的業務欄位。事件 ID 用來辨認通知,提交 ID 用來辨認一次詢問,不能因為看起來像編號就任意互換。資料不足或版本未知時,應明確拒絕、隔離或待人工處理,不猜測必要值。

以下示例只用測試識別、需求類別與產品代稱,不含聯絡資料。真正要交換哪些欄位,應按用途、權限與保存範圍決定;秘密值不放網址或公開文件。接收網址能被呼叫,不等於只有可信來源會呼叫它,因此還需要核對各平台提供的驗證與防重放方法。

Webhook 的四層完成狀態
階段可以說什麼還不能說什麼
來源發出產生一筆事件投遞接收方已拿到
來源與格式通過可信且符合已知契約CRM 已完成建立
可靠接收事件有可追查紀錄或可靠排程所有後續工作都成功
業務處理完成對應任務或商機已核對已成為合格需求或成交

去識別的事件示例

以下為假想資料格式,不是可直接連到正式系統的設定。

{
  "event_id": "evt_demo_001",
  "event_type": "inquiry.received",
  "submission_id": "sub_demo_001",
  "occurred_at": "2026-10-24T09:00:00+08:00",
  "schema_version": "1",
  "data": {
    "topic": "integration",
    "product_ref": "demo-sensor-a"
  }
}

來源驗證、可靠接收與業務處理依序完成

例如 GitHub 的 Webhook 文件要求用秘密值驗證請求簽章,並說明應使用原始內容及適當的安全比較方式;這是該平台的具體做法,不能把標頭名稱直接套用到每家工具。無法通過來源或格式驗證的資料,不應先寫入業務系統,再寄望事後清理。

有效請求可先留下可持續追查的收件紀錄或交給可靠佇列,再依平台要求回應,後續處理另記狀態。不能只是放進會隨程序結束消失的記憶體,就把工作當成安全接收。回應時限依供應商不同;GitHub 文件的十秒要求不是所有 Webhook 的通用標準。

重送、對帳與人工接手要在上線前走過

接收方已完成工作,但回應在途中遺失時,來源可能把通知判為失敗。同一事件再次抵達,應查原有處理狀態,而不是再建立一次商機;真正新的詢問則不應因內容相似就被刪掉。具體去重規則可接著看既有的重複提交指南,本篇先把事件和業務工作的邊界說清楚。

HTTP 成功回應,只能按你們約定的階段解讀。保留事件 ID、提交 ID、每次投遞、接收與業務結果,才能對帳。各平台的失敗重送、保留期限和人工重送方式不同,不要假設會永遠自動補送。測試逾時、格式不合、重送及後端失敗,並指定告警與接手人,才算完整交接。

上線前的事件與交接核對
情境預期行為驗收證據
同一事件再送不重複產生相同副作用同事件的投遞與既有處理狀態
新提交內容相似依提交與事件規則辨認沒有把新需求誤刪
後端暫時失敗保留待處理狀態並依規則接手重試、告警及責任人
來源或版本不明不猜資料、不先執行業務拒絕或隔離原因及安全紀錄

常見問題

Webhook 和 API 有什麼不同?

Webhook 通常是來源在事件發生時主動呼叫接收網址;一般主動查詢則由使用方發出請求取得資料。兩者都可能使用 HTTP,也可以在同一套流程配合。先看誰發起、事件何時產生和如何確認結果,不要把名稱差異直接當成可靠性或即時性的保證。

延伸閱讀:表單接 CRM 前,欄位與狀態應該如何對照?

工具說會重試,還需要自己留紀錄嗎?

需要。重試次數、期限、觸發條件和重送 ID 的規則各不相同,也可能需要人工補送。接收方應保存足以核對同一事件及處理結果的紀錄,避免再次產生副作用;再用實際失敗情境驗證告警和接手。不要把供應商會重試當成永不遺失或剛好處理一次的保證。

延伸閱讀:表單接 CRM 前,欄位與狀態應該如何對照?

同一事件晚到或亂序送達,會把商機狀態改回舊版嗎?

如果無條件覆寫,確實可能退回舊狀態。應檢查事件識別、版本或時序,以及允許的狀態轉換;過期或重複事件保留紀錄並依規則處理,不直接覆蓋最新資料。

例如已接手的詢問,不該因晚到的「新建」通知變回未分派。驗收需包含重複、延遲、亂序與補查,不只測通知能到達。

延伸閱讀:表單接 CRM 前,欄位與狀態應該如何對照?

白話總結:把門鈴、收件與入庫分開驗收

Webhook 先通知事件發生;驗證、可靠接收和業務完成仍各有責任。把每段狀態留下,才知道問題停在哪裡。

  1. 訂契約:固定事件、提交、版本及必要欄位,不外送多餘資料。
  2. 驗接收:確認來源與格式,留下可靠紀錄,再按約定回應。
  3. 走例外:測重送、逾時及後端失敗,核對去重、對帳和人工接手。

完成條件:每筆事件能追到接收與業務結果,重送不重複做事,新需求不被誤刪。

來源與方法範圍

資料查核:2026 年 10 月 24 日。來源支持文中對應的準則與平台說明;工作表、判斷步驟及已標示的假想情境由 AO2 整理,實際使用時依產品資料與現行設定核對。

KEEP EXPLORING

把觀點,連成自己的方法。

從同一個問題延伸,繼續找出能在企業現場採用的做法。

YOUR NEXT STEP / 依任務選擇

做完這一步,再處理下一個問題。

若接下來需要處理「欄位狀態契約」,可接著使用這份方法。

表單接 CRM 前,欄位與狀態應該如何對照? →

返回頂端