슬랙 인커밍 웹훅처럼, 워크플로로 채널에 메시지 보내는 방법

·2024년 7월 20일
0
post-thumbnail

이전에 Slack Incoming Webhook 2가지 방법 정리한 바 있습니다.
이번에는 슬랙 워크플로를 활용해 인커밍 웹훅처럼 채널에 메시지를 보내는 방법에 대해 설명하겠습니다.

슬랙 워크플로 방식의 가장 큰 장점은, 단순히 채널에 메시지를 보내는 것뿐만 아니라 다양한 추가 작업을 함께 설정할 수 있다는 점입니다.
슬랙 워크플로를 그대로 사용할 수 있어서 다양한 연동과 연계를 코딩 없이 할 수 있다는 점이 특히 강조할 만합니다.

슬랙 워크플로 방식으로 동시에 여러 채널에 메시지를 보내는 예제를 정리해보았습니다.

슬랙 워크플로 생성 및 설정

신규 워크플로를 생성합니다.
Start the workflow 조건을 From a webhook으로 설정합니다.

Set Up Variables를 선택합니다.

Key: message, Data type: Text를 입력하고 Done을 선택합니다.
이로써 message 변수가 등록됨을 확인하고 Continue를 선택합니다.

Messages 스텝을 선택하고, Send a message to a channel을 선택합니다.

채널을 선택하고(예: test-웹훅), 메시지 폼을 작성합니다. Insert a variable을 선택하여 message 변수를 포함시킵니다.


이 과정을 반복하여 스텝을 추가합니다.
예를 들어, 채널에 두 번, 개인 메시지로 한 번 총 세 개의 스텝을 추가할 수 있습니다.

워크플로 이름 영역을 클릭하고, 적당한 워크플로 이름을 작성합니다.

Start with a webhook의 연필 모양 아이콘을 클릭하고, Web request URL을 저장해둡니다.

워크플로를 퍼블리싱합니다.

테스트 및 결과

위 단계에서 생성된 Web request URL로 HTTP Post 요청을 보내봅니다. (Key: message를 포함하여)

다음은 Python 샘플 코드입니다

import requests
import json

url = "https://hooks.slack.com/triggers/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"
headers = {
    "Content-Type": "application/json"
}
payload = {
    "message": "슬랙 워크플로를 통해서 웹훅 메시지를 발송합니다."
}

response = requests.post(url, headers=headers, data=json.dumps(payload))

print(f"Status Code: {response.status_code}")
print(f"Response Body: {response.text}")

위 코드에서 message로 입력된 메시지가 그대로 포함되어 전송됩니다.
워크플로에 추가한 스텝대로 채널 두 번, 개인 메시지 한 번이 발송됩니다.

정리하며

  1. Slack Incoming webhook 방식 외에 슬랙 워크플로로도 메시지를 보낼 수 있어 신기했습니다.

  2. 슬랙 워크플로 방식은 단순히 채널에 메시지를 보내는 것뿐만 아니라 다양한 추가 작업을 설정할 수 있어 좋았습니다. 그것도 추가 코딩 없이 말이죠.

  3. 슬랙 워크플로는 공동작업자를 지정하여, 다른 사람도 쉽게 스텝을 추가하거나 변경할 수 있어 기존 슬랙 인커밍 웹훅보다 더 편리하다고 생각합니다.

  4. 슬랙 워크플로는 통계를 확인할 수 있어 더 유용합니다.

0개의 댓글