Slack 노드 — 팀 알림 자동화의 핵심

Slack 노드 — 팀 알림 자동화의 핵심

팀의 모든 알림이 Slack으로 흐르는 시대. n8n과 Slack을 연결하면 서버 장애, 고객 문의, 배포 완료, 결제 알림을 모두 실시간으로 받을 수 있다.

Slack App 생성 및 Credential 설정

Step 1: Slack App 만들기

  1. api.slack.com/apps 접속
  2. "Create New App" → "From scratch" 선택
  3. App Name: "n8n Bot", Workspace 선택 → Create

Step 2: OAuth 권한 설정

  1. 좌측 메뉴 → OAuth & Permissions
  2. Bot Token Scopes 에 아래 스코프 추가:
Scope 설명
chat:write 메시지 전송
channels:read 채널 목록 읽기
files:write 파일 업로드
reactions:write 이모지 반응 추가
users:read 사용자 정보 읽기
  1. "Install to Workspace" 클릭 → 권한 승인
  2. Bot User OAuth Token 복사 (xoxb-...)

Step 3: n8n에 등록

  1. n8n → Credentials → Add Credential → "Slack OAuth2 API" 또는 "Slack API"
  2. 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 설정

  1. Slack App → Event Subscriptions → Enable Events: ON
  2. Request URL: https://your-n8n.com/webhook/slack-events
  3. 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 자동 등록까지.