Zapier로 슬랙봇 만들기
업무 자동화, 생산성과 같은 키워드와 함께 자주 등장해 이름은 익히 알고 있었습니다. 간단히 설명하면, [특정 트리거가 발생하면 특정 액션이 발생하는 플로우]를 자동화할 수 있는 툴입니다.
어느 날, '아 이거 사람이 보는 게 아니라 자동으로 알람이 왔으면 좋겠다' 싶었을 때 Zapier가 떠올랐습니다. 옆자리 동료가 담당하는 제품에서는 지표 A가 임계점에 도달하기 전에 특정 조치를 수동으로 진행하는 절차가 필요했는데요. 1년에 2~3번 있을까 말까 하는 일이라 원래는 특정 시즌에 정기적으로 점검해왔는데, 최근 들어 일의 발생 시점이 불규칙적으로 변했습니다. 사실 자동화를 못 했다기보다는 자동화가 필요하지 않았던 영역인데 예상치 못하게 수요가 생긴 상황이었습니다. Zapier로 간결하게 만들어보기로 했습니다.
저는 Trigger : [지표 A가 임계점*0.8을 초과]할 때, Action : [슬랙봇을 통해 자동으로 알림을 수신]하고자 했습니다.
Zapier 생성법에 대해서는 아주 친절하고 상세하게 설명하는 글이 이미 많습니다. 그래서 이 글에서는 Zapier를 사용하기 위한 Zapier 외 툴에서의 준비사항 및 제가 고민했던 것들 위주로만 정리해보았습니다.
Trigger 설정을 하기 위해 필요한 것은 아래 2가지였습니다.
(1) 지표 A 집계하기
(2) 지표 A와 임계점*0.8 비교해서 초과 여부 판단하기
그래서 필요한 지표만 추출하는 쿼리를 작성해 1일에 1번씩 Refresh 되도록 설정했습니다. (Redash 기준) Refresh 주기를 설정하는 방법은 아래 링크를 참고해보시면 도움이 되실 거예요.
그 다음, 지표 현황에 대한 접근성을 높이기 위해 쿼리 실행 결과를 구글 스프레드 시트로 옮겼습니다. 쿼리 실행 완료 후 우측 상단 메뉴 > Show API Key > "Results in CSV format"의 링크를 복사합니다. 그리고 이 데이터를 그대로 불러오고 싶은 시트 셀에 =importdata("방금 복사한 링크") 를 입력합니다. 그러면 쿼리 실행 결과가 잘 옮겨져 있고, 쿼리 자동 실행시 업데이트되는 값도 들어와있습니다.
이렇게 쿼리 실행 결과를 불러온 다음 그 옆 열에 지표별 임계점을, 그 옆 열에 임계점*0.8 초과 여부를 판단한 결과가 기입되도록 했습니다. 초과시에는 "조치 필요"라는 상태값이 작성되도록 했습니다. 그 반대의 경우에는 "아직 안전해요"라는 나름 다정한 멘트를 작성해보았습니다. 숫자만 있으면 혼란스러울 수도 있는 이 시트를 처음 보는 사람도 잘 이해할 수 있도록 하고 싶었습니다.
이제 이 시트의 H열이 "조치 필요"인 경우를 Trigger로 설정할 수 있었습니다.
정말 다양한 선택지가 있었는데 저는 슬랙봇에 자동 메시지가 발송되도록 했습니다. 업무 중에 항상 화면에 띄워놓기 때문에 접근성이 높은 것도 있었고 무엇보다 1명이 아닌 여러 유관자에게 전달되어야 하는 알림이라는 점을 감안했습니다.
메시지에는 조치가 필요한 대상을 명시하고 시트 링크를 첨부해, 멘션받은 유관자가 상세 데이터에 쉽게 접근할 수 있도록 했습니다.
메시지 발송의 주체가 될 슬랙봇 계정과 관련한 약간의 디자인도 추가할 수 있는데요, 저는 좋은 소식만 물고 오는 요정봇이 되라는 야심찬 포부를 담아 요정 이모지를 추가해두었습니다. 호호.
친절한 가이드가 아주 많다보니, 큰 어려움 없이 Zapier를 사용해 '00 요정봇'을 만들 수 있었습니다. 작은 일이었음에도 불구하고 동료 분께서 칭찬 채널에 슬랙봇을 자랑해주시기도 했습니다. PM이 하는 업무는 참 여러가지가 있지만 그 중 뇌 용량을 덜 차지해도 되는 것들은 최대한 자동화를 해둘 방법을 찾아봐도 좋겠다는 생각이 들었습니다.
자동화 첫걸음으로 Zapier는 접근성, 사용성 측면에서 합리적인 선택지였던 것 같습니다. 다만 주의가 필요한 사항도 공유하고 싶습니다.
꼭 알람이 필요한 영역인지 확인하기
alarm의 사전적인 뜻은 "경보, 공포, 알람시계, 두려움"입니다. 가끔 핸드폰에서 경보음이 울리면 깜짝 놀라 메시지를 확인해보곤 하는데요. 예상치 못한 시점에 익숙하지 않은 UI로 알람이 와야 알람으로서의 제 기능을 할 수 있다는 생각이 듭니다. 알람으로 만들려고 하는 것의 빈도가 너무 자주 발생하지는 않는지를 확인하고 알람 자동화를 진행하는 것을 추천드려요.
요금제별 Task 개수 확인하기
(24.01.16 기준) 무료 계정에서는 한 달 간 최대 100개의 Task를 수행할 수 있습니다. 즉 자동화 알림을 100번까지만 수행할 수 있다는 것인데요. 제 봇에는 충분한 용량이지만, 용량 초과시 적시에 알람을 받지 못할 수 있으니- 이 개수를 꼭 한번 확인해보시기를 추천드려요.
자동화는 그 자체로 의미가 있다기보다는 자동화함으로써 꼭 사람의 머리가 쓰여야 하는 더 중요한 업무에 집중할 수 있도록 한다는 점에서 의미가 있습니다. 그래서 Zap 생성보다는 Zap이 꼭 필요한지에 대한 판단과 관련 자료를 표기하는 방식, 공유하는 방식을 좀 더 고민했었는데요, 다음에 머릿 속에 '업무 자동화'라는 키워드가 다시 떠오르면 이 때 배운 경험을 꼭 기억해야겠습니다.