특정 슬랙채널에 하루동안 메시지(댓글포함)를 AirTable에 저장하는 과정입니다.

소개

회사에서 특정 채널에 하루 동안 여러 대화가 오가면서 모든 메시지를 파악하기 어려워, 정보 격차가 발생하는 일이 자주 있습니다. 이를 개선하고자 매일 저녁 해당 채널의 대화를 수집해, 다음 날 중요 정보를 리마인드하는 자동화 시스템을 구축했습니다.

흐름도를 보여주는 웹페이지의 스크린샷


자동화 구성

  • 사용 툴 : Make.com, ChatGPT, AirTable, Slack

  • 자동화 흐름: AirTable → Slack 메시지 조회 → 채널 종류 확인 → Slack 댓글 조회 → 원글 여부 판별 → Slack 사용자 정보 확인 → ChatGPT 요약 → AirTable 저장

진행 방법

1단계 : AirTable 조회 - Slack 채널 정보 조회

특정 Slack 채널 정보를 AirTable에서 조회합니다. 여기에 저장된 채널 코드, 채널명, 채널 유형, 전송 시간 등의 정보를 기반으로 수집 작업을 시작합니다. 수집은 매일 밤 11시에 시작합니다.

Azure 관리 콘솔의 스크린샷
수집할 채널을 조회하는 단계(AirTable)

2단계 : Slack 메시지 조회 - 특정 기간 내 메시지 가져오기

채널명과 기간을 기준으로 Slack에서 메시지를 조회하여 해당 채널의 대화를 가져옵니다.

시냅스의 동기화 설정 스크린샷

3단계 : 채널 유형 확인 - 공개/비공개 여부 판단

Slack 댓글을 조회하기전에 조회하는 채널이 공개, 비공개인지 확인을 합니다.

Azure에서 필터를 설정하는 방법
채널유형이 "비공걔" 인지 확인

필터 옵션 설정 스크린샷
필터 옵션 설정 스크린샷

4단계 : Slack 댓글 조회

전 단계에서 Router로 분기된 과정이 채널 타입에 따라 Slack Slack 댓글을 조회합니다.

채널타입이 "비공개" 일때는 Channel Type = Private Channel 로 됩니다.
비공개 채널은 메시지를 확인하는 Slack Bot이 해당 채널에 초대되어 있어야 정상적으로 조회를 할 수 있습니다.

채널 유형이 "비공개" 일때 댓글 조회하는 과정

채널타입이 "공개" 일때는 Channel Type = Public Channel 로 됩니다.

Slack 채널의 설정을 보여주는 화면
Slack 채널의 설정을 보여주는 화면

5단계 : 메시지가 원글인지 댓글인지 판단

메시지가 원글일때는 지피티를 이용해 요약하기 위해서 판단을 합니다.

슬랙 메시지중에 원글을 판단하는 케이스는 두가지가 있습니다. (OR 조건)

  • thread_ts 가 null 일때는 원글이지만 댓글이 없는 경우입니다.

  • thread_ts = ts 같을때는 원글이지만 댓글이 있는 경우 입니다.

조회한 메시지가 원글인지 확인

thread_ts 가 null 이 아니거나 thread_ts 와 ts 가 다를 경우는 댓글로 판단 합니다. (And 조건)

조회한 메시지가 댓글인지 확인

6단계 : AitTable에 수집된 내용인지 확인

원글 메시지와 댓글 메시지를 AirTable에 각각 저장을 하는 구조로 만들어서 각각 수집여부를 확인 합니다.

수집여부를 확인하는 과정이 있는 이유는 하루에 여러번 수집하는 경우를 대비해 Ts기준으로 수집여부를 확인 합니다.

원글 메시지 일때 수집여부 확인 과정

Azure sys 설정 페이지의 스크린샷
댓글 메시지 일때 수집여부 확인 과정

7단계 : 수집 대상인지 확인

수집되지 않는 메시지인지 확인하고 추가로 수집하면 않되는 메시지 조건을 추가하여 조건에 만족하는 메시지만 저장을 하기 위해 판단하는 단계 입니다.

원글글 메시지 수집 대상인지 확인

댓글 메시지 수집 대상인지 확인

8단계 : Slack 유저정보 확인

Slack 메시지를 조회하면 메시지를 보낸 사람 U로 시작하는 정보로 조회가 됩니다.

보낸 사람 이름으로 치환하기 위해서 호출하는 단계 입니다.

느슨한 연결을 만드는 방법
메시지를 보낸 사람 확인하는 과정

9단계 : 지피티 내용 요약

원글 메시지 내용 요약을 위해 지피티를 활용합니다.

댓글 메시지 일때는 전송하는 과정에서 요약후 전송하기 때문에 수집단계에서는 그냥 저장을 합니다.

원글 메시지 일때 지피티로 내용 요약하는 과정

메시지 내용에 따라 지피티가 정상적으로 요약을 하지 못하는경우 부가설명을 하기때문에 "냉무"로 답하라고 명시합니다. (예를 들어 "넵" , "ㅋㅋㅋㅋ" 일 경우를 말합니다.)

10단계 : AirTable 저장 - 최종 데이터 저장

ChatGPT 요약이 완료된 경우 요약 내용을 저장하고, 요약 불가 시 원문을 그대로 저장합니다.

지피티가 요약을 했을경우 요약내용을 저장하는 과정

지피티가 "냉무"로 답했을 경우 원문으로 저장하는 과정

결과와 배운 점

비공개 채널의 메시지를 확인하려면 Slack 봇이 해당 채널에 초대되어 있어야 하며, Make.com에서 Slack과 연결할 때는 Slack APP을 생성하고 Client ID와 Client Secret을 설정해야 한다는 점을 알게 되었습니다.

다음 단계

다음 글에서는 AirTable에 수집된 정보를 지정된 시간에 Slack 채널로 자동 전송하는 방법을 설명하겠습니다.

도움 받은 글 (옵션)

Slack APP 설정 방법 : Slack APP 설정 바로확인

Make.com Help : Make.com Help 바로 확인

3
7개의 답글

👉 이 게시글도 읽어보세요