[[부록06_Slack_App_생성_및_슬래시_명령_설정_가이드|부록 06]]. Slack App 생성 및 슬래시 명령 설정 가이드
[!abstract] Slack App 생성, 슬래시 명령(Slash Command) 등록, Webhook URL 연결까지 안내합니다. 이 가이드를 따라하면 Slack 채팅창에서 명령어 하나로 n8n 워크플로를 호출할 수 있게 되거든요.
n8n의 Webhook 노드를 Slack과 연동하려면, Slack App을 만들고 슬래시 명령(Slash Command)을 등록해야 합니다. 처음 들으면 복잡하게 느껴질 수 있지만, 이 가이드를 따라 한 번만 설정하면 Slack에서 n8n 워크플로를 자유롭게 호출할 수 있습니다.
이 부록은 다음 내용을 다룹니다.
| 순서 | 항목 | 설명 |
|---|---|---|
| 1 | Slack 워크스페이스 준비 | 무료 워크스페이스 생성 |
| 2 | Slack App 만들기 | api.slack.com에서 앱 생성 |
| 3 | 슬래시 명령 등록 | /weather 명령 추가 + Request URL 연결 |
| 4 | App Home 봇 사용자 생성 | 봇 이름 설정 + Messages Tab 활성화 |
| 5 | 워크스페이스에 앱 설치 | Install App → Allow |
[!tip] 4.1.9 Webhook 실습에서 오셨나요? 4.1.9 섹션의 Slack 날씨 조회봇 실습을 위해 이 가이드를 보고 계신다면, 아래 항목을 순서대로 모두 완료한 뒤 돌아가세요.
순서 완료할 항목 비고 1 Slack 워크스페이스 준비 무료 워크스페이스로 충분 2 Slack App 만들기 api.slack.com에서 생성 3 슬래시 명령 등록 /weather명령 추가4 Request URL 설정 n8n Webhook Production URL 입력 5 App Home에서 봇 사용자 생성 Features → App Home → 봇 이름 설정 6 워크스페이스에 앱 설치 Allow 클릭 6단계까지 완료하면 준비 끝입니다. [[Day19_04.1.9_메신저_연동_Slack_날씨_조회봇_만들기]]로 돌아가세요.
1. Slack 워크스페이스 준비
Slack App을 만들려면 먼저 Slack 워크스페이스가 필요합니다. 이미 사용 중인 워크스페이스가 있다면 이 단계를 건너뛰어도 됩니다.
[!info] 무료 플랜으로 충분합니다. Slack 무료 플랜(Free)에서도 슬래시 명령과 Webhook 연동이 모두 가능합니다. 유료 플랜은 필요 없어요.
워크스페이스가 없다면?
1) 웹 브라우저에서 slack.com에 접속합니다. 화면 상단의 "무료로 시작하기"(또는 "Get started for free") 버튼을 클릭합니다.
![[그림부록06-1.png]] [그림부록06-1] Slack 홈페이지 — "무료로 시작하기" 버튼 위치
2) 이메일 주소를 입력하고 계속 버튼을 클릭합니다. 입력한 이메일로 인증 코드가 발송됩니다.
![[그림부록06-2.png]] [그림부록06-2] 이메일 입력 및 인증 코드 발송 화면
3) 이메일에서 6자리 인증 코드를 확인하고 입력합니다.
![[그림부록06-3.png]] [그림부록06-3] 이메일 인증 코드 입력 화면
4) 워크스페이스 이름을 입력합니다. 연습용이니 자유롭게 지어도 됩니다.
| 설정 항목 | 예시 값 | 설명 |
|---|---|---|
| 워크스페이스 이름 | 내 자동화 연습 | 나중에 변경 가능 |
| 채널 이름 | general | 기본 채널 (자동 생성) |
![[그림부록06-4.png]] [그림부록06-4] 워크스페이스 이름 입력 화면
5) 팀원 초대 화면이 나오면 "나중에"(Skip) 버튼을 클릭하여 건너뜁니다. 연습용이므로 혼자 사용해도 충분합니다.
![[그림부록06-5.png]] [그림부록06-5] 팀원 초대 건너뛰기
6) 워크스페이스가 생성되면 아래와 같은 화면이 표시됩니다. 왼쪽 상단에 워크스페이스 이름이 보이면 성공입니다.
![[그림부록06-6.png]] [그림부록06-6] 워크스페이스 생성 완료 — Slack 기본 화면
2. Slack App 만들기
이제 본격적으로 Slack App을 만들어 보겠습니다. Slack App은 Slack에 추가 기능을 제공하는 확장 프로그램이에요. 우리는 이 앱을 통해 슬래시 명령 → n8n Webhook 연결을 만듭니다.
STEP 1. Slack API 페이지 접속
1) 웹 브라우저에서 Slack API 페이지에 접속합니다.
https://api.slack.com/apps
2) Slack 계정으로 로그인합니다. 이미 로그인되어 있다면 바로 Your Apps 페이지가 표시됩니다.
![[그림부록06-7.png]] [그림부록06-7] Slack API — Your Apps 페이지 (앱 목록)
[!tip] 북마크 추천
https://api.slack.com/apps페이지를 브라우저에 북마크해 두세요. 나중에 슬래시 명령을 추가하거나 설정을 변경할 때 자주 방문하게 됩니다.
STEP 2. 새 앱 생성
1) 화면 우측 상단의 Create New App 버튼을 클릭합니다.
![[그림부록06-8.png]] [그림부록06-8] "Create New App" 버튼 위치
2) 팝업이 나타나면 From scratch를 선택합니다. (아래쪽의 "From an app manifest"가 아닙니다.)
![[그림부록06-9.png]] [그림부록06-9] "From scratch" 선택 화면
[!info] From scratch vs From an app manifest
- From scratch: 하나씩 수동으로 설정 (우리가 사용할 방법)
- From an app manifest: JSON/YAML 설정 파일로 한번에 생성 (개발자용)
초보자는 From scratch가 각 설정의 의미를 이해하기 쉽습니다.
3) 다음 정보를 입력합니다.
| 설정 항목 | 값 | 설명 |
|---|---|---|
| App Name | n8n 날씨봇 | 앱 이름 (자유롭게 변경 가능) |
| Pick a workspace | (여러분의 워크스페이스) | 드롭다운에서 선택 |
![[그림부록06-10.png]] [그림부록06-10] App Name 입력 및 워크스페이스 선택
[!warning] 워크스페이스가 드롭다운에 안 보이나요? Slack API 페이지에 로그인한 계정과, 워크스페이스를 만든 계정이 다를 수 있습니다. 같은 이메일로 로그인했는지 확인하세요. 여러 워크스페이스에 가입되어 있다면 드롭다운에 모두 표시됩니다.
4) Create App 버튼을 클릭합니다.
![[그림부록06-11.png]] [그림부록06-11] "Create App" 버튼 클릭
5) 앱이 생성되면 Basic Information 페이지가 자동으로 표시됩니다. 이 페이지는 앱의 기본 설정 대시보드입니다.
![[그림부록06-12.png]] [그림부록06-12] 앱 생성 완료 — Basic Information 페이지
3. 슬래시 명령 등록하기
Slack App이 만들어졌으니, 이제 사용자가 Slack에서 입력할 **슬래시 명령(Slash Command)**을 등록합니다.
STEP 3. Slash Commands 메뉴 접속
1) Basic Information 페이지의 왼쪽 사이드바에서 Features 섹션을 찾습니다.
![[그림부록06-13.png]] [그림부록06-13] 왼쪽 사이드바 — Features 섹션 위치
2) Slash Commands를 클릭합니다.
![[그림부록06-14.png]] [그림부록06-14] Slash Commands 메뉴 선택
3) Create New Command 버튼을 클릭합니다.
![[그림부록06-15.png]] [그림부록06-15] "Create New Command" 버튼
STEP 4. 슬래시 명령 상세 설정
명령어 생성 폼이 나타납니다. 다음과 같이 입력합니다.
| 설정 항목 | 값 | 설명 |
|---|---|---|
| Command | /weather | 슬래시(/) 뒤에 입력할 명령어 |
| Request URL | (n8n Webhook Production URL) | n8n이 요청을 수신할 URL |
| Short Description | 도시 이름으로 현재 날씨를 조회합니다 | 명령어 설명 (필수) |
| Usage Hint | [도시 이름] | 사용법 안내 (선택) |
![[그림부록06-16.png]] [그림부록06-16] 슬래시 명령 입력 폼 — 각 필드 위치
각 필드를 좀 더 자세히 살펴보겠습니다.
Command 필드
/weather를 입력합니다. 슬래시(/)는 직접 입력해야 합니다. 이 명령어가 Slack 채팅창에서 사용자가 입력할 명령어가 됩니다.
[!info] 명령어 이름 규칙
- 반드시
/로 시작해야 합니다.- 영문 소문자, 숫자, 하이픈(
-)만 사용 가능합니다.- 공백은 사용할 수 없습니다.
- 예:
/weather,/check-status,/report2024
Request URL 필드
이 필드가 가장 중요한 설정입니다. Slack에서 슬래시 명령을 실행하면, Slack이 이 URL로 POST 요청을 보냅니다.
![[그림부록06-17.png]] [그림부록06-17] Request URL 필드에 n8n Webhook Production URL 입력
[!warning] Request URL 입력 방법 — 반드시 Production URL을 사용하세요
- n8n에서 해당 워크플로를 열고 Webhook 노드를 클릭합니다.
- 노드 패널 상단에 두 가지 URL이 표시됩니다.
- Test URL: 테스트 실행 시에만 동작 (Slack 연동에 사용 불가)
- Production URL: 워크플로가 발행(Publish)된 상태에서 동작
- Production URL을 복사하여 Request URL 란에 붙여넣습니다.
Production URL 예시:
https://your-n8n-domain.com/webhook/slack-weather
![[그림부록06-18.png]] [그림부록06-18] n8n Webhook 노드 — Test URL과 Production URL 구분
[!danger] 주의: 워크플로가 반드시 Publish(발행) 상태여야 합니다 n8n 워크플로가 미발행(Unpublished) 상태이면, Production URL이 요청을 수신하지 않습니다.
- 워크플로 캔버스 우측 상단의 Publish 버튼을 클릭하여 발행하세요.
- 발행 전에 이 URL을 입력하면 Slack에서 "Your URL didn't respond" 오류가 발생합니다.
Short Description 필드
도시 이름으로 현재 날씨를 조회합니다를 입력합니다. 이 설명은 Slack에서 /를 입력했을 때 명령어 자동완성 목록에 표시됩니다.
Usage Hint 필드 (선택)
[도시 이름]을 입력합니다. 사용자에게 명령어 뒤에 어떤 값을 입력해야 하는지 안내하는 힌트입니다. 선택 사항이지만, 입력해 두면 사용자 경험이 좋아집니다.
![[그림부록06-19.png]]
[그림부록06-19] Slack 채팅창에서 /weather 자동완성 — Short Description과 Usage Hint 표시 예시
4) 모든 필드를 입력했으면 화면 우측 하단의 Save 버튼을 클릭합니다.
![[그림부록06-20.png]] [그림부록06-20] "Save" 버튼으로 슬래시 명령 저장
5) 저장이 완료되면 Slash Commands 목록에 방금 등록한 /weather 명령이 표시됩니다.
![[그림부록06-21.png]]
[그림부록06-21] 슬래시 명령 등록 완료 — 목록에 /weather 표시
[!info] 슬래시 명령의 작동 원리
Slack에서
/weather 서울을 입력하면, Slack은 다음과 같은 데이터를 **Request URL(n8n Webhook)**에 POST 요청으로 전송합니다.
필드 설명 예시 값 command실행된 명령어 /weathertext명령어 뒤에 입력한 텍스트 서울user_name명령을 실행한 사용자 dantechannel_name명령이 실행된 채널 generalresponse_url지연 응답을 보낼 수 있는 URL https://hooks.slack.com/...n8n Webhook에서는 이 데이터를
{{ $json.body.text }},{{ $json.body.user_name }}등으로 접근할 수 있습니다.
4. App Home 봇 사용자 생성
슬래시 명령을 등록했지만, 아직 워크스페이스에 앱을 설치할 수 없습니다. **봇 사용자(Bot User)**를 먼저 만들어야 하거든요.
[!warning] 이 단계를 건너뛰면 설치 시 오류가 발생합니다
봇 사용자 없이 설치를 시도하면 다음과 같은 오류 메시지가 표시됩니다:
"Please add at least one feature or permission scope to install your app."
또는
"This app asks for permission to install a bot in your workspace but is not currently configured as a bot."
아래 순서대로 봇 사용자를 먼저 생성하세요.
STEP 5. 봇 이름 설정
1) 왼쪽 사이드바에서 Features → App Home을 클릭합니다.
![[그림부록06-22.png]] [그림부록06-22] 왼쪽 사이드바 — Features → App Home 메뉴 위치
2) Your App's Presence in Slack 섹션을 찾습니다. 여기에서 봇의 표시 이름을 설정합니다.
![[그림부록06-23.png]] [그림부록06-23] App Home — "Your App's Presence in Slack" 섹션
3) Edit 버튼을 클릭하고, **Display Name (Bot Name)**과 Default Username을 입력합니다.
| 설정 항목 | 예시 값 | 설명 |
|---|---|---|
| Display Name (Bot Name) | n8n 날씨봇 | Slack 채팅에서 표시되는 이름 (한글 가능) |
| Default Username | n8n-weatherbot | 영문 소문자, 숫자, 하이픈만 사용 |
![[그림부록06-24.png]] [그림부록06-24] 봇 이름(Display Name)과 기본 사용자명(Default Username) 입력
4) Save 버튼을 클릭하여 저장합니다.
![[그림부록06-25.png]] [그림부록06-25] 봇 이름 저장 완료
[!info] 왜 App Home에서 설정해야 하나요?
Slack에서 "봇 사용자"는 슬래시 명령을 추가한다고 자동 생성되지 않습니다. App Home에서 봇 이름을 등록하는 순간 비로소 봇 사용자 객체가 만들어지고, 그때부터 워크스페이스 설치가 가능해집니다. 이 과정을 빠뜨리면 설치 자체가 진행되지 않으니, 반드시 완료해 주세요.
STEP 5-1. Messages Tab 활성화
5) 같은 App Home 페이지에서 아래로 스크롤합니다. Show Tabs 섹션을 찾습니다.
![[그림부록06-26.png]] [그림부록06-26] App Home — Show Tabs 섹션 위치
6) Messages Tab 항목을 찾아 토글을 ON으로 켭니다.
7) 토글을 켜면 아래에 체크박스가 나타납니다. "Allow users to send Slash commands and messages from the messages tab" 체크박스를 체크합니다.
![[그림부록06-27.png]] [그림부록06-27] Messages Tab 활성화 + "Allow users to send Slash commands..." 체크
[!tip] Messages Tab을 켜야 하는 이유
이 설정을 켜지 않으면 Slack에서 봇과의 1:1 대화(DM) 화면에 메시지 입력창이 비활성화됩니다.
- OFF: "이 앱은 메시지를 비활성화했습니다" 라는 툴팁이 표시되고, 입력창이 회색으로 잠깁니다.
- ON: 채널뿐 아니라 봇과의 1:1 DM에서도
/weather 서울슬래시 명령을 입력할 수 있습니다.
5. 워크스페이스에 앱 설치하기
봇 사용자까지 생성했으니, 이제 마지막 단계입니다. 앱을 실제 워크스페이스에 설치합니다.
STEP 6. 앱 설치
1) 왼쪽 사이드바에서 Settings → Install App을 클릭합니다.
![[그림부록06-28.png]] [그림부록06-28] 왼쪽 사이드바 — Settings → Install App 메뉴 위치
2) Install to Workspace 버튼을 클릭합니다.
![[그림부록06-29.png]] [그림부록06-29] "Install to Workspace" 버튼
3) 권한 요청 화면이 표시됩니다. 앱이 워크스페이스에서 어떤 권한을 사용하는지 보여줍니다. 내용을 확인한 후 허용(Allow) 버튼을 클릭합니다.
![[그림부록06-30.png]] [그림부록06-30] 권한 요청 화면 — "허용(Allow)" 버튼 클릭
4) 설치가 완료되면 Bot User OAuth Token이 표시됩니다. 이 토큰은 슬래시 명령 기능에서는 직접 사용하지 않으므로 따로 복사할 필요는 없습니다.
![[그림부록06-31.png]] [그림부록06-31] 앱 설치 완료 — Bot User OAuth Token 표시 화면
이제 Slack 워크스페이스의 아무 채널에서 /weather를 입력하면 명령어가 인식됩니다. 명령을 실행하면 Slack이 n8n Webhook URL로 POST 요청을 보냅니다.
슬래시 명령 추가하기
하나의 Slack App에 여러 개의 슬래시 명령을 등록할 수 있습니다. 예를 들어 날씨봇 외에 환율 조회, 서버 상태 확인 등의 명령을 추가할 수 있죠.
1) Slack API 페이지에서 해당 앱을 선택합니다.
2) Features → Slash Commands 메뉴를 클릭합니다.
3) Create New Command 버튼을 클릭하고, 새 명령어와 해당 n8n Webhook URL을 입력합니다.
| 명령 예시 | 용도 | n8n Webhook Path |
|---|---|---|
/weather | 날씨 조회 | /webhook/slack-weather |
/exchange | 환율 조회 | /webhook/slack-exchange |
/status | 서버 상태 확인 | /webhook/slack-status |
/report | 일일 리포트 생성 | /webhook/slack-report |
각 명령마다 별도의 n8n 워크플로(Webhook 노드)를 만들면, 하나의 Slack App으로 다양한 자동화 봇을 운영할 수 있습니다.
[!tip] 명령을 추가한 후에는 앱을 재설치해야 합니다 새 슬래시 명령을 추가하면 Slack이 앱 재설치를 요구합니다. Settings → Install App 페이지에 노란색 배너가 표시되면, Reinstall to Workspace 버튼을 클릭하세요.
![[그림부록06-33.png]] [그림부록06-33] 명령 추가 후 "Reinstall to Workspace" 배너 표시
앱 설정 변경하기
이미 등록한 슬래시 명령의 설정을 나중에 변경할 수도 있습니다.
Request URL 변경
n8n 워크플로의 Webhook URL을 변경했다면, Slack 쪽에서도 Request URL을 업데이트해야 합니다.
1) Slack API → 해당 앱 선택 → Features → Slash Commands
2) 변경할 명령어 옆의 **연필 아이콘(Edit)**을 클릭합니다.
![[그림부록06-34.png]] [그림부록06-34] 슬래시 명령 목록 — Edit(연필) 아이콘 위치
3) Request URL을 새 URL로 수정하고 Save를 클릭합니다.
앱 삭제
실습이 끝나고 앱이 더 이상 필요 없다면 삭제할 수 있습니다.
1) Slack API → 해당 앱 선택 → Settings → Basic Information
2) 페이지 맨 아래 Delete App 섹션에서 Delete App 버튼을 클릭합니다.
![[그림부록06-35.png]] [그림부록06-35] Basic Information 하단 — "Delete App" 버튼 위치
정리하며
이 부록의 핵심을 정리하면 다음과 같습니다.
- 봇 사용자 먼저, 설치는 나중에: App Home에서 봇 이름(Display Name + Default Username)을 등록해야 비로소 봇 사용자 객체가 생성되고 워크스페이스에 설치할 수 있습니다.
- Request URL은 Production URL로: Test URL은 테스트 모드에서만 동작합니다. n8n 워크플로를 **Publish(발행)**해야 Production URL이 요청을 수신합니다.
- Messages Tab 활성화 필수: 봇과의 1:1 DM에서 슬래시 명령을 사용하려면 App Home → Show Tabs에서 Messages Tab과 하위 체크박스를 모두 켜야 합니다.
- 명령 추가 후엔 재설치: 새 슬래시 명령을 추가하면 Reinstall to Workspace로 앱을 재설치해야 활성화됩니다.
설치 확인 체크리스트
- Slack App이 생성되었는가?
-
/weather슬래시 명령이 등록되었는가? - Request URL에 n8n Webhook Production URL이 입력되었는가?
- n8n 워크플로가 Publish(발행) 상태인가?
- App Home에서 봇 이름(Display Name + Default Username)이 설정되었는가?
- App Home → Messages Tab이 활성화되었는가?
- 앱이 워크스페이스에 설치되었는가?
- Slack 채팅창에서
/입력 시/weather자동완성이 표시되는가?
💡 자동완성이 안 보이면 Slack 앱을 완전 종료 후 재시작하거나, 웹 브라우저에서 Slack을 열어 확인해 보세요.
자주 하는 실수와 해결법
| 증상 | 원인 | 해결법 |
|---|---|---|
/weather 입력 시 "명령어를 찾을 수 없습니다" | 앱이 워크스페이스에 설치되지 않음 | Settings → Install App → Install to Workspace 실행 |
| "dispatch_failed" 오류 | Request URL이 잘못됨 또는 n8n 미발행 | Request URL 확인 + 워크플로 Publish 상태 확인 |
| 명령 등록 시 "Your URL didn't respond" | n8n 서버에 접근 불가 | 외부 접근 가능한 HTTPS 주소인지 확인. 로컬 n8n이라면 [[부록12_Cloudflare_Tunnel_로컬_n8n_외부_공개_가이드|부록 12]] 참고 |
| 응답이 오지 않음 (무한 로딩) | Respond to Webhook 노드 미연결 | n8n 워크플로에서 Respond to Webhook 노드가 연결되어 있는지 확인 |
| "Please add at least one feature or permission scope" | 봇 사용자가 생성되지 않음 | App Home에서 봇 이름 설정 (STEP 5 참고) |
| 봇과의 1:1 DM에서 메시지 입력창 비활성화 | App Home의 Messages Tab이 꺼져 있음 | App Home → Show Tabs → Messages Tab 체크박스 활성화 |
| "Slash commands can only be used in channels, not in DMs" | Messages Tab의 하위 체크박스 미체크 | "Allow users to send Slash commands..." 체크박스까지 활성화 |
| 워크스페이스 드롭다운에 내 워크스페이스가 안 보임 | 다른 계정으로 로그인됨 | Slack API 페이지에서 로그아웃 후 올바른 계정으로 재로그인 |
💡 다음 단계: 텔레그램으로도 같은 방식의 메시지 자동화를 만들 수 있습니다. 다음으로 [[부록07_텔레그램_봇_생성_및_n8n_연동_가이드|부록 07. 텔레그램 봇 생성 및 n8n 연동 가이드]]를 참고하세요.
