管理員可以配置Webhook,以便通過Webhook對接您的一方系統(如CRM)或三方系統,實現在Quick Audience控制台向使用者發送優惠券等。觸達營銷、自動化營銷模組均支援Webhook。
操作流程如下:
針對您的一方系統或三方系統完成Webhook接入開發,請參見Webhook接入文檔。
若Webhook參數需要使用字元型參數調用的方式,包括採用常量或通過介面傳參,管理員需要在建立Webhook前配置參數,請參見參數管理。
管理員建立Webhook,對接一方系統或三方系統,請參見建立Webhook。
管理員測試發送,確保能發送成功,請參見測試發送。
管理員向需要使用Webhook的非管理員授予Webhook的使用許可權,請參見授權。
管理員、已授權成員在觸達營銷模組建立Webhook任務,或在自動化營銷模組配置Webhook組件,調用一方系統或三方系統進行營銷發送,具體操作,請分別參見建立Webhook任務、資料配置-Webhook組件。
建立Webhook
操作步驟:
選擇工作空間>組態管理>營銷配置>Webhook管理,進入Webhook列表。

單擊右上方建立Webhook。
在彈窗中配置參數,如下表所示。


參數
說明
Webhook名稱
輸入Webhook名稱。
鑒權方式
選擇鑒權方式:
無:不進行鑒權。
密鑰:通過驗證密鑰進行鑒權,需要在下方輸入密鑰。
請求地址
輸入要接收訊息推送的介面地址,必須是以HTTP或HTTPS開頭的完整地址。
建議使用HTTPS協議,以提高資訊傳輸的安全性。
發送ID類型
選擇允許發送的ID類型,可多選。但在建立任務時,每個任務僅可選擇發送一種ID。
支援選擇ID類型管理中所有已啟用的ID類型。
Webhook參數
您可以定義Webhook參數,在使用該Webhook建立不同的營銷任務時,可以靈活定義這些參數的值。例如:一方系統或三方系統設定的發送內容為“在{address}進行折扣活動”,{address}即為一個參數,在建立營銷任務時,需要指定為具體內容。
參數名稱
顯示名稱:顯示在營銷任務建立頁面上的參數名稱。
參數類型:參數的資料類型,支援字元型、數值型、文本型、日期型、字元型(參數調用)。
對於字元型(參數調用),需要選擇參數使用的常量或介面,常量或介面需要事先配置,請參見參數管理。
是否必填:參數是否必傳
單擊添加模板參數,可以增加一個Webhook參數。
是否開啟攜帶環境參數
添加調用webhook任務環境參數在webhook請求header中。
是否開啟回執設定
選擇是否開啟回執設定,使一方系統或三方系統能夠通過上報回執將發送結果返回本空間的分析源,顯示在營銷任務詳情頁面,或用於自動化營銷的結果多分支組件。
若開啟,您需要設定:
資料回收周期:超過該周期後,Quick Audience將不再接收發送結果。
狀態code、狀態值:回執中,狀態code為發送結果代碼,如:200;狀態值為對應的發送結果,如:成功。
狀態code、狀態值可以有多對,單擊新增狀態,可以增加一對。
單擊訊息格式預覽,下方將根據已配置的參數展示HTTP Post請求的訊息體格式。詳細說明,請參見Webhook接入文檔。
單擊確定,完成配置。
測試發送
使用Webhook進行營銷前,您需要測試發送,確保其可用性。
您也可以在建立營銷任務時測試發送,請參見建立Webhook任務、資料配置-Webhook組件。
操作步驟:
單擊
表徵圖。在彈窗中選擇要測試發送的ID類型,輸入測試ID、測試Webhook參數值。
說明一次僅能測試一種ID類型。測試營銷任務需要發送的ID類型即可。

單擊確定,系統將通過Webhook調用一方系統或三方系統向測試ID發送訊息。
彈窗將顯示測試發送是否成功。
測試發送成功:請檢查一方系統或三方系統是否收到了Webhook請求,測試ID是否收到訊息。若未收到,請單擊彈窗中的下載日誌,排查原因。

測試發送失敗:請單擊彈窗中的下載日誌,排查原因。
同時,最近一次的測試發送資訊也將顯示在Webhook列表,如下圖所示。

