運用 Webhook 建立更進階的工作流程

誰可以使用此功能?

工作流程是可直接在 Slack 執行或與其他工具和服務連結的自動化多步驟工作或流程。Slack 中的工作流程可以視你的需求設定為簡單或複雜,而且通常不需要編寫任何程式碼。

如果你是開發人員或是有編寫程式碼的經驗,也許會想要運用 Webhook 建立可以經由外部服務 (例如你公司使用的內部工具) 中的活動觸發的工作流程。

事前準備

  • 熟悉如何透過指令行或其他工具傳送 HTTP 請求
  • 瞭解傳入的 Webhook。如需指導,請閱讀 Slack API 文件,或向團隊中的開發人員尋求協助。

你將學習到

  • 如何設定 Webhook,以在 Slack 中觸發工作流程
  • 如何建立自訂變數並在工作流程步驟中使用這些變數
  • 如何在發布之前測試工作流程

備註:擁有者和管理員可以運用 Webhook 限制建立工作流程的存取權。如果你沒有在「工作流程建立」中看到此選項,請向擁有者或管理員尋求協助。

提示:如果你想要複習如何設定工作流程和選擇觸發條件,請前往「在 Slack 建立工作流程」。


工作流程設定

Webhook 工作流程基本資訊

Slack 中所有的工作流程都會在觸發條件出現時啟動。如果要用 Webhook 觸發工作流程,你需要將 Webhook 設定為指定的活動在其他服務出現時啟動 Slack 工作流程。舉例來說,你的設定可能會是當網站或服務出現問題,以及發生需要瞭解並解決問題的事件時,工作流程就會張貼訊息至 Slack。

設定 Webhook

你選擇用於建立和設定 Webhook 的外部服務必須提供以下功能:當特定活動發生時向 Slack 提出 HTTP POST 請求。Slack 會在你發布工作流程之後產生專屬的請求網址,因此你可以將 Webhook 設定為透過 HTTP 請求主體向 Slack 傳遞資訊。透過建立變數的方式,Webhook 傳送給 Slack 的任何資料都可以供後續的工作流程步驟參照。

提示:如果您不確定該如何設定 Webhook,我們建議您向團隊中的開發人員尋求協助,或是參考目前使用之服務所提供的支援文件,例如 PostmanZapier

建立自訂變數

若要將資料從其他服務傳遞至 Slack,並在新增至工作流程的步驟中納入 Slack 特定的資訊 (如顯示名稱或電子郵件地址),您最多可新增 20 個變數。

若要建立自訂變數,您必須在「工作流程建立」中,以文字型變數來新增鍵值對。一旦新增變數,您就會看到 HTTP 主體的預覽,以便您確認透過 Webhook 連結 Slack 的其他服務中的 JSON 輸出符合該值。請留意,目前無法在工作流程變數中使用巢狀 JSON 結構。

在下列的例子中,如果使用者嚴重性incident_description 並沒有透過 Webhook 請求傳送,工作流程就無法啟動。 

Incident_webhook_workflow.png

提示:無論在什麼時候,如果你需要新增、移除或修改變數,請在「工作流程建立」開啟工作流程。接著,按一下 Webhook 旁的「編輯」來進行變更。你也必須確對變數所進行的所有變更都在負責傳送 Webhook 請求的外部服務生效。

取得網路請求網址

在你發布工作流程之後,Slack 會產生專屬的請求網址,讓你可以新增至 Webhook 以確保能將你設定的 POST 傳送到正確的 Slack 頻道。請求網址的開頭是 https://hooks.slack.com/workflows,後方則是隨機字元字串。

請務必確保請求網址的安全,因為任何取得連結的人都能觸發你的工作流程。

備註:Webhook 工作流程會限制在每秒一個請求。請於 Slack API 網站深入瞭解速率限制


實際操作所學內容

新增步驟

設定 Webhook 並建立要使用的任何變數之後,就可以開始新增步驟至工作流程。 

  1. 在「工作流程建立」開啟工作流程。 
  2. 按一下「新增步驟」。 
  3. 選擇你想要新增的步驟類型,然後依照提示自訂步驟。


測試你的工作流程

將工作流程發布到工作空間成員頻繁使用的頻道之前,您可以先將第一個步驟設定為張貼到測試頻道。

  1. 傳送 POST 到工作流程的請求網址,並完成各個步驟以確認一切運作正常。
  2. 返回「工作流程建立」並更新工作流程的第一步驟,改成張貼至您選擇的頻道,接著再發布變更


重新產生 Webhook 網址

若 Webhook 的網址遭到曝光,或因任何原因必須變更,則請按照下列步驟: 

  1. 開啟「工作流程建立」並從清單中選取你的工作流程。
  2. 按一下 Webhook 旁的「編輯」。
  3. 選取「重新產生網址」並儲存變更。

備註:重新產生 Webhook 網址時,你的 Slack 工作流程與另一項服務的連結會中斷。請以新的網址更新另一項服務,確保一切順利運作。