본문 바로가기

Stack

MAKE 시나리오 설정: Make+슬랙+구글드라이브+구글시트+알림

도구 Make · Slack · Google Drive · Google Sheets · Obsidian최종 확인 2026-09-26

채널톡 대신 슬랙 무료 플랜으로 같은 아이디어 수집함을 만듭니다. #아이디어 채널에 글이나 사진을 올리면 Make가 옵시디언용 md 파일과 구글 시트 한 줄을 만들고, 원래 메시지에 ✅ 반응을 붙입니다.

채널톡 버전과 비교

항목채널톡슬랙
요금채널톡 요금제무료 플랜으로 충분 (메시지 90일 보관, 앱 연결 10개. 아이디어는 드라이브·시트로 옮겨지니 문제없음)
시작 모듈Custom webhook (즉시)Slack › Watch Public Channel Messages (몇 분 간격 확인)
사진 받기주소 받기(HTTP) → 다운로드(HTTP)Slack › Download a File 하나
사진 + 글한 메시지한 메시지, 여러 장 모두
완료 표시방에 일반 메시지원래 메시지에 ✅ 반응 (또는 스레드 답글)
링크글자 그대로<https://…>처럼 꺾쇠로 감싸서 옴 → 꺾쇠 제거 필요
무한 반복봇 필터 필요반응은 메시지가 아니라 반복 없음

사전 준비

슬랙

  1. slack.com에서 무료 워크스페이스를 만듭니다. 혼자 써도 됩니다.
  2. 공개 채널 #아이디어를 만듭니다.
  3. 내 멤버 ID를 확인합니다. 내 프로필 → ⋮ → 멤버 ID 복사 (U0… 형태, 필터에 사용)

Make

  • Slack 모듈을 처음 추가할 때 Create a connection → 슬랙 워크스페이스 로그인 → 허용.
  • 연결 후 #아이디어 채널에서 /invite @Make를 입력합니다. 반응·파일 받기 권한 때문에 필요할 수 있습니다.

구글 드라이브·시트

채널톡 버전과 같습니다.

  • md 폴더: 옵시디언 볼트의 00. Inbox
  • 사진 폴더: 99. Setting/99. Attachment (링크가 있는 모든 사용자 뷰어로 공유)
  • 시트 헤더: 메시지ID | 일시 | 내용 | 작성자 | md링크 | 사진URL | 상태

입력 규칙은 채널톡 버전과 같습니다. 정규식이 없는 수식은 {{ }}째로 붙여넣고, 항목은 매핑 패널에서 클릭하고, 정규식은 직접 타이핑합니다. 칸에 {{일시}}처럼 글자 그대로 보이면 실패입니다.

전체 구조

모듈 번호는 채널톡 버전을 복제해 고친 번호라 순서대로가 아닙니다. 슬랙으로 바뀐 곳은 [1], [8], [5]이고, 채널톡의 사진 주소 받기(HTTP)와 다운로드(HTTP)가 [8] 하나로 합쳐집니다.

1
Slack › Watch Public Channel Messages#아이디어 감시 · 필터: 내 메시지만
2
Tools › Set variables일시 · 파일일시 · 본문 · 제목 · 본문md
6
Router
1st 경로 · 사진 있음
7Iterator (Files[])
8Slack 파일 다운로드
11Drive 사진 업로드
12Array aggregator
13Set variables (사진md, 사진URL)
2nd 경로 · 항상
14Get multiple variables
3Drive md 파일 생성
4Sheets 한 줄 추가
5Slack ✅ 반응

모듈별 설정

1Slack › Watch Public Channel Messages

Channel은 #아이디어, Limit은 10.

  • 처음 저장할 때 어디서부터 볼지 물으면 From now on을 고릅니다. 예전 메시지를 전부 가져오지 않게 합니다.
  • 몇 분 간격으로 새 메시지를 확인합니다. 간격은 화면 아래 시계 아이콘(스케줄)에서 정하며, Make 무료 요금제는 최소 15분입니다.
  • 실제 항목 이름은 첫 실행 뒤 HISTORY에서 확인하세요. 주로 쓰는 항목: Text, User, Timestamp(ts), Files[], Bot ID, Subtype.

필터[1] → [2] 내 메시지만

위 칸연산자아래 칸
1. UserText operators: Equal to내 멤버 ID (U0…)
1. Thread TimestampBasic operators: Does not exist(비워둠)
  • 두 번째 조건은 스레드 답글을 새 아이디어로 저장하지 않게 막습니다. 스레드 답글도 받으려면 빼세요.
  • 봇 메시지와 ✅ 반응은 첫 번째 조건에서 걸러집니다.

2Tools › Set variables