授權
管理員以外的空間成員,若需要使用Webhook建立營銷任務,必須加入含“使用者營銷-觸達營銷-Webhook”許可權的角色,並由管理員授予該Webhook的使用許可權。
授權操作步驟:
單擊
>授權,進入授權頁面,如下圖所示。
選擇授權方式:支援按成員和按成員組。
說明成員組可單擊頁面右上方
,選擇空間管理>空間成員組進行添加。兩種授權方式相互排斥,僅可選其中一種進行授權。若已按一種方式授權,再次授權時選擇另一種方式,則使用舊授權方式的授權將解除,僅生效使用新授權方式的授權。下方顯示已授權成員帳號/成員組,以及授權有效期間。
解除授權:單擊帳號/成員組對應的移除,即可解除對該帳號/成員組的授權,立即生效。
授權:選擇要授權的帳號/成員組,可多選,設定有效期間,單擊確定完成授權。
關閉/開啟
Webhook建立後,預設為開啟狀態,此時可測試、使用Webhook;若需要編輯、刪除Webhook,必須先關閉Webhook。
通過右側的開關,您可以關閉
、開啟
Webhook。
編輯
在關閉Webhook後,您可以對其進行編輯。
單擊"編輯"按鈕,進入編輯介面,後續操作與建立時相同。
不支援編輯開啟狀態的Webhook,請先關閉。
若編輯前已開啟回執設定,則不支援修改或刪除已配置的狀態code、狀態值。

複製
單擊
>複製,進入新的配置頁面,已預設填寫與原Webhook相同的配置項,支援修改,單擊確定完成複製。
複製產生的新Webhook,預設為關閉狀態,需要手動開啟,才能測試、使用。
刪除
在關閉Webhook後,若該Webhook未被用於任何營銷任務,您可以刪除該Webhook。
單擊
>刪除,確認後即刪除該Webhook。
參數管理
若Webhook參數需要使用字元型參數調用的方式,包括採用常量或通過介面傳參,管理員需要在建立Webhook前配置參數。
介面型:通過介面傳遞參數值。在建立Webhook任務時,Quick Audience將讀取介面內的所有參數值,供建立時選擇。
介面開發規範,請參見Webhook介面參數接入文檔。
常量型:參數值固定。可以設定多個固定參數值,供建立Webhook任務時選擇。
建立參數
選擇工作空間>組態管理>營銷配置>Webhook管理>Webhook參數管理,進入Webhook參數列表。

單擊右上方建立Webhook參數。
在彈窗中配置參數,常量型、介面型參數的配置方法不同:
介面型:

參數
說明
參數名稱
輸入介面名稱。
參數類型
選擇介面型。
介面地址
輸入傳遞參數的介面地址。
參數描述
輸入參數描述。
鑒權方式
選擇鑒權方式:
無:不進行鑒權。
密鑰:通過驗證密鑰進行鑒權,需要在下方輸入密鑰。
是否關聯絡統參數
選擇關聯參數:
否:不關聯
是:
參數值設定(支援添加多個,最多添加20個):
參數名稱:參數名稱必須為英文,支援輸入英文、數字、底線,且不可為空,長度不超過32個字元
顯示名稱:不超過32個字元
參數值:
下拉選項,支援選項:當前登入使用者資訊、目前使用者行級許可權
關聯參數選擇:
下拉透出可使用的系統參數
是否關聯其他參數
選擇關聯參數:
否:不關聯
是:
參數值設定(支援添加多個,最多添加20個):
參數名稱:參數名稱必須為英文,支援輸入英文、數字、底線,且不可為空,長度不超過32個字元
顯示名稱:不超過32個字元
參數值:
下拉選項,支援選項:關聯參數選擇 、手動輸入
關聯參數選擇
下拉全量透出參數管理下的參數
如介面型參數需要設定級聯關係,介面裡需包含參數之間級聯關係
手動輸入:選擇手動輸入時,支援手動輸入多個參數值
若需一個參數傳遞多個值,可以在一個參數值裡面填寫,多個值之間用三方約定的分隔字元分開,接收到後自己分隔
常量型:


