跳轉至

Webhook 使用

在配置自動化規則時,若在觸發器下方新增 Webhook 操作並觸發時,會推送整合後的新版 Webhook 格式。本文將介紹在自動化規則中如何使用 Webhook。

從以前事件與通知系統自動遷移至自動化的配置,會相容老版 Webhook 格式,但請儘快升級。如果刪除了舊配置後重新配置 Webhook,相容格式不再推送,只推送新版格式。

配置方式

在配置自動化規則中,新增 Webhook 操作即可。示例如下:

glOmBMJYpx

對應關係

本章節列表了新版觸發器與新版 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
建立工作項
ko82MM3H9s
需求建立 StoryCreated WorkitemCreateEvent
工作項建立 EventCreate-{工作項型別}
欄位值修改
Gl04qJeAR0
需求修改 StoryValueChanged WorkitemUpdateEvent
工作項修改 EventUpdate-{工作項型別}
終止工作項
Y2HZnkf91w
需求終止 StoryAborted WorkitemAbortedEvent(工作項終止)
WorkitemRestoreEvent(工作項恢復)
工作項終止 EventAborted-{工作項型別}
需求狀態修改
xrq1cMeDWS
需求狀態修改 StoryStageChanged WorkitemStatusEvent
工作項狀態修改
HjR0EXlerG
工作項狀態更新 EventUpdateStatus-{工作項型別}
任務狀態修改
JpreBVnfyD
任務狀態修改 EventUpdateStatus-task TaskStatusEvent
任務修改
jLKC2lfzJu
任務修改 EventUpdate-task TaskUpdateEvent
角色操作
lKPa33eVrL
需求人員分配 StoryRoleAssigned WorkitemPersonAssignedEvent
工作項人員分配 EventRoleAssigned-{工作項型別}
節點負責人分配(需求) WFNodeOwnerChanged
節點負責人分配(其他工作項) WFNodeOwnerChanged-{工作項型別}
節點狀態修改
Noii9znq8i
節點完成(需求)
節點完成(其他工作項)
WFNodeChecked
WFNodeChecked-{工作項型別}
WorkFlowNodeStatusEvent
節點到達(需求)
節點到達(其他工作項)
WFNodeReached
WFNodeReached-{工作項型別}
節點回滾(需求)
節點回滾(其他工作項)
WFNodeRollbacked
WFNodeRollbacked-{工作項型別}
節點排期操作
nJRHzYDFVt
節點排期變更(需求) WFNodeScheduleChanged WorkFlowNodeScheduleEvent
節點排期變更(其他工作項) WFNodeScheduleChanged-{工作項型別}
評論操作
O1O3hVMLfo
需求評論操作 StoryCommentAdded WorkitemCommentEvent
工作項評論操作 EventCommentAdded-{工作項型別}
工作項歸檔
fK6g8uUjbU
需求歸檔 StoryFinished WorkitemFinishEvent
工作項歸檔 EventFinished-{工作項型別}
刪除工作項
SSTrcFUsJl
需求刪除 StoryDeleted WorkitemDeleteEvent
工作項刪除 EventDelete-{工作項型別}
定時迴圈
I27TEta17k
TimedTriggerEvent
動態時間任務
yKWE5YWoV7
DynamicTimeTriggerEvent

相容性說明

Webhook 是一種用於實時傳遞資料的機制,其資料結構可能會隨著業務需求的變化而變化。為了確保系統的可擴充套件性和相容性,以下是針對 Webhook 資料結構設計的相容性說明。

  1. Webhook 資料的基本結構示例如下:
  2. 相容性策略
  3. 新增欄位:當提供方在資料結構中新增欄位時,消費方應能夠忽略未識別的欄位,而不會影響其正常處理。
  4. 預設值:消費方可以針對欄位設定合理的預設值,確保在提供方未提供該欄位的情況下,系統仍能正常執行。

新版 Webhook 對應 Body 格式

  1. Webhook 設計有冪等串,header -> uuid,可以考慮使用冪等串去重;
  2. Webhook 推送後 6s 超時,超時會重試,最大重試次數 3 次;
  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 |