변수값 (붙여넣기)
일시{{formatDate(parseDate(first(split(1.ts; ".")); "X"); "YYYY-MM-DD HH:mm"; "Asia/Seoul")}}
파일일시{{formatDate(parseDate(first(split(1.ts; ".")); "X"); "YYYYMMDD-HHmmss"; "Asia/Seoul")}}
본문{{ifempty(replace(replace(replace(trim(1.text); "<"; ""); ">"; ""); "&amp;"; "&"); "(사진)")}}
제목{{ifempty(substring(first(split(replace(replace(trim(1.text); "<"; ""); ">"; ""); newline)); 0; 40); "사진메모")}}
  • 1.ts, 1.text가 블록이 안 되면 매핑 패널의 [1] Timestamp, Text를 클릭해 넣으세요.
  • 슬랙 시각(ts)은 1727340000.123456처럼 초 단위라 점 앞만 떼어 씁니다. 감시 간격 때문에 늦게 처리돼도 실제로 보낸 시각이 들어갑니다.
  • 본문: 슬랙은 링크를 <https://…>로 감싸고 &를 &amp;로 바꿔 보냅니다. 이걸 원래대로 돌립니다. 정규식이 없어서 붙여넣어도 깨지지 않습니다.

본문md는 본문 속 모든 링크를 ![링크](링크)로 바꿉니다. 정규식이 있으니 직접 구성합니다.

  1. 함수 패널에서 replace 클릭
  2. 첫 칸: 붙여넣기 {{replace(replace(replace(trim(1.text); "<"; ""); ">"; ""); "&amp;"; "&")}}
  3. 둘째 칸 (타이핑): /https?:\/\/[^\s)\]]+/g
  4. 셋째 칸 (타이핑, 따옴표 없이): ![$&]($&)

필터[6] → [7] 사진 있음

Router의 1st 경로에 겁니다. 위 칸 1. Files[], 연산자 Array operators: Length greater than, 아래 칸 0. 2nd 경로엔 필터가 없습니다.

7Flow Control › Iterator

Array에 1. Files[].

8Slack › Download a File

모듈이 요구하는 칸에 맞춰 Iterator [7] › ID 또는 Iterator [7] › URL Private Download를 넣습니다. 슬랙 파일은 로그인이 필요한 주소라 HTTP 모듈로는 받을 수 없고, 이 모듈이 인증까지 처리합니다. 결과로 File name, Data가 나옵니다.

11Google Drive › Upload a File 사진 저장

폴더는 99. Setting/99. Attachment, File은 Map, Data는 8. Data. File Name은 이렇게 조립해 20260926-172015_1.png를 만듭니다.

  1. Tools [2] › 파일일시 클릭 → 뒤에 _ 타이핑
  2. Iterator [7] › Bundle order position 클릭 → 뒤에 . 타이핑
  3. Iterator [7] › Filetype 클릭 (없으면 {{last(split(7.name; "."))}} 붙여넣기)

12Tools › Array aggregator

Source Module은 Iterator [7]. Aggregated fields는 [11]의 Name, Web View Link.

13Tools › Set variables 사진md · 사진URL

사진md는 사진마다 옵시디언 임베드 ![[파일명]] 한 줄을 만듭니다.

  1. Value 칸에 ![[ 타이핑
  2. {{join(map(12.array; "name"); newline)}} 붙여넣기
  3. join 안 newline 블록 앞에 ]], 뒤에 ![[ 타이핑
  4. 맨 끝 ) 뒤에 ]] 타이핑
![[ join( map( 12. Array[] ; name ) ; ]] newline ![[ ) ]]

사진URL은 {{join(map(12.array; "webViewLink"); newline)}}를 붙여넣습니다.

14Tools › Get multiple variables

2nd 경로 맨 앞에 둡니다. 변수 사진md, 사진URL을 꺼냅니다. 사진이 없으면 둘 다 빈 값이 됩니다.

3Google Drive › Upload a File md 생성

폴더는 00. Inbox, File Name은 2. 파일일시 + _ + 2. 제목 + .md. Data는 아래 템플릿에서 [ ] 자리를 매핑 패널에서 클릭해 넣습니다.

---
created: [2. 일시]
source: slack
author: 석대표
status: 대기
tags: [idea]
message_id: [1. Timestamp]
---

[2. 본문md]

[14. 사진md]

4Google Sheets › Add a Row

Raw, Overwrite 같은 설정은 채널톡 버전과 같고, 칸만 이렇게 넣습니다.

칸값
메시지ID1. Timestamp
일시2. 일시
내용2. 본문
작성자석대표 직접 입력
md링크3. Web View Link
사진URL14. 사진URL
상태대기

5Slack › Add a Reaction ✅

Channel#아이디어 (또는 1. Channel)
Message timestamp1. Timestamp
Emoji namewhite_check_mark (콜론 없이)
  • 저장이 모두 끝난 뒤 원래 메시지에 ✅가 붙습니다. ✅가 없으면 실패한 것이니 HISTORY를 보세요.
  • 스레드 답글이 좋으면 이 모듈 대신 Slack › Create a Message를 씁니다. Channel #아이디어, Text 완료!, Thread message ID(ts) = 1. Timestamp.

즉시 처리가 필요하면

[1]은 몇 분 간격으로 확인하므로, 메시지를 보내고 ✅가 붙기까지 최대 한 간격(무료 요금제 15분)이 걸립니다. 바로 처리하려면 슬랙 앱을 직접 만들어 Event Subscriptions로 Make 웹훅에 보내는 방법이 있습니다. 설정이 훨씬 복잡해서 따로 다루겠습니다.

테스트 체크리스트

0 / 6