이것저것~ 👨‍💻

Slack에 매일 알림을 줘보자 with Zapier

chattymin 2025. 1. 1. 22:08
728x90

왜 만들었을까?

우리팀 PM님이 데일리 스크럼 관련 스래드를 매일매일 직접 만드시더라.

그래서 너무 귀찮을것 같다는 생각이 들어 봇을 만들어 매일 리마인드를 주자는 생각을 했다.

 

 

어떻게 만들 수 있을까? - 리마인더

우선 Slack의 기본 기능인 리마인더를 활용해보자.

 

/remind 명령어 뒤에 어느 채널에 할건지, 어떤 내용을 나타낼건지, 언제 리마인드를 줄 것인지 순서대로 나타내면 된다.

 

채널

#뒤에 해당 채널명을 작성한다면 자동완성이 뜬다. 그걸 클릭하면 더욱 안전하게 적용이 가능하다.

 

 

무엇

어떤 내용을 리마인드 할 것인지 작성할 수 있다.

단순 텍스트로 작성하면 된다.

 

띄어쓰기를 넣어도 정상 작동한다.

큰따옴표로 묶어줘도 되고, 안묶어줘도 된다.

 

 

언제

at 뒤에 원하는 날짜/시간을 써주면 된다.

시간을 설정하지 않는다면 default는 오전 9시 이다.

 

at everday : 매일 알림 

at tomorrow : 내일 알림

at 7:00 AM : 오전 7시

at 11:00 PM : 오후 10시

at everday 11:00 PM : 매일 오후 11시

 

 

 

그렇게 최종적으로 [매일 저녁 6시 56분에 #봇테스트 채널에 "안뇽 하세요 반가워요" 라고 알림을 주는 리마인더] 를 만들기 위해서는 이런 명령어를 사용하면 된다.

/remind #봇테스트 안뇽 하세요 반가워요 at everyday 6:56 PM

 

실수로 잘못 만들었다면 /remind list 를 작성하여 만들어진 리마인더를 보고 삭제할 수 있다.

 

 

 

 

문제 상황 - 매일 날짜를 알려주세요

저 리마인더를 만들고 PM에게 보여주니 "오늘 날짜도 나오면 좋을 것 같다" 라는 이야기를 들었다.

 

그래서 오늘날짜를 넣으려고 생각해보니 리마인더는 정적인 텍스트만 가능하다.

 

해결법을 찾아보자.

 

첫 번째 방법은 슬랙 봇을 만드는 것이다.

python으로 코드를 작성하고 api 앱을 만들어 사용하는 것인데 이것은 너무 공수가 많이 들어갈 것 같았다.

그래서 다음 방법으로 생각한 것이 이번에 내가 구현한 방법인 Zapier이다.

 

 

오늘의 날짜를 메시지에 추가하자 with Zapier

슬랙 봇을 만드는 것은 내가 필요한 요구사항 대비 과한 리소스가 필요하다.

그래서 찾은 다른 방법이 Zapier이다.

 

Zapier는 자동화와 관련된 것들을 쉽게 구현할 수 있도록 기능을 제공해준다.

그래서 내가 사용한 기능은 Schedule by ZapierFormatter by Zapier이다.

 

Schedule by Zapier

이 기능은 특정 스케쥴마다 trigger를 발생시켜준다.

첫 번째로 주기를 정할 수있다.

나는 매일 알림이 와야하기에 Every Day를 선택했다.

 

 

다음은 몇시에 trigger를 실행시킬지 정할 수 있다.

PM의 요구사항대로 오후 10시에 알림이 울리도록 10:00 PM을 선택해줬다.

 

만약 원하는 시간이 없다면 우측에 있는 점 세개를 누른 후 custom도 가능하다.

 

 

Trigger on weekends는 주말에도 트리거를 실행할지 설정하는 것이다.

우리는 주말에도 알림이 필요하여 yes로 두었다.

 

마지막으로 test를 하면 된다.

 

Test trigger를 누르면 성공할 것이다.

 

그렇다면 Schedule by Zapier 설정은 끝이다.

 

 

 

Formatter by Zapier

Formatter는 사실 없어도 된다.

하지만 더 이쁘게 하기 위함이다.

 

현재 날짜를 내가 원하는 모습으로 나타내고자 사용했다.

Formatter를 사용하지 않았을 경우 : 2024-01-01

Formatter를 사용하여 커스텀 후 : [1월 1일]

 

event를 원하는 대로 설정하면 되는데, 이때 나는 Date/Time으로 설정했다.

 

 

이 다음 설정해줘야 할게 참 많다.

자 가보자

 

Transform : 복잡한걸 할게 아니라면 Format으로 설정해주면 된다.

 

 

input은 우측에 있는 +버튼을 누르면 원하는 값을 받아올 수 있다.

 

난 이때 매일매일의 날짜가 필요했기에 Pretty Date로 받아왔다.

 

 

그 이후는 간단하다.

 

To Format은 내가 원하는 변환 방법이다. 

즉, 1월 1일 이렇게 변환하기를 원하기에 MM월 DD일 이란 포멧 방식을 제공했다.

 

 

TImezone은 어느 시차에 맞게 하는것인지 설정하는 것이라 난 서울로 설정했다.

 

From Format은 초기 데이터가 어떻게 제공되는지를 나타낸다.

위를 보면 Jan 1, 2025 와 같이 제공된다는 것이 보인다. 그렇기에 MM/DD/YYYY로 설정해줬다.

 

 

마지막 테스트를 해본다면

 

아래있는 Output으로 결과물을 볼 수 있다.

 

 

Slack 연결하기

 

내가 원하는 기능은 Message를 보내는 것이었기에 Send Channel Message를 설정해준다.

Account는 어느 슬랙 워크스페이스에 보낼 것인지 설정하면 된다.

 

Channel : 해당 워크스페이스의 어느 채널에 보낼지 결정

Message Text : 보내고 싶은 메시지 작성. + 버튼을 눌러 위에 설정한 formatter에서 예쁘게 변환한 날짜를 받아왔다.

Send as a bot : 이 값을 No로 한다면 내 계정으로 보내는 것으로 인식된다. 나는 봇으로 하고싶었기에 Yes를 했다.

Bot Name : 봇 이름이다. 아래처럼 나온다.

Bot Icon : 이 값은 이모지와 이미지 링크만 가능하다. 변경한다면 아래처럼 원하는 이미지를 넣을 수 있다. 친구 얼굴사진이라 모자이크.

Include a link to this Zap : yes를 한다면 저 채팅에 zap의 링크가 추가된다. 굳이 싶어서 No

나머지 기능들은 필요하다면 보길 바란다.

난 필요가 없어서 안넣었다.

 

 

이렇게 하고 테스트하면 정상적으로 날아오는 걸 볼 수 있다.

 

 

 

근데 왜 내가 정한 시간에 안와요??

놀랍게도 내가 지정한 시간에 채팅이 안온다.

 

원인은 내 계정의 시간대가 잘못설정되어있기 때문이다.

디폴트는 UTC로 되어있기에 Seoul로 변경해줘야 한다.

 

 

 

이렇게 변경해주면 원하는 시간대에 지정한 메시지가 오게 된다.

728x90