Webhook 使用¶
在配置自動化規則時,若在觸發器下方新增 Webhook 操作並觸發時,會推送整合後的新版 Webhook 格式。本文將介紹在自動化規則中如何使用 Webhook。
從以前事件與通知系統自動遷移至自動化的配置,會相容老版 Webhook 格式,但請儘快升級。如果刪除了舊配置後重新配置 Webhook,相容格式不再推送,只推送新版格式。
配置方式¶
在配置自動化規則中,新增 Webhook 操作即可。示例如下:

對應關係¶
本章節列表了新版觸發器與新版 event_type 的對應關係,以及老版觸發器與老版 Webhook 事件、event_type 的對應關係,幫助你配置 Webhook 規則。
新版 Webhook 對應關係¶
| 觸發器型別 | 可能的 event_type |
|---|---|
| 定時迴圈 | TimedTriggerEvent |
| 動態時間任務 | DynamicTimeTriggerEvent |
| 建立工作項 | WorkitemCreateEvent |
| 完成工作項 | WorkitemFinishEvent |
| 終止或恢復工作項 | WorkitemAbortedEvent, WorkitemRestoreEvent |
| 刪除工作項 | WorkitemDeleteEvent |
| 工作項狀態修改 | WorkitemStatusEvent |
| 工作項節點流轉 | WorkFlowNodeStatusEvent |
| 欄位值修改 | WorkitemUpdateEvent |
| 排期操作 | WorkFlowNodeScheduleEvent, TaskUpdateEvent |
| 人員分配 | WorkitemPersonAssignedEvent, TaskUpdateEvent |
| 評論操作 | WorkitemCommentEvent |
| 任務修改 | TaskUpdateEvent |
| 任務狀態修改 | WorkitemStatusEvent |
| 建立任務 | TaskCreateEvent |
| 刪除任務 | TaskDeleteEvent |
老版 Webhook 對應關係¶
| 老版觸發器 | 老版 webhook 事件 | 老版 webhook 對應 eventType | 新版 event_type |
|---|---|---|---|
建立工作項![]() |
需求建立 | StoryCreated | WorkitemCreateEvent |
| 工作項建立 | EventCreate-{工作項型別} | ||
欄位值修改![]() |
需求修改 | StoryValueChanged | WorkitemUpdateEvent |
| 工作項修改 | EventUpdate-{工作項型別} | ||
終止工作項![]() |
需求終止 | StoryAborted | WorkitemAbortedEvent(工作項終止) WorkitemRestoreEvent(工作項恢復) |
| 工作項終止 | EventAborted-{工作項型別} | ||
需求狀態修改![]() |
需求狀態修改 | StoryStageChanged | WorkitemStatusEvent |
工作項狀態修改![]() |
工作項狀態更新 | EventUpdateStatus-{工作項型別} | |
任務狀態修改![]() |
任務狀態修改 | EventUpdateStatus-task | TaskStatusEvent |
任務修改![]() |
任務修改 | EventUpdate-task | TaskUpdateEvent |
角色操作![]() |
需求人員分配 | StoryRoleAssigned | WorkitemPersonAssignedEvent |
| 工作項人員分配 | EventRoleAssigned-{工作項型別} | ||
| 節點負責人分配(需求) | WFNodeOwnerChanged | ||
| 節點負責人分配(其他工作項) | WFNodeOwnerChanged-{工作項型別} | ||
節點狀態修改![]() |
節點完成(需求) 節點完成(其他工作項) |
WFNodeChecked WFNodeChecked-{工作項型別} |
WorkFlowNodeStatusEvent |
| 節點到達(需求) 節點到達(其他工作項) |
WFNodeReached WFNodeReached-{工作項型別} |
||
| 節點回滾(需求) 節點回滾(其他工作項) |
WFNodeRollbacked WFNodeRollbacked-{工作項型別} |
||
節點排期操作![]() |
節點排期變更(需求) | WFNodeScheduleChanged | WorkFlowNodeScheduleEvent |
| 節點排期變更(其他工作項) | WFNodeScheduleChanged-{工作項型別} | ||
評論操作![]() |
需求評論操作 | StoryCommentAdded | WorkitemCommentEvent |
| 工作項評論操作 | EventCommentAdded-{工作項型別} | ||
工作項歸檔![]() |
需求歸檔 | StoryFinished | WorkitemFinishEvent |
| 工作項歸檔 | EventFinished-{工作項型別} | ||
刪除工作項![]() |
需求刪除 | StoryDeleted | WorkitemDeleteEvent |
| 工作項刪除 | EventDelete-{工作項型別} | ||
定時迴圈![]() |
TimedTriggerEvent | ||
動態時間任務![]() |
DynamicTimeTriggerEvent |
相容性說明¶
Webhook 是一種用於實時傳遞資料的機制,其資料結構可能會隨著業務需求的變化而變化。為了確保系統的可擴充套件性和相容性,以下是針對 Webhook 資料結構設計的相容性說明。
- Webhook 資料的基本結構示例如下:
- 相容性策略
- 新增欄位:當提供方在資料結構中新增欄位時,消費方應能夠忽略未識別的欄位,而不會影響其正常處理。
- 預設值:消費方可以針對欄位設定合理的預設值,確保在提供方未提供該欄位的情況下,系統仍能正常執行。
新版 Webhook 對應 Body 格式¶
- Webhook 設計有冪等串,header -> uuid,可以考慮使用冪等串去重;
- Webhook 推送後 6s 超時,超時會重試,最大重試次數 3 次;
- 接收 Webhook 請使用 POST 的方法,以下格式均為 POST 方法的 body 資料。
WorkitemCreateEvent¶
當“觸發器”為“建立工作項”時,會收到如下請求:
WorkitemUpdateEvent¶
當“觸發器”為“欄位值修改”時,會收到如下請求:
WorkitemAbortedEvent¶
當“觸發器”為“終止或恢復工作項”,且觸發事件為終止工作項時,會收到如下請求:
WorkitemRestoreEvent¶
當“觸發器”為“終止或恢復工作項”,且觸發事件為恢復工作項時,會收到如下請求:
WorkitemPersonAssignedEvent¶
當“觸發器”為“人員分配”,且“高階篩選”為“指定角色”時,會收到如下請求: 當“觸發器”為“人員分配”,且“高階篩選”為“指定節點負責人”時,會收到如下請求:
WorkitemCommentEvent¶
當“觸發器”為“評論操作”時,會收到如下請求:
WorkitemFinishEvent¶
當“觸發器”為“完成工作項”時,會收到如下請求:
WorkitemDeleteEvent¶
當“觸發器”為“刪除工作項”時,會收到如下請求:
WorkitemStatusEvent¶
當“觸發器”為“工作項狀態修改”時,會收到如下請求:
WorkFlowNodeStatusEvent¶
當“觸發器”為“工作項節點流轉”時,會收到如下請求:
WorkFlowNodeScheduleEvent¶
當“觸發器”為“排期操作”時,且“變更物件”選擇“節點”時,會收到如下請求:
TaskStatusEvent¶
當“觸發器”為“任務狀態修改”時,會收到如下請求:
TaskUpdateEvent¶
當“觸發器”為“任務修改”時: 當“觸發器”為“排期操作”,“變更物件”為“任務”時: 當“觸發器”為“人員分配”,“高階篩選”為“指定任務負責人”時:
TimedTriggerEvent¶
當“觸發器”為“定時迴圈”時,會收到如下請求:
DynamicTimeTriggerEvent¶
當“觸發器”為“動態時間任務”時,且“當下列時間到達時觸發”選擇“指定日期欄位”時,會收到如下請求: 當“觸發器”為“動態時間任務”時,且“當下列時間到達時觸發”選擇“指定節點排期”時,會收到如下請求: 當“觸發器”為“動態時間任務”時,且“當下列時間到達時觸發”選擇“指定節點下的子任務排期”時,會收到如下請求: 當“觸發器”為“動態時間任務”時,且“當下列時間到達時觸發”選擇“指定節點停留時間”時,會收到如下請求: 當“觸發器”為“動態時間任務”時,且“當下列時間到達時觸發”選擇“指定狀態停留時間”時,會收到如下請求:
TaskCreateEvent¶
當“觸發器”為“建立任務”時,會收到如下請求:
TaskDeleteEvent¶
當“觸發器”為“刪除任務”時,會收到如下請求:
Field Value 結構參考¶
參見文件欄位與屬性解析格式。
FAQ¶
Webhook 支援獲取外掛控制元件裡的資料嗎?¶
不支援
Webhook 呼叫熔斷說明¶
對自動化規則下的單個 Webhook 地址,在一定時間段內呼叫使用者 Webhook失敗請求過多的情況下,會觸發平臺熔斷策略(如時間段內的失敗次數超過平臺預設值、其他情況),熔斷時間過後自動恢復正常呼叫。
Webhook 出口 IP 地址白名單¶
Webhook 成功標準與重試機制¶
自動化規則觸發時,若相應自動化規則中存在 Webhook 操作節點,Meegle將會透過 HTTP POST 請求,傳送 JSON 格式的事件資料到預先配置的URL。
接收事件時失敗重發機制:應用接收到包含事件資料的請求(向開發者伺服器傳送的 HTTP POST 請求)時,需要在 6 秒內以 HTTP 狀態碼 資訊響應類(1xx)或成功響應類(2xx)響應該請求,即視為處理成功。否則認為本次推送失敗,並重新推送事件,最多重試 3 次。
建議你在接收事件時,透過header -> uuid,對所有訊息增加冪等邏輯。
{
"header": {
// 這裡可能會新增擴充套件欄位
},
"payload": {
// 這裡可能會新增擴充套件欄位
}
// 這裡可能會新增擴充套件欄位
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemCreateEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": { // json結構,基於facade_idl裡面workitem結構
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"template_id": 13046, // int,64位, 模板id
"template_type":"", // string,工作項型別(只有需求有)
"pattern": "", // string,模式(節點流、狀態流)
"sub_stage": "", // string,僅早期例項涉及,已棄用
"work_item_status": {}, // struct, 狀態流工作項的狀態, 僅狀態流工作項有
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"created_at": 1639548438000, // int,64位,建立時間戳
"created_by": "", // string,建立人的userkey
"current_nodes": [ // json,當前所處的節點, 僅節點流工作項有
{
"id": "state_0",
"name": "進行中",
"owners": [
"6992398322484936706"
]
}
],
"fields": [ // json,工作項欄位
{
"field_alias": "owner",
"field_key": "owner",
"field_type_key": "user",
"field_value": interface{}
},
{
"field_alias": "description",
"field_key": "description",
"field_type_key": "multi_text",
"field_value": "描述資訊",
"field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
}
}
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemUpdateEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"changed_fields": [
{
"field_alias": "owner", // 欄位對接標識
"field_key": "owner", // 欄位key
"field_schedule_tag": "",//狀態流【實際工時】【估分】【排期】配置的欄位
"field_type_key": "user", // 欄位型別
"pre_field_value": interface{}, // 變更前的值
"cur_field_value": interface{} // 變更後的值
},
{
"field_alias": "description", // 欄位對接標識
"field_key": "description", // 欄位key
"field_type_key": "multi_text", // 欄位型別
"pre_field_value": interface{}, // 變更前的值
"pre_field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新前描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
},
"cur_field_value": interface{} // 變更後的值
"cur_field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新後描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
},
},
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemAbortedEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"is_aborted": true, // bool,是否終止
"reason": "" // string,終止或者恢復原因
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemRestoreEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"is_aborted": true, // bool,是否終止
"reason": "" // string,終止或者恢復原因
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemPersonAssignedEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"role_owners": [{ // 僅流程角色變更時存在
"role": "",
"add_owners": [], // 新增的owner key
"delete_owners": [] // 刪除的owner key
}],
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemPersonAssignedEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"node_owners": [{ // 僅節點負責人變更時存在
"id": "", // string
"state_key": "", // string
"node_name": "", // string,節點名稱
"add_owners": [], // 新增的負責人
"delete_owners": [], // 刪除的負責人
}],
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemCommentEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"work_item_type_key": "", // string,工作項型別
"comment": "", //string,需求的評論內容
"comment_markdown": { // 評論富文字內容 Markdown資訊
"markdown": "更新後描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
},
"attached_file": [
{
"download_url": "", // 檔案下載連結
"file_name": "", // 檔名
"file_size": 123456, // 檔案大小
"file_token": "", // 檔案token
"file_type": "" // string 檔案型別,例如application/json
}
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemFinishEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "" // string,工作項型別
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemDeleteEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "" // string,工作項型別
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkitemStatusEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"pre_sub_stage": "", // string,變更前工作項狀態,僅節點流工作項冗餘
"cur_sub_stage": "", // string,變更後工作項狀態,僅節點流工作項冗餘
"pre_work_item_status": {
"state_key": "", // string,狀態key
"is_archived_state": true, // bool,是否是歸檔狀態
"is_init_state": true, // bool,是否是初始狀態
"updated_at": 1111, // 更新時間
"updated_by": "" // 更新人userkey
},
"cur_work_item_status": {
"state_key": "", // string,狀態key
"is_archived_state": true, // bool,是否是歸檔狀態
"is_init_state": true, // bool,是否是初始狀態
"updated_at": 1111, // 更新時間
"updated_by": "" // 更新人userkey
},
"confirm_form": [
{ // 狀態流轉的表單,僅狀態流工作項存在
"field_alias": "owner",
"field_key": "owner",
"field_type_key": "user",
"field_value": interface{}
},
{
"field_alias": "description", // 欄位對接標識
"field_key": "description", // 欄位key
"field_type_key": "multi_text", // 欄位型別
"field_value": "",
"field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新前描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
}
}
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkFlowNodeStatusEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "" // string,工作項型別
"pre_sub_stage": "", // 僅在節點變更觸發狀態變更時存在
"cur_sub_stage": "", // 僅在節點變更觸發狀態變更時存在
"pre_work_item_status": { // 僅在節點變更觸發狀態變更時存在
"state_key": "", // string,狀態key
"is_archived_state": true, // bool,是否是歸檔狀態
"is_init_state": true, // bool,是否是初始狀態
"updated_at": 1111, // 更新時間
"updated_by": "" // 更新人userkey
},
"cur_work_item_status": { // 僅在節點變更觸發狀態變更時存在
"state_key": "", // string,狀態key
"is_archived_state": true, // bool,是否是歸檔狀態
"is_init_state": true, // bool,是否是初始狀態
"updated_at": 1111, // 更新時間
"updated_by": "" // 更新人userkey
},
"nodes":[{
"id": "", // 節點的id
"state_key": "", // 節點的key,等同id,冗餘
"node_name": "", // 節點的名稱
"pre_status": 1, // 節點的變更前狀態
"cur_status": 2, // 節點的變更後狀態
"node_form":[
{ // 節點表單
"field_alias": "owner",
"field_key": "owner",
"field_type_key": "user",
"field_value": interface{}
},
{
"field_alias": "description", // 欄位對接標識
"field_key": "description", // 欄位key
"field_type_key": "multi_text", // 欄位型別
"field_value": "",
"field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新前描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
}
}
]
}],
"reason": "", //只在回滾的時候有
"status_change_type": "" // Rollback/Reached/Checked <=> 回滾/到達/確認
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "WorkFlowNodeScheduleEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"work_item_type_key": "", // string,工作項型別
"nodes": [{ // 需求流程節點的資訊
"id": "", // 節點的id
"state_key": "", // 節點的key,等同id,冗餘
"node_name": "", // 節點的名稱
"node_schedule_change":{ // 節點排期變更資訊
"pre_schedule":{
"estimate_start_date": 1111,
"estimate_end_date": 1111,
"points": 111
},
"cur_schedule":{
"estimate_start_date": 1111,
"estimate_end_date": 1111,
"points": 222
}
},
"owner_schedules_change":[{ // 差異化排期的人員排期
"owner": "",
"pre_schedule":{
"estimate_start_date": 1111,
"estimate_end_date": 1111,
"points": 11
},
"cur_schedule":{
"estimate_start_date": 1112,
"estimate_end_date": 1112,
"points": 22
}
}]
}]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "TaskStatusEvent", // string, webhook的event_type
"token": "", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": { // 事件產生的資料
"work_item_id":int, // 任務所掛工作項對應的work_item_id,64位
"work_item_name": "", // 任務所掛工作項對應的名稱
"task_id":int, // 任務對應的id,64位
"task_name": "", // 任務名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"pre_status": int,
"cur_status": int,
"relate_state_id": "node_state_0_79697751",// 任務所屬節點ID
"related_state_key": "state_0",// 任務所屬節點key
"relate_state_name": "", // 任務所屬節點名稱
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "TaskUpdateEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": { // 事件產生的資料
"work_item_id":int, // 任務所掛工作項對應的work_item_id,64位
"work_item_name": "", // 任務所掛工作項對應的名稱
"task_id":int, // 任務對應的id,64位
"task_name": "", // 任務名稱
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"relate_state_id": "node_state_0_79697751",// 任務所屬節點ID
"related_state_key": "state_0",// 任務所屬節點key
"relate_state_name": "", // 任務所屬節點名稱
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"changed_fields": [
{
"field_alias": "owner",
"field_key": "owner",
"field_type_key": "user",
"pre_field_value": interface{},
"cur_field_value": interface{}
},
{
"field_alias": "description", // 欄位對接標識
"field_key": "description", // 欄位key
"field_type_key": "multi_text", // 欄位型別
"pre_field_value": interface{}, // 變更前的值
"pre_field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新前描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
},
"cur_field_value": interface{} // 變更後的值
"cur_field_value_markdown": { // 富文字內容 Markdown資訊,僅富文字欄位返回
"markdown": "更新後描述資訊", // 富文字內容markdown格式,可參考
"metion_user_keys":[] // Markdown 中 @ 提到的人員資訊
},
},
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "TaskUpdateEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": int, // 任務所掛工作項對應的work_item_id,64位
"name": "", // 任務所掛工作項對應的名稱
"work_item_type_key": "", // 任務所掛工作項對應的工作項型別
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"nodes": [
{
"id": "", // 節點的id
"state_key": "", // 節點的key,等同id,冗餘
"node_name": "", // 節點的名稱
"task_schedule": [
{
"actual_work_time": null, // 子任務實際工時
"estimate_end_date": int, // 子任務排期結束時間
"estimate_start_date": int, // 子任務排期開始時間
"owners": [], // 子任務負責人
"points": int, // 子任務估分
"task_id": int, // 子任務id
"task_name": "" // 子任務名稱
}
]
}
]
}
}
{
"header": {
"operator": "", // string, 操作者的userkey
"event_type": "TaskUpdateEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
},
"payload": {
"id": int, // 任務所掛工作項對應的work_item_id,64位
"name": "", // 任務所掛工作項對應的名稱
"work_item_type_key": "", // 任務所掛工作項對應的工作項型別
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"updated_at": 1639548775000, // int,64位,更新時間戳
"updated_by": "", // string,更新人的userkey
"task_owners":[{
"id": "", // string,子任務id
"name": "", //string,子任務名稱
"parent_node_id": "", //string,父節點id
"parent_node_state_key": "", // string,父節點stateKey
"parent_node_name": "", // string,父節點名稱
"add_owners": [], // string[], 新增的子任務負責人
"delete_owners": [], // string[], 刪除的子任務負責人
}]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "TimedTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
},
]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "DynamicTimeTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
"trigger_fields":[{ // 工作項觸發本次定時規則的欄位列表
"field_alias": "finish_time",
"field_key": "finish_time",
"field_type_key": "schedule",
"field_value": interface{}
}]
}
]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "DynamicTimeTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
"trigger_nodes":[{ // 工作項觸發本次定時規則的節點列表的排期資訊
"id": "", // 節點的id
"state_key": "", // 節點的key,等同id,冗餘
"node_name": "", // 節點的名稱
"node_schedule":{ // 節點總排期
"estimate_start_date": 1111,
"estimate_end_date": 1111,
"points": 111
},
"owner_schedules":[{ // 差異化排期的人員排期
"owner": "",
"estimate_start_date": 1111,
"estimate_end_date": 1111,
"points": 111
}]
}]
}
]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "DynamicTimeTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
"trigger_tasks": [{ // 僅選擇“指定子任務排期”時存在
"related_node_id": "", // 任務所屬節點ID
"related_node_name": "", // 任務所屬節點名稱
"tasks": [{ // 任務排期資訊
"estimate_end_date": 1111, // 排期開始時間
"estimate_start_date": 1111, // 排期結束時間
"owners": [], // 任務負責人,string陣列
"points": 2 // 估分
}]
}]
}
]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "DynamicTimeTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
"trigger_retention_nodes": [{ // 僅選擇“指定節點停留時間”時存在
"arrive_at": 1111, // 觸發節點到達時間
"state_key": "", // 觸發停留時間節點key
"name": "", // 觸發停留時間節點名稱
"owners": [], // 節點負責人,string陣列
}]
}
]
}
}
{
"header": {
"operator": "", // string, 規則的最後更新人
"event_type": "DynamicTimeTriggerEvent", // string, webhook的event_type
"token": "xxx", // string,註冊webhook填入的token
"uuid": "" // string,冪等串
"rule_name": "" //自動化規則名稱
},
"payload": { // 事件產生的資料
"project_key": "", // string,空間ID
"project_simple_name": "", // string,空間域名
"trigger_at": 1639548775000, // int,64位,本次定時的觸發時間戳
"work_items": [
{
"id": 111, // int,64位,工作項id
"name": "", // string,工作項名稱
"work_item_type_key": "", // string,工作項型別
"trigger_retention_status": [{ // 僅選擇“指定狀態停留時間”時存在
"arrive_at": 1111, // 觸發狀態到達時間
"state_key": "" // 觸發停留時間狀態key
}]
}
]
}
}
{
"header": {
"event_type": "TaskCreateEvent",
"operator": "",
"token": "",
"uuid": "76283b9afefac6fad91132c2ddf2ffc0"
},
"payload": {
"api_owners_schedule": { //排期估分
"estimate_end_date": null,
"estimate_start_date": null,
"owners": [ //負責人userkey
"7147600751534030867"
],
"points": null
},
"created_at": 0,
"created_by": "7147600751534030867",
"project_key": "639068b0bd50cb571bd8591e",
"project_simple_name": "",
"relate_state_id": "node_state_0_79697751",
"relate_state_name": "", //節點名稱
"related_state_key": "state_0", //節點key
"task_id": 79697511, //任務ID
"task_name": "",
"work_item_id": 79697751, //例項ID
"work_item_name": "hook測試",
"work_item_type": "story"
}
}
{
"header": {
"event_type": "TaskDeleteEvent",
"operator": "",
"token": "",
"uuid": "7ea6acf9357906a04ed1b7b1c8877e9b"
},
"payload": {
"api_owners_schedule": {
"estimate_end_date": 1719071999999,
"estimate_start_date": 1718899200000,
"owners": [
"7147600751534030867"
],
"points": 1
},
"project_key": "639068b0bd50cb571bd8591e",
"project_simple_name": "xhh_test1",
"relate_state_id": "node_state_0_79697751",
"relate_state_name": "",
"related_state_key": "state_0",
"task_id": 79697511,
"task_name": "123",
"updated_at": 1718864911164,
"updated_by": "7147600751534030867",
"work_item_id": 79697751,
"work_item_name": "hook測試",
"work_item_type": "story"
}
}
| 101.126.59.78
101.126.59.79
101.126.59.80
101.126.59.81
101.126.59.82 | 122.14.241.24
122.14.241.25
122.14.241.26
122.14.241.27
122.14.241.28 | 111.63.62.149
111.63.62.150
111.63.62.151 | 111.62.104.5
111.62.104.6
111.62.104.7 |
| --- | --- | --- | --- |
| 49.7.49.5
49.7.49.6
49.7.49.7 | 110.249.199.175
110.249.199.176
110.249.199.177
110.249.199.178
110.249.199.179 | 221.194.168.5
221.194.168.6
221.194.168.7
221.194.168.8
221.194.168.9 | 111.225.144.178
111.225.144.179
111.225.144.180 |














