Slack 노드 — 팀 알림 자동화의 핵심
팀의 모든 알림이 Slack으로 흐르는 시대. n8n과 Slack을 연결하면 서버 장애, 고객 문의, 배포 완료, 결제 알림을 모두 실시간으로 받을 수 있다.
Slack App 생성 및 Credential 설정
Step 1: Slack App 만들기
- api.slack.com/apps 접속
- "Create New App" → "From scratch" 선택
- App Name: "n8n Bot", Workspace 선택 → Create
Step 2: OAuth 권한 설정
- 좌측 메뉴 → OAuth & Permissions
- Bot Token Scopes 에 아래 스코프 추가:
| Scope | 설명 |
|---|---|
chat:write | 메시지 전송 |
channels:read | 채널 목록 읽기 |
files:write | 파일 업로드 |
reactions:write | 이모지 반응 추가 |
users:read | 사용자 정보 읽기 |
- "Install to Workspace" 클릭 → 권한 승인
- Bot User OAuth Token 복사 (
xoxb-...)
Step 3: n8n에 등록
- n8n → Credentials → Add Credential → "Slack OAuth2 API" 또는 "Slack API"
- Access Token에
xoxb-...토큰 붙여넣기
Slack 메시지 전송
기본 텍스트 메시지
Resource: Message
Operation: Send
Channel: #general (또는 채널 ID)
Text: 안녕하세요! n8n에서 보내는 자동 메시지입니다.
Block Kit으로 서식 있는 메시지
Slack의 Block Kit을 사용하면 섹션, 버튼, 이미지 등 리치한 메시지를 보낼 수 있다.
[
{
"type": "header",
"text": { "type": "plain_text", "text": "🚨 서버 알림" }
},
{
"type": "section",
"fields": [
{ "type": "mrkdwn", "text": "*상태:*\n🔴 Down" },
{ "type": "mrkdwn", "text": "*서버:*\napi-prod-01" }
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "에러: `Connection timeout after 30s`"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": { "type": "plain_text", "text": "🔍 로그 확인" },
"url": "https://grafana.example.com/logs"
}
]
}
]
파일 업로드
Resource: File
Operation: Upload
Channel: #reports
File: (Binary 데이터)
Filename: daily-report-2026-04-21.csv
스레드 답글
기존 메시지에 스레드로 답글을 달려면:
Thread TS: {{ $json.ts }} (원본 메시지의 타임스탬프)
Slack Trigger — 이벤트 수신
Event Subscriptions 설정
- Slack App → Event Subscriptions → Enable Events: ON
- Request URL:
https://your-n8n.com/webhook/slack-events - Subscribe to bot events 추가:
message.channels,app_mention
n8n에서 Slack Trigger 사용
[Slack Trigger] → [IF: 메시지 내용 분석] → [HTTP Request: 처리] → [Slack: 답글]
| 이벤트 | 설명 |
|---|---|
message.channels | 채널에 메시지가 올라올 때 |
app_mention | 봇이 멘션될 때 (@n8n-bot) |
reaction_added | 이모지 반응이 추가될 때 |
실전 패턴
서버 모니터링 → Slack 알림
[Schedule: 5분마다] → [HTTP: 헬스체크] → [IF: 응답 ≠ 200] → [Slack: #ops 알림]
배포 알림
[GitHub Webhook: Push to main] → [Edit Fields] → [Slack 메시지]
메시지: 🚀 *배포 완료*
커밋: {{ $json.body.head_commit.message }}
작성자: {{ $json.body.head_commit.author.name }}
승인 요청 (버튼 활용)
[Webhook: 요청 접수] → [Slack: 승인 버튼 메시지] → [Wait: Webhook 대기]
↑
[Slack 버튼 클릭 → Webhook]
📝 정리
- [x] Slack App: api.slack.com에서 App 생성 → Bot Token Scopes 설정 → 설치
- [x] 메시지 전송: 텍스트, Block Kit(서식), 파일 업로드, 스레드 답글
- [x] Slack Trigger: Event Subscriptions으로 실시간 이벤트 수신
- [x] 채널 라우팅: 조건에 따라 다른 채널로 메시지 전송
- [x] 실전 패턴: 서버 모니터링, 배포 알림, 승인 워크플로우
다음 편 예고
15편: Notion 노드 — 지식 관리 자동화
Notion 데이터베이스를 n8n으로 자동 관리하자. RSS → AI 요약 → Notion 자동 등록까지.