Slack 채널 구성 완전 가이드
학습 후 할 수 있는 것
- ✅ Slack에서 Clawdbot과 상호작용하며 AI 어시스턴트로 작업 완료
- ✅ DM 보안 정책 구성으로 개인 프라이버시 보호
- ✅ 그룹에서 Clawdbot 통합으로 @멘션 및 명령에 지능적으로 응답
- ✅ Slack Actions 도구 사용(메시지 전송, Pin 관리, 멤버 정보 확인 등)
- ✅ Socket Mode 또는 HTTP Mode 두 가지 연결 방식 선택
현재 겪고 있는 문제점
Slack은 팀 협업의 핵심 도구이지만 다음 문제에 직면할 수 있습니다:
- 팀 토론이 여러 채널에 분산되어 중요한 정보 누락
- 과거 메시지, Pin 또는 멤버 정보를 빠르게 조회해야 하지만 Slack 인터페이스가 불편
- 다른 앱으로 전환하지 않고 Slack에서 직접 AI 기능 사용 원함
- 그룹에서 AI 어시스턴트를 활성화할 경우 메시지 홍수나 프라이버시 유출 우려
언제 사용하는가
- 팀 일상 소통: Slack이 팀의 주요 소통 도구인 경우
- Slack 네이티브 통합 필요: Reaction, Pin, Thread 등 기능 활용
- 다중 계정 요구: 여러 Slack Workspace 연결 필요
- 원격 배포 시나리오: HTTP Mode를 사용하여 원격 Gateway 연결
🎒 시작 전 준비
필요한 리소스:
- Slack API 콘솔 - Slack App 생성 및 관리
- Clawdbot 구성 파일 - 일반적으로
~/.clawdbot/clawdbot.json위치
핵심 개념
Clawdbot의 Slack 채널은 Bolt 프레임워크를 기반으로 구현되며 두 가지 연결 모드를 지원합니다:
| 모드 | 적용 시나리오 | 장점 | 단점 |
|---|---|---|---|
| Socket Mode | 로컬 Gateway, 개인 사용 | 구성 간단(Token만 필요) | 지속적인 WebSocket 연결 필요 |
| HTTP Mode | 서버 배포, 원격 액세스 | 방화벽 통과, 로드 밸런싱 지원 | 공용 IP 필요, 구성 복잡 |
기본값은 Socket Mode를 사용하며 대부분 사용자에게 적합합니다.
인증 메커니즘:
- Bot Token (
xoxb-...) - 필수, API 호출용 - App Token (
xapp-...) - Socket Mode 필수, WebSocket 연결용 - User Token (
xoxp-...) - 선택 사항, 읽기 전용 작업용(과거 기록, Pin, Reactions) - Signing Secret - HTTP Mode 필수, Webhook 요청 검증용
함께 따라하기
1단계: Slack App 생성
이유 Slack App은 Clawdbot과 Workspace 간의 다리 역할을 하며 인증 및 권한 제어를 제공합니다.
- Slack API 콘솔 방문
- Create New App 클릭 → From scratch 선택
- App 정보 입력:
- App Name:
Clawdbot(또는 원하는 이름) - Pick a workspace to develop your app in: Workspace 선택
- App Name:
- Create App 클릭
다음이 표시되어야 합니다: App 생성 성공, 기본 구성 페이지 진입.
2단계: Socket Mode 구성(권장)
팁
로컬 Gateway를 사용하는 경우 Socket Mode를 권장하며 구성이 더 간단합니다.
이유 Socket Mode는 공용 IP가 필요 없으며 Slack의 WebSocket 서비스를 통해 연결합니다.
- App 구성 페이지에서 Socket Mode 찾기 → On으로 전환
- App-Level Tokens로 스크롤 → Generate Token and Scopes 클릭
- Token 부분에서 scope 선택:
connections:write체크
- Generate Token 클릭, 생성된 App Token 복사(
xapp-로 시작)
다음이 표시되어야 합니다: 생성된 Token 형식: xapp-1-A0B1C2D3E4F5G6H7I8J9K0L1M2N3O4P
보안 알림
App Token은 민감한 정보이므로 안전하게 보관하고 공개 저장소에 유출하지 마세요.
3단계: Bot Token 및 권한 구성
- OAuth & Permissions → Bot Token Scopes로 스크롤
- 다음 scopes(권한) 추가:
Bot Token Scopes(필수):
chat:write # 메시지 전송/편집/삭제
channels:history # 채널 기록 읽기
channels:read # 채널 정보 가져오기
groups:history # 그룹 기록 읽기
groups:read # 그룹 정보 가져오기
im:history # DM 기록 읽기
im:read # DM 정보 가져오기
im:write # DM 세션 열기
mpim:history # 그룹 DM 기록 읽기
mpim:read # 그룹 DM 정보 가져오기
users:read # 사용자 정보 조회
app_mentions:read # @멘션 읽기
reactions:read # Reaction 읽기
reactions:write # Reaction 추가/삭제
pins:read # Pin 목록 읽기
pins:write # Pin 추가/삭제
emoji:read # 사용자 정의 Emoji 읽기
commands # 슬래시 명령 처리
files:read # 파일 정보 읽기
files:write # 파일 업로드설명
위는 Bot Token의 필수 권한이며 Bot이 메시지 읽기, 응답 전송, Reaction 및 Pin 관리를 정상적으로 수행할 수 있습니다.
- 페이지 상단으로 스크롤 → Install to Workspace 클릭
- Allow 클릭하여 App이 Workspace에 액세스하도록 권한 부여
- 생성된 Bot User OAuth Token 복사(
xoxb-로 시작)
다음이 표시되어야 합니다: Token 형식: xoxb-YOUR-BOT-TOKEN-HERE
팁
User Token이 필요한 경우(읽기 전용 작업용), User Token Scopes로 스크롤하여 다음 권한 추가:
channels:history,groups:history,im:history,mpim:historychannels:read,groups:read,im:read,mpim:readusers:read,reactions:read,pins:read,emoji:readsearch:read
그런 다음 Install App 페이지에서 User OAuth Token 복사(xoxp-로 시작).
User Token Scopes(선택 사항, 읽기 전용):
- 기록, Reaction, Pin, Emoji 및 검색 읽기용만 사용
- 쓰기 작업은 여전히 Bot Token 사용(
userTokenReadOnly: false설정 제외)
4단계: 이벤트 구독 구성
- App 구성 페이지에서 Event Subscriptions 찾기 → Enable Events 활성화
- Subscribe to bot events에 다음 이벤트 추가:
app_mention # @Bot 멘션
message.channels # 채널 메시지
message.groups # 그룹 메시지
message.im # DM 메시지
message.mpim # 그룹 DM 메시지
reaction_added # Reaction 추가
reaction_removed # Reaction 삭제
member_joined_channel # 멤버 채널 참여
member_left_channel # 멤버 채널 퇴장
channel_rename # 채널 이름 변경
pin_added # Pin 추가
pin_removed # Pin 삭제- Save Changes 클릭
5단계: DM 기능 활성화
- App 구성 페이지에서 App Home 찾기
- Messages Tab 활성화 → Enable Messages Tab 켜기
- Messages tab read-only disabled: No 표시 확인
다음이 표시되어야 합니다: Messages Tab이 활성화되어 사용자가 Bot과 DM 대화 가능.
6단계: Clawdbot 구성
이유 Slack Token을 Clawdbot에 구성하여 연결을 설정합니다.
방식 1: 환경 변수 사용(권장)
# 환경 변수 설정
export SLACK_BOT_TOKEN="xoxb-당신의BotToken"
export SLACK_APP_TOKEN="xapp-당신의AppToken"
# Gateway 재시작
clawdbot gateway restart다음이 표시되어야 합니다: Gateway 시작 로그에 Slack: connected 표시.
방식 2: 구성 파일
~/.clawdbot/clawdbot.json 편집:
{
"channels": {
"slack": {
"enabled": true,
"botToken": "xoxb-당신의BotToken",
"appToken": "xapp-당신의AppToken"
}
}
}User Token이 있는 경우:
{
"channels": {
"slack": {
"enabled": true,
"botToken": "xoxb-당신의BotToken",
"appToken": "xapp-당신의AppToken",
"userToken": "xoxp-당신의UserToken",
"userTokenReadOnly": true
}
}
}다음이 표시되어야 합니다: Gateway 재시작 후 Slack 연결 성공.
7단계: Bot을 채널에 초대
- Slack에서 Bot을 추가하려는 채널 열기
/invite @Clawdbot입력(Bot 이름으로 교체)- Add to channel 클릭
다음이 표시되어야 합니다: Bot이 채널에 성공적으로 추가되고 "Clawdbot has joined the channel" 표시.
8단계: 그룹 보안 정책 구성
이유 Bot이 모든 채널에서 자동 응답하지 않도록 방지하여 프라이버시 보호.
~/.clawdbot/clawdbot.json 편집:
{
"channels": {
"slack": {
"enabled": true,
"botToken": "xoxb-당신의BotToken",
"appToken": "xapp-당신의AppToken",
"groupPolicy": "allowlist",
"channels": {
"C1234567890": {
"allow": true,
"requireMention": true
},
"#general": {
"allow": true,
"requireMention": true
}
}
}
}
}필드 설명:
groupPolicy: 그룹 정책"open"- 모든 채널 허용(권장하지 않음)"allowlist"- 나열된 채널만 허용(권장)"disabled"- 모든 채널 차단
channels: 채널 구성allow: 허용/거부requireMention: @멘션 필요 시 응답 여부(기본값true)users: 추가 사용자 화이트리스트skills: 해당 채널에서 사용할 스킬 제한systemPrompt: 추가 시스템 프롬프트
다음이 표시되어야 합니다: Bot이 구성된 채널에서만 응답하며 @멘션 필요.
9단계: DM 보안 정책 구성
이유 낯선 사용자가 DM으로 Bot과 상호작용하지 못하도록 방지하여 프라이버시 보호.
~/.clawdbot/clawdbot.json 편집:
{
"channels": {
"slack": {
"enabled": true,
"botToken": "xoxb-당신의BotToken",
"appToken": "xapp-당신의AppToken",
"dm": {
"enabled": true,
"policy": "pairing",
"allowFrom": ["U1234567890", "@alice", "[email protected]"]
}
}
}
}필드 설명:
dm.enabled: DM 활성화/비활성화(기본값true)dm.policy: DM 정책"pairing"- 낯선 사용자가 페어링 코드를 받으며 승인 필요(기본값)"open"- 누구나 DM 허용"allowlist"- 화이트리스트 사용자만 허용
dm.allowFrom: 화이트리스트- 사용자 ID(
U1234567890) 지원 - @멘션(
@alice) 지원 - 이메일(
[email protected]) 지원
- 사용자 ID(
페어링 프로세스:
- 낯선 사용자가 Bot에 DM 전송
- Bot이 페어링 코드 응답(유효기간 1시간)
- 사용자가 페어링 코드를 관리자에게 제공
- 관리자 실행:
clawdbot pairing approve slack <페어링코드> - 사용자가 화이트리스트에 추가되어 정상적으로 사용 가능
다음이 표시되어야 합니다: 알 수 없는 발신자가 페어링 코드를 수신하며 Bot이 메시지를 처리하지 않음.
10단계: Bot 테스트
- 구성된 채널에서 메시지 전송:
@Clawdbot 안녕하세요 - 또는 Bot에 DM 전송
- Bot 응답 관찰
다음이 표시되어야 합니다: Bot이 메시지에 정상적으로 응답.
확인점 ✅
- [ ] Slack App 생성 성공
- [ ] Socket Mode 활성화됨
- [ ] Bot Token 및 App Token 복사됨
- [ ] Clawdbot 구성 파일 업데이트됨
- [ ] Gateway 재시작됨
- [ ] Bot이 채널에 초대됨
- [ ] 그룹 보안 정책 구성됨
- [ ] DM 보안 정책 구성됨
- [ ] 테스트 메시지 응답 수신
주의 사항
일반적인 오류 1: Bot 응답 없음
문제: 메시지 전송 후 Bot 응답 없음.
가능한 원인:
- Bot이 채널에 추가되지 않음 →
/invite @Clawdbot으로 초대 requireMention이true로 설정됨 → 메시지 전송 시@Clawdbot필요- Token 구성 오류 →
clawdbot.json의 Token이 올바른지 확인 - Gateway 실행 안 됨 →
clawdbot gateway status실행하여 상태 확인
일반적인 오류 2: Socket Mode 연결 실패
문제: Gateway 로그에 연결 실패 표시.
해결 방법:
- App Token이 올바른지 확인(
xapp-로 시작) - Socket Mode가 활성화되어 있는지 확인
- 네트워크 연결 확인
일반적인 오류 3: User Token 권한 부족
문제: 일부 작업 실패, 권한 오류 메시지.
해결 방법:
- User Token에 필요한 권한 포함되어 있는지 확인(3단계 참조)
userTokenReadOnly설정 확인(기본값true, 읽기 전용)- 쓰기 작업 필요 시
"userTokenReadOnly": false설정
일반적인 오류 4: 채널 ID 해석 실패
문제: 구성된 채널 이름을 ID로 해석할 수 없음.
해결 방법:
- 채널 이름 대신 채널 ID 우선 사용(예:
C1234567890) - 채널 이름이
#로 시작하는지 확인(예:#general) - Bot이 해당 채널에 액세스할 권한이 있는지 확인
고급 구성
권한 설명
Bot Token vs User Token
- Bot Token: 필수, Bot의 주요 기능용(메시지 전송, 기록 읽기, Pin/Reaction 관리 등)
- User Token: 선택 사항, 읽기 전용 작업용만(기록, Reaction, Pin, Emoji, 검색)
- 기본
userTokenReadOnly: true, 읽기 전용 보장 - 쓰기 작업(메시지 전송, Reaction 추가 등)은 여전히 Bot Token 사용
- 기본
향후 필요할 수 있는 권한:
다음 권한은 현재 버전에서 필수가 아니지만 향후 지원 추가 시 필요할 수 있습니다:
| 권한 | 용도 |
|---|---|
groups:write | 프라이빗 채널 관리(생성, 이름 변경, 초대, 보관) |
mpim:write | 그룹 DM 세션 관리 |
chat:write.public | Bot이 참여하지 않은 채널에 메시지 게시 |
files:read | 파일 메타데이터 나열/읽기 |
이러한 기능 활성화 필요 시 Slack App의 Bot Token Scopes에 해당 권한 추가.
HTTP Mode(서버 배포)
Gateway가 원격 서버에 배포된 경우 HTTP Mode 사용:
- Slack App 생성, Socket Mode 비활성화
- Signing Secret 복사(Basic Information 페이지)
- Event Subscriptions 구성, Request URL을
https://당신의도메인/slack/events로 설정 - Interactivity & Shortcuts 구성, 동일한 Request URL 설정
- Slash Commands 구성, Request URL 설정
구성 파일:
{
"channels": {
"slack": {
"enabled": true,
"mode": "http",
"botToken": "xoxb-당신의BotToken",
"signingSecret": "당신의SigningSecret",
"webhookPath": "/slack/events"
}
}
}다중 계정 구성
여러 Slack Workspace 연결 지원:
{
"channels": {
"slack": {
"accounts": {
"workspace1": {
"name": "Team A",
"enabled": true,
"botToken": "xoxb-Workspace1Token",
"appToken": "xapp-Workspace1Token"
},
"workspace2": {
"name": "Team B",
"enabled": true,
"botToken": "xoxb-Workspace2Token",
"appToken": "xapp-Workspace2Token"
}
}
}
}
}슬래시 명령 구성
/clawd 명령 활성화:
- App 구성 페이지에서 Slash Commands 찾기
- 명령 생성:
- Command:
/clawd - Request URL: Socket Mode는 필요 없음(WebSocket 통해 처리)
- Description:
Send a message to Clawdbot
- Command:
구성 파일:
{
"channels": {
"slack": {
"slashCommand": {
"enabled": true,
"name": "clawd",
"ephemeral": true
}
}
}
}답장 스레드 구성
채널에서 Bot의 답장 방식 제어:
{
"channels": {
"slack": {
"replyToMode": "off",
"replyToModeByChatType": {
"direct": "all",
"group": "first"
}
}
}
}| 모드 | 동작 |
|---|---|
off | 기본값, 메인 채널에서 답장 |
first | 첫 번째 답장이 스레드로, 이후 답장은 메인 채널 |
all | 모든 답장이 스레드 |
Slack Actions 도구 활성화
Agent가 Slack 특정 작업을 호출하도록 허용:
{
"channels": {
"slack": {
"actions": {
"reactions": true,
"messages": true,
"pins": true,
"memberInfo": true,
"emojiList": true
}
}
}
}사용 가능한 작업:
sendMessage- 메시지 전송editMessage- 메시지 편집deleteMessage- 메시지 삭제readMessages- 과거 메시지 읽기react- Reaction 추가reactions- Reactions 나열pinMessage- 메시지 PinunpinMessage- Pin 해제listPins- Pin 나열memberInfo- 멤버 정보 가져오기emojiList- 사용자 정의 Emoji 나열
수업 요약
- Slack 채널은 Socket Mode와 HTTP Mode 두 가지 연결 방식 지원
- Socket Mode 구성 간단, 로컬 사용 권장
- DM 보안 정책 기본값은
pairing, 낯선 사용자는 승인 필요 - 그룹 보안 정책은 화이트리스트 및 @멘션 필터링 지원
- Slack Actions 도구는 풍부한 작업 능력 제공
- 다중 계정 지원으로 여러 Workspace 연결
다음 수업 예고
다음 수업에서는 **Discord 채널**을 학습합니다.
다음을 배우게 됩니다:
- Discord Bot 구성 방법
- Token 가져오기 및 권한 설정
- 그룹 및 DM 보안 정책
- Discord 특정 도구 사용
부록: 소스 코드 참조
클릭하여 소스 코드 위치 보기
업데이트 날짜: 2026-01-27
| 기능 | 파일 경로 | 행 번호 |
|---|---|---|
| Slack 구성 타입 | src/config/types.slack.ts | 1-150 |
| Slack 온보딩 로직 | src/channels/plugins/onboarding/slack.ts | 1-539 |
| Slack Actions 도구 | src/agents/tools/slack-actions.ts | 1-301 |
| Slack 공식 문서 | docs/channels/slack.md | 1-508 |
핵심 타입 정의:
SlackConfig: Slack 채널 메인 구성 타입SlackAccountConfig: 단일 계정 구성(socket/http 모드 지원)SlackChannelConfig: 채널 구성(화이트리스트, mention 정책 등)SlackDmConfig: DM 구성(pairing, allowlist 등)SlackActionConfig: Actions 도구 권한 제어
핵심 함수:
handleSlackAction(): Slack Actions 도구 호출 처리resolveThreadTsFromContext(): replyToMode에 따라 스레드 ID 해석buildSlackManifest(): Slack App Manifest 생성