摘要
當您使用 Wati API 發送範本訊息時,您可能希望使用 Webhook 來追蹤其狀態(例如:已發送、已送達、已讀、已回覆或失敗),而不是僅依賴 Wati 內建的行銷活動分析。
透過 API 發送行銷活動後,您可以隨時在 Wati 的行銷活動總覽 (Campaign Overview) 中查看其成效。此外,您也可以使用 Wati Webhook,透過您自己的系統即時追蹤這些行銷活動的訊息狀態與送達事件。
此方法有助於您監控訊息成效、排解送達問題,並透過您的應用程式管理客戶互動。本指南說明如何發送範本訊息並使用 Webhook 追蹤其生命週期。
注意:有關 Wati Webhook 的更多資訊,請參閱 Wati 開發人員說明文件。
操作說明
發送範本訊息
若要使用 Wati 的 API 發送範本訊息,請使用 sendTemplateMessage V2 端點。
cURL 請求範例
curl --location 'https://live-mt-server.wati.io/{tenant_id}/api/v2/sendTemplateMessage?whatsappNumber=<whatsappNumber>' \
--header 'Authorization: Bearer <Token>' \
--header 'Content-Type: application/json' \
--data '{
"template_name": "update_for_you",
"broadcast_name": "JPTestBroadcast",
"parameters": []
}'API 回應範例
{
"result": true,
"error": null,
"templateName": "update_for_you",
"receivers": [
{
"localMessageId": "d38f0c3a-e833-4725-a894-53a2b1dc1af6",
"waId": "<whatsappNumber>",
"isValidWhatsAppNumber": true,
"errors": []
}
],
"parameters": []
}關鍵欄位
localMessageId:用於跨 Webhook 事件追蹤訊息的唯一識別碼。請儲存此值,因為它能將該訊息的所有狀態更新關聯起來。
使用 Webhook 追蹤訊息狀態
訊息發送後,Wati 會針對每次狀態更新發送 Webhook 事件。請使用 localMessageId 將這些事件與原始訊息進行配對。
1. 範本訊息已發送
觸發時機:訊息已從 Wati 成功發送
事件:
templateMessageSent_v2狀態:
SENT
Webhook 負載範例
{
"eventType": "templateMessageSent_v2_bsuid",
"localMessageId": "84689938-5e2-877821d672c2",
"id": "693fd8ee21f81",
"whatsappMessageId": "wamid.HBgNODEYEjQ3RDMzQzM2QjM3QjU1ODQ4RQA=",
"templateId": "6929b",
"templateName": "test_jm4",
"created": "2025-12-15T09:46:23.4083984Z",
"conversationId": "68b68470e93cc",
"ticketId": "693fd6ab545f82",
"text": "Make your messages personal using variables like name and get more replies!",
"operatorEmail": "[email protected]",
"waId": "86151285",
"type": "template",
"statusString": "SENT",
"sourceType": "WEB",
"headerLink": null,
"headerType": null,
"channelId": null,
"channelPhoneNumber": "174742",
"bsuid": "HK.xxxxxxxxxxxxx",
"parentBsuid": "HK.ENT.xxxxxxxxxxxxx",
"username": "@bob"
}「範本已發送」Webhook 現在包含按鈕資訊
「範本已發送」Webhook 現在包含 WhatsApp 範本中設定的按鈕資訊。這讓您可以識別與已發送範本訊息相關聯的按鈕文字。
此功能適用於 Pro、Business 與 Enterprise 方案的客戶。
包含哪些按鈕資訊?
Webhook 負載可包含來自 WhatsApp 範本的以下按鈕資訊:
快速回覆按鈕文字
連結按鈕文字
當您透過 API 檢索範本資訊時,回應內容也會包含為該範本設定的按鈕文字。
2. 訊息已送達
觸發時機:訊息已送達給收件者
事件:
sentMessageDELIVERED_v2狀態:
Delivered
Webhook 負載範例
{
"eventType": "sentMessageDELIVERED_v2",
"statusString": "Delivered",
"localMessageId": "16bf77ae-79e8-691eb4b",
"id": "693fd65f99391640",
"whatsappMessageId": "wamid.HBgNODYxMzEzMzg4Nzg2MDU0OEM0NTYxRTlBMwA=",
"conversationId": "68cba32b3349e",
"ticketId": "693f7a0a8545f54",
"text": "hello",
"type": "text",
"timestamp": "1765791326",
"assigneeId": "65a105b5cf65262",
"operatorEmail": "derre.ai",
"channelId": null,
"channelPhoneNumber": "17742"
}3. 訊息已讀
觸發時機:收件者已讀取訊息
事件:
sentMessageREAD_v2狀態:
Read
Webhook 負載範例
{
"eventType": "sentMessageREAD_v2",
"statusString": "Read",
"localMessageId": "16bf77ae-79e691eb4b",
"id": "693fd65f961dc81779391640",
"whatsappMessageId": "wamid.HBgNODYxMzEABEYEjVCNzg2MDU0OEM0NTYxRTlBMwA=",
"conversationId": "68cba3db12b3349e",
"ticketId": "693fd64d1d45f54",
"text": "hello",
"type": "text",
"timestamp": "17651326",
"assigneeId": "65a10905cf65262",
"operatorEmail": "[email protected]",
"channelId": null,
"channelPhoneNumber": "174742"
}4. 訊息已回覆
觸發時機:收件者已回覆訊息
事件:
sentMessageREPLIED_v2狀態:
Replied
Webhook 負載範例
{
"eventType": "sentMessageREPLIED_v2",
"statusString": "Replied",
"localMessageId": "16bf77ae-79e691eb4b",
"id": "693fd65f961dc81779391640",
"whatsappMessageId": "wamid.HBgNODYxMzEABEYEjVCNzg2MDU0OEM0NTYxRTlBMwA=",
"conversationId": "68cba3db12b3349e",
"ticketId": "693fd64d1d45f54",
"text": "hello",
"type": "text",
"timestamp": "17651326",
"assigneeId": "65a10905cf65262",
"operatorEmail": "[email protected]",
"channelId": null,
"channelPhoneNumber": "174742"
}5. 訊息已接收
觸發時機:使用者發送訊息至您的 Wati 號碼
事件:
messageReceived狀態:
Received
使用情境:
追蹤使用者的回覆
擷取範本訊息中的快速回覆按鈕點擊事件
Webhook 負載範例
{
"eventType": "messageReceived",
"statusString": "Received",
"localMessageId": "fd29c1f-9033-59b2-7d72-5ac964c4c8a7",
"whatsappMessageId": "wamid.HBgMOAE4NjY4NDkzNjAxFAIAERgSOTEENzFCNjEwMkNDNENGQUJGAA==",
"text": "Hello, I need help!",
"timestamp": "1665645642",
"operatorEmail": "[email protected]"
}6. 範本訊息失敗
觸發時機:訊息發送失敗
事件:
templateMessageFailed狀態:
Failed
Webhook 負載範例
{
"eventType": "templateMessageFailed",
"statusString": "Failed",
"localMessageId": "fd29c1f-9033-59b2-7d72-5ac964c4c8a7",
"failedCode": "131026",
"failedDetail": "Message undeliverable",
"id": "66b2531d4931581381944612",
"whatsappMessageId": "wamid.HBgMOAE4NjY4NDkzNjAxFAIAERgSOTEENzFCNjEwMkNDNENGQUJGAA==",
"conversationId": "66b1fb044045cedb1f19538e",
"ticketId": "66bdfba190194752bb7326d7",
"text": null,
"type": "template",
"timestamp": "1665645642",
"assigneeId": null,
"operatorEmail": "[email protected]"
}如何在 Wati 中設定 Webhook
請按照下列步驟開始接收 Webhook 事件:
登入您的 Wati 帳號
前往 Connectors (連結器) → Webhooks
點擊 Add Webhook (新增 Webhook)
輸入您的 Webhook URL
將狀態設為 Enabled (已啟用)
選擇所需的事件:
Template Message Sent (範本訊息已發送)
Delivered (已送達)
Read (已讀)
Replied (已回覆)
Failed (失敗)
最終說明
發送訊息時,請務必儲存
localMessageId使用該 ID 將所有 Webhook 事件對應到同一則訊息
結合多個 Webhook 事件以建立完整的訊息生命週期
透過正確設定 Webhook,您可以可靠地追蹤透過 Wati 發送的每一則範本訊息,並根據即時更新採取相應行動。
常見問題集 (FAQs)
發送與追蹤範本訊息
1. 如何使用 Wati API 發送範本訊息?
使用 sendTemplateMessage V2 端點即可透過 Wati API 發送範本訊息。
2. 什麼是 localMessageId,為什麼我應該儲存它?
localMessageId 是訊息的唯一識別碼。請務必儲存它,因為 Wati 會利用此 ID 將 Webhook 事件與原始訊息關聯,並在整個生命週期中追蹤其狀態。
3. 我該如何使用 Wati Webhook 追蹤範本訊息狀態?
設定 Wati Webhook 以接收範本訊息的即時事件。使用 localMessageId 將每個 Webhook 事件與原始訊息進行配對。
4. 哪些 Webhook 事件可用於追蹤範本訊息生命週期?
可用的 Webhook 事件包括:
templateMessageSent_v2— 訊息已成功發送。sentMessageDELIVERED_v2— 訊息已送達。sentMessageREAD_v2— 收件者已讀取訊息。sentMessageREPLIED_v2— 收件者已回覆訊息。templateMessageFailed— 訊息發送失敗。messageReceived— 使用者發送訊息至您的 Wati 號碼。
5. messageReceived Webhook 有什麼用途?
messageReceived Webhook 可用於追蹤使用者的回覆,以及擷取範本訊息中的快速回覆按鈕點擊事件。
6. 「範本已發送」Webhook 包含哪些按鈕資訊?
「範本已發送」Webhook 可包含在 WhatsApp 範本中設定的快速回覆按鈕文字與連結按鈕文字。API 對於範本資訊的回應內容也包含已設定的按鈕文字。
7. 哪些 Wati 方案支援「範本已發送」Webhook 中的按鈕資訊功能?
按鈕資訊功能適用於 Pro、Business 與 Enterprise 方案的客戶。
8. 如何在 Wati 中設定 Webhook 以追蹤範本訊息?
在您的 Wati 帳號中前往 Connectors (連結器) → Webhooks,點擊 Add Webhook (新增 Webhook),輸入您的 Webhook URL,將狀態設為 Enabled (已啟用),並選擇所需的事件:Template Message Sent (範本訊息已發送)、Delivered (已送達)、Read (已讀)、Replied (已回覆) 與 Failed (失敗)。
9. 如何追蹤範本訊息的完整生命週期?
在發送訊息時儲存 localMessageId,並使用它來對應所有相關的 Webhook 事件。結合這些事件,即可追蹤該訊息是否已發送、送達、已讀、已回覆或發送失敗。