參數
說明
參數名稱
輸入介面名稱。
參數類型
選擇常量型。
參數描述
輸入參數描述。
是否關聯其他參數
選擇關聯參數:
否:參數值設定(支援添加多個,最多添加20個)
參數值:至少配置一個模板參數,參數名稱必須為英文,且不可為空,長度不超過32個字元
顯示名稱:不超過32個字元
是:參數值及關聯參數設定(支援添加多個,最多添加20個)
單擊確定,完成配置。
管理參數
參數列表提供以下操作按鈕:
詳情:單擊後可查看參數詳情。
編輯:單擊後可編輯參數,配置方法與建立時相同。
刪除:單擊後,在彈窗中確認刪除,即可刪除該參數。僅支援刪除當前未被使用的參數。
Webhook接入文檔
Webhook接入開發包括以下幾個方面,請參考我們給出的訊息格式和範例進行開發。
web
HTTP Endpoint Server
為了與Quick Audience的Webhook對接,您需要開發一個HTTP Server。Quick Audience將發起Post請求,請求逾時時間為10秒。Quick Audience發起的Post請求和接入方回執請求約定如下通用參數,為必傳項。
URL參數 | 含義 | 樣本 |
timestamp | 秒級時間戳記 | 1631865523 |
nonce | 32位隨機字串 | 2e6eceb5737b473284c930c8ef79090e |
請求URL樣本:
{Webhook配置的url}?timestamp=1631865523&nonce=2e6eceb5737b473284c930c8ef79090eHeader | 含義 | 說明 |
X-QA-Hmac-Signature | 鑒權簽名 | 開啟鑒權時使用,鑒權方式見下文。 未開啟鑒權時,該Header填Null 字元串""。 |
鑒權方式
通過密鑰進行鑒權。Webhook配置時開啟鑒權,使用者填寫密鑰。
Quick Audience內部會根據使用者填寫的密鑰與URL請求參數timestamp和nonce進行HmacSHA256Hex簽名並產生signature,並將此signature通過Request Header傳遞過去來做鑒權。您的服務接受到請求後,同樣根據URL參數與Webhook通道配置的密鑰進行HmacSHA256Hex演算法加密。如果計算的值與從Request Header中傳過來的signature相同,則可以確定是此請求是從Quick Audience中發送的。上報回執時同理。
參數 | 含義 | 樣本 |
key | Webhook配置的密鑰 | 123456789 |
簽名演算法樣本:
import org.apache.commons.codec.digest.HmacUtils;
public String makeSignature(String key, String timestamp, String nonce) {
String str = generateStr(key, timestamp, nonce);
return HmacUtils.hmacSha256Hex(key, str.replaceAll("\\s+", ""));
}
/**
* 簽名待處理的字串拼接
*/
public static String generateStr(String key, String timestamp, String nonce) {
String[] array = new String[]{key, timestamp, nonce};
StringBuilder sb = new StringBuilder();
Arrays.sort(array);/* 字串排序*/
for (int i = 0; i < 3; i++) {
sb.append(array[i]);
}
return sb.toString();
}Webhook Request
請求為Quick Audience向接入方發起的HTTP Post請求。Request Body是單使用者的觸發請求資訊,對於任何類型的資料(如整數、字串、文本變數等類型),在發送請求時,將所有的欄位全部轉為字串進行處理。
欄位名 | 欄位類型 | 說明 |
user_profile | Map<String,String> | KV類型,target_type的value值表示ID類型,支援ID類型見下文,為大寫;target_id的value值表示具體目標ID值。 |
params | Map<String,Object> | KV類型,具體KV為Webhook配置時指定的。當文本類型中有變數時,變數值將直接填入params參數中,請參見下面的樣本(在介面配置即可)。 |
callback_params | Map<String,String> | 為Quick Audience請求參數,需在上報回執時原樣帶回。 |
process_info | Map<String,String> | 流程資訊中的部分執行個體資訊,因為這些資訊每個人不同 |
Post Body結構樣本(單個使用者,每批一般1~100個):
[
{
"user_profile": {
"target_type": "OPEN_ID",
"target_id": "1917810",
"customer_id": "客戶的唯一ID,如果上報事件需要使用這個ID"
},
"params": {
"define_item1": "優惠券ID",
"define_item2": "優惠券內容樣本,使用者所在的地址是北京"
},
"callback_params": {
"webhook_id": "13312313",
"send_time": "1625037472000",
"nodeId": "節點Id",
"instanceId": "執行個體Id",
"batchId": "執行動作批次Id,可做批次等冪ID",
"actionId": "執行動作執行個體Id,可做單條等冪ID",
"customerId": "使用者Id,customerId"
},
"process_info": {
"processInstanceId": "新版:旅程周期中,每個使用者的旅程執行個體ID",
"processInstanceStartTime": "新版:旅程周期中,每個使用者的旅程執行個體開始時間,時間戳記格式",
"processNodeInstanceId": "新版:旅程節點執行個體ID(每次不同)",
"processNodeInstanceStartTime": "新版:旅程周期中,每個使用者的旅程的節點執行個體開始時間,時間戳記格式",
"groupName":"nodeId:nodeName:groupResult(node.result),groupName(node.resultExt);nodeId:nodeName:groupResult(node.result),groupName(node.resultExt)",
"@comment":{
"groupName" : "節點id:節點名稱(介面配置的):分組結果(隨機分組的百分比數字,兩位小數):分組名稱(介面配置的);多個用分號隔開"
}
}
}
]支援的ID類型:
ID類型 | 含義 |
ONEID | OneID |
郵箱地址 | |
MOBILE | 手機號 |
TAOBAO_ID | 淘寶ID |
TAOBAO_NICK | 淘寶暱稱 |
IMEI | 手機IMEI |
IMSI | 手機IMSI |
IDFA | 手機IDFA |
MAC_ORG | MAC地址 |
WEIBO_ID_ORG | 微博ID |
ALIPAY_ID | 支付寶ID |
UNION_ID | 微信UnionID |
OAID | OAID |
OPEN_ID | 微信OpenID |
接入方收到請求後,向Quick Audience返迴響應訊息。
響應體格式:
{
"code":"OK", //請求狀態代碼:返回OK代表請求成功,必須為大寫;返回其他為錯誤碼,接入方自訂。
"message":"", //狀態代碼描述,非必填。
}回執上報
接入方執行營銷任務後,向Quick Audience上報回執,反饋營銷訊息的發送結果。
介面說明
介面描述 | 回執上報 | ||||
URL | /restapi/marketing2/webhook/receiveWebHookCallBack | ||||
請求方式 | POST | ||||
參數名 | 資料類型 | 參數類型 | 是否必填 | 說明 | |
timestamp | long | Query Params | 是 | 秒級時間戳記:1631865523 | |
nonce | String | Query Params | 是 | 32位隨機字串:2e6eceb5737b473284c930c8ef79090e | |
X-QA-Hmac-Signature | String | Headers | 是 | 開啟鑒權時使用,見上文鑒權方式。 未開啟鑒權時,該Header填Null 字元串""。 | |
callBackMessageList | List<WebHookCallBackMessage> | Request Body | 是 | 為List,多個使用者的回執資訊合并在一起,WebHookCallBackMessage格式如下 | |
WebHookCallBackMessage如下:欄位 | 類型 | 說明 |
msg_id | String | 32位訊息唯一ID,為接入方產生。 |
status | String | 結果狀態,即Webhook配置中定義的狀態code,如200。 |
cst_id | String | 觸達的使用者ID,為user_profile.customer_id。 |
send_time | String | 毫秒級時間戳記。 |
callback_params | Map<String,String> | Webhook請求時攜帶的callback_params,原樣待會即可 |
回執上報訊息樣本:
[
{
"msg_id": "業務側提供的唯一ID",
"status": "回執狀態",
"cst_id": "客戶ID,customerId",
"send_time": "回執發送時間,時間戳記格式",
"callback_params": {
"參數原樣帶回": "將調用時的參數原樣帶回"
}
}
]介面返回
欄位 | 類型 | 說明 | ||||
code | int | 返回碼:200,介面請求成功 其他:失敗 | ||||
message | String | 錯誤資訊 返回碼為200時為"成功" 返回碼為其他時為相應的錯誤資訊 | ||||
請求樣本:
curl --location 'https://quicka.aliyun.com/restapi/marketing2/webhook/receiveWebHookCallBack?timestamp=1755848301481&nonce=abc' \
--header 'X-QA-Hmac-Signature: 5d41402abc4b2a76b9719d911017c592' \
--header 'Content-Type: application/json' \
--data '[]'響應樣本:
{
"code": 200,
"message": "成功"
}FAQ
Webhook參數、變數、常量、介面的區別是什嗎?
答:Webhook參數有多種類型,它們的區別和用法如下圖所示。
其中:
常量、介面是字元型(參數調用)參數賦值的兩種方式。
變數是文本型參數中插入的,可隨使用者而變的內容。